sr.ht-docs/dispatch.sr.ht/github.md

2.4 KiB

title
GitHub integration

dispatch.sr.ht supports various integrations with GitHub. Some tips are provided here.

Configuring branch protection rules on GitHub

If you choose the "auto-merge" setting, builds.sr.ht will attempt to merge the pull request once the build completes successfully. You will likely want to add branch protection rules on GitHub to prevent this from happening before the pull request is reviewed.

To edit your branch protection rules, start by visiting "Branches" in your repository's settings.

Screenshot of the "branches" page

Select "Add rule".

Screenshot of "add rule"

Specify the branches you want the rule to apply to (e.g. "master") and configure the criteria which must be met for the pull request to be mergeable. For example, to require the code to be reviewed before merge:

Screenshot of code review settings

Important: if your account is an administrator on this GitHub repository, attempts to merge will succeed even if the branch protection rules are unmet. You must enable the "Include administrators" option to prevent this.

Screenshot of "Include administrators" option

Build environment

dispatch.sr.ht will check out the specific commit you pushed when submitting builds, and will rewrite the upstream clone URL to the fork when building pull requests.

Configuring your sources list

Do not include .git at the end of your git clone URLs.

Environment variables

The following environment variables are set when building commits:

  • GITHUB_DELIVERY: the webhook delivery UUID that triggered this build
  • GITHUB_EVENT: the event type ("push") that triggered this build
  • GITHUB_REF: the ref (e.g. "refs/heads/master") that was updated
  • GITHUB_REPO: the full name (e.g. "username/repo_name") of the GitHub repo

The following environment variables are set when building pull requests:

  • GITHUB_DELIVERY: the webhook delivery UUID that triggered this build
  • GITHUB_EVENT: the event type ("push") that triggered this build
  • GITHUB_PR_NUMBER: the pull request number
  • GITHUB_PR_TITLE: the title of the pull request
  • GITHUB_BASE_REPO: the full name (e.g. "username/repo_name") of the base repo
  • GITHUB_HEAD_REPO: the full name (e.g. "username/repo_name") of the head repo (fork)