{"id":22031003,"url":"https://github.com/ballet/ballet-bot","last_synced_at":"2026-04-28T21:02:53.626Z","repository":{"id":39550124,"uuid":"182139268","full_name":"ballet/ballet-bot","owner":"ballet","description":"  A bot to help manage Ballet projects","archived":false,"fork":false,"pushed_at":"2023-02-28T15:42:53.000Z","size":1814,"stargazers_count":1,"open_issues_count":28,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T11:30:33.469Z","etag":null,"topics":["bot","github-app","probot-app"],"latest_commit_sha":null,"homepage":"https://github.com/apps/ballet-bot","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ballet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-18T18:37:11.000Z","updated_at":"2023-01-31T17:15:30.000Z","dependencies_parsed_at":"2025-03-23T11:37:18.712Z","dependency_job_id":null,"html_url":"https://github.com/ballet/ballet-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ballet/ballet-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballet%2Fballet-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballet%2Fballet-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballet%2Fballet-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballet%2Fballet-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ballet","download_url":"https://codeload.github.com/ballet/ballet-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballet%2Fballet-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32399012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","github-app","probot-app"],"created_at":"2024-11-30T08:13:02.662Z","updated_at":"2026-04-28T21:02:53.608Z","avatar_url":"https://github.com/ballet.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Uptime Status](https://img.shields.io/uptimerobot/status/m784006190-b0fa1300848e931654e56628)\n[![Run Tests](https://github.com/ballet/ballet-bot/workflows/Test/badge.svg)](https://github.com/ballet/ballet/actions?query=workflow%3A%22Test%22)\n\n# Ballet Bot\n\n\u003e A GitHub App built with [Probot](https://github.com/probot/probot)\n\nBallet Bot is a bot (GitHub App) to help manage [Ballet](https://ballet.github.io) projects.\n\nBallet projects are collaborative projects to produce a shared data science artifact, like a feature engineering pipeline. They receive many small contributions (data science patches) from collaborators. In traditional software development, a patch, like a pull request on GitHub, may be subjected to a code review by a maintainer or another committer on the project. In the case of Ballet projects, since each patch is expected to follow the same structure, it can be largely validated without the need for a manual code review.\n\nBuilding off this, Ballet Bot allows pull request management tasks to be automated in the context of a Ballet project. More specifically, Ballet Bot can detect for a pull request whether the patch has validated successfully or not, and can automatically merge PRs corresponding to \"good\" patches and close PRs corresponding to \"bad\" patches. In addition, if the result of patch validation is that [some other patch should be pruned](https://ballet.github.io/ballet/maintainer_guide.html#pruning-features), then Ballet Bot can automatically remove the other patch from the repository, either by committing directly to the default branch or by creating a new PR.\n\n## Configuration\n\nBallet Bot reads configuration from a projects `ballet.yml` configuration file. The following options are supported under the `github` key:\n\n* `pruning_action`: what action to take when the feature validation routine identifies a feature that should be pruned, one of `no_action`, `make_pull_request`, and `commit_to_master`\n* `auto_merge_accepted_features`: whether to automatically merge pull requests that introduce features that validate successfully, one of `no` and `yes`\n* `auto_close_rejected_features`: whether to automatically close pull requests that introduce features that fail to validate, one of `no` and `yes`\n\nHere is an example snippet from a `ballet.yml` file:\n\n```yml\ngithub:\n  pruning_action: commit_to_master\n  auto_merge_accepted_features: yes\n  auto_close_rejected_features: yes\n```\n\n## Development\n\n### Setup\n\n```sh\n# Install dependencies\nnpm install\n\n# Run the bot\nnpm start\n```\n\n### Contributing\n\nIf you have suggestions for how Ballet Bot could be improved, or want to report a bug, open an issue! We'd love all and any contributions.\n\nFor more, check out the [Contributing Guide](CONTRIBUTING.md).\n\n## License\n\n[ISC](LICENSE) © 2019 Kelvin Lu \u003ckelvinlu@mit.edu\u003e (https://github.com/kelvin-lu)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fballet%2Fballet-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fballet%2Fballet-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fballet%2Fballet-bot/lists"}