Skip to content

bors-rs/bors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A merge bot for GitHub pull requests

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.

Building

➜  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

Testing

cargo test

Setup + Configuration

Requires:

  • GitHub personal access token
  • ssh key added to github user account
  • setup a webhook pointing to the bors server using the /github endpoint

Running

➜  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

Pull Request Interactions

Commands

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

Options for Pull Requests are configured through the application of labels.

          Option           Description
label: bors-high-priority Indicates that the PR is high-priority. When queued the PR will be placed at the head of the merge queue.
label: bors-low-priority Indicates that the PR is low-priority. When queued the PR will be placed at the back of the merge queue.
label: bors-squash Before merging the PR will be squashed down to a single commit, only retaining the commit message of the first commit in the PR.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •