Bors is a Github App used to manage merging of PRs in order to ensure that CI is always green. It does so by maintaining a Merge Queue. Once a PR reaches the head of the Merge Queue it is rebased on top of the latest version of the PR's base-branch (generally master) and then triggers CI. If CI comes back green the PR is then merged into the base-branch. Regardless of the outcome, the next PR is the queue is then processed.
➜ bors git:(master) ✗ cargo build
Compiling bors v0.0.0 (/home/user/github.com/bors-rs/bors/bors)
Finished dev [unoptimized + debuginfo] target(s) in 14.37s
cargo test
Requires:
- GitHub personal access token
- ssh key added to github user account
- setup a webhook pointing to the bors server using the
/github
endpoint
➜ bors git:(jnaulty/fix-typo) ✗ cargo run -- -c bors.toml serve
Compiling bors v0.0.0 (/home/jnaulty/github.com/bors-rs/bors/bors)
Finished dev [unoptimized + debuginfo] target(s) in 13.74s
Running `target/debug/bors -c bors.toml serve`
[2020-08-28T09:19:55Z INFO bors] bors starting
[2020-08-28T09:19:55Z INFO bors::server] Listening on http://0.0.0.0:3000
[2020-08-28T09:19:55Z INFO bors::git] using existing on-disk repo at /home/jnaulty/github.com/bors-rs/bors/repos/jnaulty/spoon-fork-bors
[2020-08-28T09:19:55Z INFO bors::event_processor] Synchronizing
[2020-08-28T09:19:56Z INFO bors::event_processor] 1 Open PullRequests
[2020-08-28T09:19:58Z INFO bors::event_processor] Done Synchronizing
Bors actions can be triggered by posting a comment which includes a line of the form /<action>
.
Command | Action | Description |
---|---|---|
Land | land , merge |
attempt to land or merge a PR |
Canary | canary , try |
canary a PR by performing all checks without merging |
Cancel | cancel , stop |
stop an in-progress land |
Cherry Pick | cherry-pick <target> |
cherry-pick a PR into <target> branch |
Priority | priority |
set the priority level for a PR (high , normal , low ) |
Help | help , h |
show this help message |
Options for Pull Requests are configured through the application of labels.