Commands (pull request comments)
Syntax | Description |
---|---|
bors r+ | Run the test suite and push to the base branch if it passes. Short for “reviewed: looks good.” |
bors merge | Equivalent to bors r+ . |
bors r=[list] | Same as r+, but the “reviewer” in the commit log will be recorded as the user(s) given as the argument. |
bors merge=[list] | Equivalent to bors r=[list] |
bors r- | Cancel an r+, r=, merge, or merge= |
bors merge- | Equivalent to bors r- |
bors cancel | Equivalent to bors r- |
bors try | Run the test suite without pushing to master. |
bors try- | Cancel a try |
bors delegate+ bors d+ |
Allow the pull request author to r+ their changes. |
bors delegate=[list] bors d=[list] |
Allow the listed users to r+ this pull request’s changes. |
bors ping | Check if bors is up. If it is, it will comment with pong. |
bors retry | Run the previous command a second time. |
bors p=[priority] | Set the priority of the current pull request. Pull requests with different priority are never batched together. The pull request with the bigger priority number goes first. |
bors r+ p=[priority] | Set the priority, run the test suite, and push to master (shorthand for doing p= and r+ one after the other). |
bors merge p=[priority] | Equivalent to bors r+ p=[priority] |
bors single on | Disable batching on this pull request |
bors single off | Enable batching |
The keyword (bors
) may be separated with a space or a colon. That is, bors try
and bors: try
are the same thing.
Also, the command will be recognized if, and only if, the word “bors” is at the beginning of a line.
This will be recognized as a command:
> Like the other person said:
bors r+
This will not be recognized as a command:
> Like the other person said:
> bors r+
And if you want to copy the above table into a markdown comment, make sure that you include the (optional) pipes at the beginning of every line, because this will be recognized as a bunch of commands, one after the other:
Syntax | Description
-------|------------
bors r+ | Run the test suite and push to master if it passes. Short for "reviewed: looks good."
bors merge | Equivalent to `bors r+`.
bors r=[list] | Same as r+, but the "reviewer" in the commit log will be recorded as the user(s) given as the argument.
bors merge=[list] | Equivalent to `bors r=[list]`
bors r- | Cancel an r+, r=, merge, or merge=
bors merge- | Equivalent to `bors r-`
bors try | Run the test suite without pushing to master.
bors try- | Cancel a try
bors delegate+ <br> bors d+ | Allow the pull request author to r+ their changes.
bors delegate=[list] <br> bors d=[list] | Allow the listed users to r+ this pull request's changes.
bors ping | Check if bors is up. If it is, it will comment with _pong_.
bors retry | Run the previous command a second time.
bors p=[priority] | Set the priority of the current pull request. Pull requests with different priority are never batched together. The pull request with the bigger priority number goes first.
bors r+ p=[priority] | Set the priority, run the test suite, and push to master (shorthand for doing p= and r+ one after the other).
bors merge p=[priority] | Equivalent to `bors r+ p=[priority]`
On the other hand, bors will ignore this table if it’s given like this (with the optional pipes at the beginning of every line):
| Syntax | Description
|--------|------------
| bors r+ | Run the test suite and push to master if it passes. Short for "reviewed: looks good."
| bors merge | Equivalent to `bors r+`.
| bors r=[list] | Same as r+, but the "reviewer" in the commit log will be recorded as the user(s) given as the argument.
| bors merge=[list] | Equivalent to `bors r=[list]`
| bors r- | Cancel an r+, r=, merge, or merge=
| bors merge- | Equivalent to `bors r-`
| bors try | Run the test suite without pushing to master.
| bors try- | Cancel a try
| bors delegate+ <br> bors d+ | Allow the pull request author to r+ their changes.
| bors delegate=[list] <br> bors d=[list] | Allow the listed users to r+ this pull request's changes.
| bors ping | Check if bors is up. If it is, it will comment with _pong_.
| bors retry | Run the previous command a second time.
| bors p=[priority] | Set the priority of the current pull request. Pull requests with different priority are never batched together. The pull request with the bigger priority number goes first.
| bors r+ p=[priority] | Set the priority, run the test suite, and push to master (shorthand for doing p= and r+ one after the other).
| bors merge p=[priority] | Equivalent to `bors r+ p=[priority]`
Configuration (bors.toml)
Name | Type | Description |
---|---|---|
status | [pattern] | List of commit statuses that must pass on the merge commit before it is pushed to master. If using Github Actions this would reference to the job name. |
block_labels | [string] | List of PR labels that may not be attached to a PR when it is r+-ed. |
pr_status | [string] | List of commit statuses that must pass on the PR commit when it is r+-ed. |
timeout_sec | integer | Number of seconds from when a merge commit is created to when its statuses must pass. |
required_approvals | integer | Number of project members who must approve the PR (using GitHub Reviews) before it is pushed to master. |
cut_body_after | string | A marker in the PR description that indicates boilerplate that does not belong in the commit message. |
delete_merged_branches | boolean | If set to true, and if the PR branch is on the same repository that bors-ng itself is on, the branch will be deleted. |
committer.name | string | Set both committer details to have merge commits show up as authored by a specific user. |
committer.email | string | |
use_codeowners | boolean | If turned on, CODEOWNERS file will be parsed. See GitHub’s docs for more info. |
use_squash_merge | boolean | If turned on, commits will be Squashed before merging and the Pull Request will be Closed with [Merged by Bors] - addition to the tile. See Github’s docs for more info. |
update_base_for_deletes | boolean | If turned on, and if delete_merged_branches is also turned on, then when a pull request is merged and its base branch is about to be deleted, any other pull requests made against the base branch will be fixed up. |
commit_title | string | The title of the merge commit message. Can be templated with ${PR_REFS} to refer to the merged PR(s). Default is: Merge ${PR_REFS} |
up_to_date_approvals | boolean | If turned on, and if required_approvals is also turned on, then only approvals up to date with the latest PR commit will count towards the number of required approvals. |
max_batch_size | integer | If set, then batches will never have more than max_batch_size pull requests in them. |
Note that underscores (_
) and hyphens (-
) are interchangable in configuration option names. That is, pr_status
and pr-status
are the same thing.
Patterns are written using SQL LIKE
syntax. For example, this status
directive will match any CI job that starts with ci/gitlab/
:
status = [ 'ci/gitlab/%' ]
The committer options, if provided, should be given as a table:
[committer]
name = "King Ban"
email = "[email protected]"
Development resources
- https://bors.tech/rfcs/: RFCs, which are used to get feedback on new features and such
- https://hexdocs.pm/elixir/syntax-reference.html: Elixir language documentation
- https://hexdocs.pm/phoenix/overview.html: Phoenix web framework documentation
- https://developer.github.com/apps/: GitHub API documentation
- https://bors.tech/devdocs/bors-ng/hacking.html: Bors-NG source-level documentation