A GitHub App built with Probot
Ballet Bot is a bot (GitHub App) to help manage Ballet projects.
Ballet 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.
Building 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, 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.
Ballet Bot reads configuration from a projects ballet.yml
configuration file. The following options are supported under the github
key:
pruning_action
: what action to take when the feature validation routine identifies a feature that should be pruned, one ofno_action
,make_pull_request
, andcommit_to_master
auto_merge_accepted_features
: whether to automatically merge pull requests that introduce features that validate successfully, one ofno
andyes
auto_close_rejected_features
: whether to automatically close pull requests that introduce features that fail to validate, one ofno
andyes
Here is an example snippet from a ballet.yml
file:
github:
pruning_action: commit_to_master
auto_merge_accepted_features: yes
auto_close_rejected_features: yes
# Install dependencies
npm install
# Run the bot
npm start
If 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.
For more, check out the Contributing Guide.
ISC © 2019 Kelvin Lu [email protected] (https://github.com/kelvin-lu)