This repository allows users to query information relating to release branches on a desired repository.
There are four potential actions possible:
- Reporting commits unreleased for a specific release branch.
- Reporting pull requests targeting a specific release branch that have not yet been merged.
- Reporting pull requests which need to be manually backported to a particular release line.
- Perform a pre-release audit combining actions 2 and 3.
An unreleased commit audit is triggered automatically via cron job on Monday mornings at 9AM PST for all supported release branches of your repository.
This tool will default to setting the organization and repository name to electron/electron
, but you can set your own by setting ORGANIZATION_NAME
and REPO_NAME
as environment variables.
You can also set the number of currently supported release lines with the NUM_SUPPORTED_VERSIONS
env var.
An unreleased commit audit can be triggered via Slack using the following:
/check-unreleased <branch_name>
where branch-name
matches the name of a release line branch of the desired repository.
Example:
/check-unreleased 9-x-y
To manually query the status of all currently supported release branches:
/check-unreleased all
An unmerged pull request audit can be triggered via Slack using the following:
/check-unmerged <branch_name>
where branch-name
matches the name of a release line branch of the repository.
Example:
/check-unmerged 10-x-y
An audit of pull requests needing manual backport to a particular release line can be triggered via Slack using the following:
/check-needs-manual <branch_name> <author> <remind>
where branch_name
matches the name of a release line branch of the repository.
Example:
/check-needs-manual 8-x-y
An verification of the semver type of the next release for a given branch can be triggered via Slack using the following:
/verify-semver <branch_name>
where branch_name
matches the name of a release line branch of the repository.
Example:
/verify-semver <branch_name>
Example output:
Next release type for
12-x-y
is: semver/patch
This command can be scoped by author of the original PR. For example:
/check-needs-manual 8-x-y codebytere
will return all pull requests needing manual backport to a particular release line where the author of the original PR was @codebytere
PRs needing manual backport to 8-x-y (from @codebytere):
* #23782 - fix: volume key globalShortcut registration
* #23776 - fix: asynchronous URL loading in BW Proxy
* #22342 - fix: don't run environment bootstrapper
There are 3 PR(s) needing manual backport to 8-x-y!
You can @mention
authors in the audit to remind them of the manual backports they need to handle:
/check-needs-manual 8-x-y remind
This will produce a list similar to the following:
PR(s) needing manual backport to 8-x-y (from @codebytere):
* #23782 - fix: volume key globalShortcut registration (@codebytere)
* #23776 - fix: asynchronous URL loading in BW Proxy (@codebytere)
* #23678 - fix: read GTK dark theme setting on Linux (@zcbenz)
* #23653 - docs: errors in isolated world are not dispatched to foreign worlds (@zcbenz)
* #23415 - test: skip "handles Promise timeouts correctly" when ELECTRON_RUN_AS_NODE is disabled (@miniak)
* #22342 - fix: don't run environment bootstrapper (@codebytere)
There are 6 PR(s) needing manual backport to 8-x-y!
A pre-release audit combines the needs-manual audit with the unmerged audit to return a full list of action items that may needs to occur before a beta or stable release.
/audit-pre-release <branch_name>
where branch_name
matches the name of a release line branch of the repository.
Example:
/audit-pre-release 8-x-y
If you would like to use unreleased
, there are several environment variables you will need to leverage to customize it to serve your needs.
ORGANIZATION_NAME
- the name of your organization, e.g.electron
.REPO_NAME
- the name of the repository to run audits in, e.g.electron
.NUM_SUPPORTED_VERSIONS
- the number of supported backport release lines (default is 4).UNRELEASED_GITHUB_APP_CREDS
- private key credentials generated for a GitHub App (required).SLACK_BOT_TOKEN
- the token that will be used to post audit result into a Slack workspace channel (required).BLOCKS_RELEASE_LABEL
- the GitHub label used to denote unmerged pull requests that should block a release (default isblocks-release
).AUDIT_POST_CHANNEL
- the Slack workspace channel in which to post audit results.