ci(cla): store CLA signatures on a dedicated branch (#40)

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.
This commit is contained in:
TheZwiss
2026-08-25 15:46:11 +02:00
committed by GitHub
parent 89467d6f93
commit 747f1b9c5c
+11 -3
View File
@@ -2,8 +2,16 @@ name: CLA Assistant
# Requires every contributor to sign the project Contributor License Agreement # Requires every contributor to sign the project Contributor License Agreement
# (CLA.md) before their pull request can be merged. Signatures are stored in # (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 # this repository at signatures/cla.json on the `cla-signatures` branch — no
# used. A contributor signs by commenting the exact sentence configured below. # 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: on:
issue_comment: issue_comment:
@@ -37,7 +45,7 @@ jobs:
path-to-signatures: 'signatures/cla.json' path-to-signatures: 'signatures/cla.json'
# The CLA document contributors are agreeing to. # The CLA document contributors are agreeing to.
path-to-document: 'https://github.com/TheZwiss/backspace/blob/main/CLA.md' 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). # Accounts that never need to sign (maintainer + automation).
allowlist: 'TheZwiss,dependabot[bot],github-actions[bot]' allowlist: 'TheZwiss,dependabot[bot],github-actions[bot]'
# The exact phrase a contributor comments to sign. # The exact phrase a contributor comments to sign.