Skip to content
/ bors Public
forked from rust-lang/bors

Rust implementation of bors used for various Rust components (e.g. the compiler).

License

Notifications You must be signed in to change notification settings

NULLx76/bors

 
 

Repository files navigation

Bors

Home of a (WIP) rewrite of the homu bors implementation in Rust.

There are a few documents that should help with understanding the bot:

If you want to help testing the bot, please ask around on the #t-infra stream on Rust Zulip.

Configuration

There are several parameters that can be configured when launching the bot. Parameters without a default value are required.

CLI flag Environment var. Default Description
--app-id APP_ID GitHub app ID of the bors bot.
--private-key PRIVATE_KEY Private key of the GitHub app.
--webhook-secret WEBHOOK_SECRET Key used to authenticate GitHub webhooks.
--db DB Database connection string. PostgreSQL and SQLite are supported.
--cmd-prefix CMD_PREFIX @bors Prefix used to invoke bors commands in PR comments.

Special branches

The bot uses the following two branch names for its operations.

  • automation/bors/try-merge
    • Used to perform merges of a pull request commit with a parent commit.
    • Should not be configured for any CI workflows!
  • automation/bors/try
    • This branch should be configured for CI workflows corresponding to try runs.

The two branches are currently needed because we cannot set try-merge to parent and merge it with a PR commit atomically using the GitHub API.

GitHub app

If you want to attach bors to a GitHub app, you should point its webhooks at <http address of bors>/github.

How to add a repository to bors

Here is a guide on how to add a repository so that this bot can be used on it:

  1. Add a file named rust-bors.toml to the root of the main branch of the repository. The configuration struct that describes the file can be found in src/config.rs. Here is an example configuration file.
  2. Install the GitHub app corresponding to this bot to the corresponding repository. You can use the https://github.com/settings/apps/<app-name>/installations link (to be automated via team repo).
  3. Configure a CI workflow on push to the automation/bors/try branch.
  4. Give the bot permissions to push to automation/bors/try and automation/bors/try-merge (to be automated via team repo).

About

Rust implementation of bors used for various Rust components (e.g. the compiler).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.7%
  • Dockerfile 0.3%