From 747f1b9c5c54031f57841ac589144dd506dee5fd Mon Sep 17 00:00:00 2001 From: TheZwiss <151788261+TheZwiss@users.noreply.github.com> Date: Tue, 25 Aug 2026 15:46:11 +0200 Subject: [PATCH] ci(cla): store CLA signatures on a dedicated branch (#40) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The CLA Assistant appends each signature as a direct commit to the branch named in 'branch:'. That was main, which the 'Require CI on main' ruleset rejects ('Repository rule violations found'), so signatures were never recorded and the check stayed red however often a contributor signed — a deadlock for every outside contribution. Point the store at the cla-signatures branch. The ruleset targets the default branch only, so the bot can append there without granting any actor a bypass on main. That branch is seeded with the existing signature and carries its own ruleset blocking deletion and non-fast-forward pushes. --- .github/workflows/cla.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 132e8b5b..f49816fa 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -2,8 +2,16 @@ name: CLA Assistant # Requires every contributor to sign the project Contributor License Agreement # (CLA.md) before their pull request can be merged. Signatures are stored in -# this repository at signatures/cla.json — no external service or database is -# used. A contributor signs by commenting the exact sentence configured below. +# this repository at signatures/cla.json on the `cla-signatures` branch — no +# external service or database is used. A contributor signs by commenting the +# exact sentence configured below. +# +# Why not `main`: the action appends each signature as a direct commit, which +# the "Require CI on main" ruleset rejects ("Repository rule violations found"), +# leaving the signature unrecorded and the check permanently red. Keeping the +# store on its own branch lets the bot append without granting any actor a +# bypass on main. That branch has its own ruleset blocking deletion and +# force-pushes, so the record cannot be rewritten. on: issue_comment: @@ -37,7 +45,7 @@ jobs: path-to-signatures: 'signatures/cla.json' # The CLA document contributors are agreeing to. path-to-document: 'https://github.com/TheZwiss/backspace/blob/main/CLA.md' - branch: 'main' + branch: 'cla-signatures' # Accounts that never need to sign (maintainer + automation). allowlist: 'TheZwiss,dependabot[bot],github-actions[bot]' # The exact phrase a contributor comments to sign.