MergeQueue communicates with pull request using GitHub labels, GitHub comments and the Aviator CLI. Merge rules are at the core of how the Aviator bot reacts to the actions taken on GitHub.
Some of the Basic Configuration can be modified using the Merge Rules dashboard. For more advanced configuration, Aviator supports a YAML based configuration file. This file can either be applied directly from the Aviator dashboard or configured in the GitHub repository.
You can directly apply the config on the YAML configuration tab on the Merge Rules page. We also recommend validating this configuration before applying any changes.
You can also create a configuration file stored in .aviator/config.yml
. The file will only be read once it is merged into the repository's default branch. It will also override any properties set in the Dashboard UI.
You can see the complete config schema as well as the JSON schema for autocompletion and validation purpose.
Find below some common examples to get you started.
The only required attribute is merge_rules.labels.trigger
.
merge_rules:
labels:
trigger: "mergequeue"
Checkout customizing required checks section for details.
merge_rules:
labels:
trigger: "mergequeue"
preconditions:
use_github_mergeability: false
required_checks:
- build
- unit-test
- typecheck
- ci/circleci: pytest
This enforces all conversations in GitHub to be resolved before the PR can be merged.
merge_rules:
labels:
trigger: "mergequeue"
preconditions:
conversation_resolution_required: true
Useful for testing. Aviator will only be able to merge PR if the approval is not enforced at GitHub level. By default, Aviator always require approvals.
merge_rules:
labels:
trigger: "mergequeue"
preconditions:
number_of_approvals: 0
Also checkout the parallel mode section for details.
merge_rules:
labels:
trigger: "mergequeue"
merge_mode:
type: "parallel"
parallel_mode:
max_parallel_builds: 10
override_required_checks:
- build_and_test
- 'ci/circleci: build'
On failure, the PRs will automatically requeue before giving up. Only available in parallel mode.
merge_rules:
labels:
trigger: "mergequeue"
merge_mode:
type: "parallel"
parallel_mode:
max_parallel_builds: 10
max_requeue_attempts: 3
Keep your PRs up to date. Every time a new. commit is added to the base branch, the PRs are automatically updated using rebase or merge commit. See merge_rules.auto_update
in the configuration schema reference.
merge_rules:
labels:
trigger: "mergequeue"
auto_update:
enabled: false
label: "auto_update"
max_runs_for_update: 10
Customize title and body when merging the PR.
merge_rules:
labels:
trigger: "mergequeue"
merge_commit:
use_title_and_body: true
cut_body_before: "----"
cut_body_after: "+++"