RFR: 1173: Dependent PR feature does not work with protected branches in newer Gitlab version

Erik Joelsson erikj at openjdk.org
Tue Jan 3 17:28:43 UTC 2023


In GitLab, if a branch is protected, it cannot be removed. This is preventing us from using the pr/X feature of Skara to support dependent pull requests. This patch adds the ability to dynamically protect and unprotect branch patterns when creating pr/X branches. This is controlled with a new configuration option on the prbranch notifier like this:


        "prbranch": {
          "protect": true,
        },

The semantics needed for GitLab is to first add a pattern based protection rule, then create the branch. Unfortunately, I couldn't easily implement the same semantics for GitHubRepository. The REST API for branch protection in GitHub doesn't allow patterns, only existing branches. It could probably be done using GraphQL, but given how complicated that would be to implement, I chose not to, since we don't actually need this feature on GitHub. (GitHub branch protection is flexible enough so we can have a static configuration that allows admins to delete branches, and this is already in use today)

I have tested the basic branch protection functionality using the new manual test and I have run the notifier bot with the new configuration against a playground repository in GitLab and manually created and closed PRs.

-------------

Commit messages:
 - Restore manual annotation
 - Must encode refs in URLs
 - SKARA-1173

Changes: https://git.openjdk.org/skara/pull/1452/files
 Webrev: https://webrevs.openjdk.org/?repo=skara&pr=1452&range=00
  Issue: https://bugs.openjdk.org/browse/SKARA-1173
  Stats: 128 lines in 9 files changed: 122 ins; 1 del; 5 mod
  Patch: https://git.openjdk.org/skara/pull/1452.diff
  Fetch: git fetch https://git.openjdk.org/skara pull/1452/head:pull/1452

PR: https://git.openjdk.org/skara/pull/1452


More information about the skara-dev mailing list