Skip to content

Create rule which enforces the "Require status checks to pass before merging" branch protection rule in Github #49

Open
@dmjb

Description

@dmjb

There does not appear to a rule for enforcing status checks in branch protections, e.g.

Screenshot 2024-02-07 at 16 39 22

Examining the Github API output for the branch protections shown in the screenshot, the relevant part of the response is:

  "required_status_checks": {
    "url": "https://api.github.com/repos/dmjb-test-org/action-test/branches/main/protection/required_status_checks",
    "strict": true,
    "contexts": [
      "A job to say hello"
    ],
    "contexts_url": "https://api.github.com/repos/dmjb-test-org/action-test/branches/main/protection/required_status_checks/contexts",
    "checks": [
      {
        "context": "A job to say hello",
        "app_id": 15368
      }
    ]
  }

Notes:

  1. If the Require status checks to pass before merging is unselected, then required_status_checks is set to null.
  2. The Require branches to be up to date before merging checkbox corresponds to the strict flag in the JSON object.
  3. It is possible to select these options without setting up a list of checks. Personal experience shows that this results in the checks not working (or at least not working consistently). We probably want to enforce that the Require status checks to pass before merging box is selected and the list of checks to be non-empty.
  4. We may want to create a separate rule forRequire branches to be up to date before merging or at least make it optional when creating a policy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Nice to fix: non-critical items that should be evaluated and planned during issue triagegood first issueGood for newcomers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions