Skip to content

ci(cla): add the CLA bot from VoiceStudio - #133

Merged
velixio merged 1 commit into
mainfrom
ci/cla-bot
Nov 8, 2026
Merged

velixio merged 1 commit into
mainfrom
ci/cla-bot

Conversation

@velixio

@velixio velixio commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

What

Adds the CLA bot used in VoiceStudio. Contributors sign CLA.md once by posting this comment on their pull request:

I have read the OpenGTM CLA 1.0 and I hereby sign it.
  • CLA check (cla.yml, pull_request_target + issue_comment): checks the PR opener and every commit author and co-author by GitHub account ID. It records signatures on a cla-signatures branch, which it creates on first use. It sets a CLA commit status and keeps the cla-signed label and one summary comment up to date. Maintainers can apply cla-override after reviewing a PR by hand. Commenting recheck reruns the check.
  • Reminders (cla-reminders.yml): a daily job that nudges unsigned PRs and labels them awaiting-cla / cla-wait-expired.
  • Backfill (cla-backfill.yml): started by hand, it runs the check on every open PR. Run it once after merging to tag the existing PRs.

Changes from VoiceStudio:

  • The agreement is the existing root CLA.md.
  • The check's comment also links CLA-CORPORATE.md.
  • VoiceStudio's ruleset and commit-identity tests are dropped. A short tests/test_cla_security.py replaces them.

Security

pull_request_target and issue_comment run with a write token even for fork PRs. All three workflows check out only the base branch's .github/scripts (sparse checkout, persist-credentials: false) and never run pull-request code. tests/test_cla_security.py enforces this, and also checks that no step puts event text directly into a shell script.

Validation

uv run --no-project --with pytest==8.4.2 --with pyyaml==6.0.3 python -m pytest tests -q: 114 passed. A new CLA bot tests CI job runs the same command.

After merge

  1. Run Actions → CLA backfill from main to check and tag every open PR.
  2. Optional: make CLA a required status check on main.

Port VoiceStudio's comment-signed CLA check. Every pull request's opener and
commit authors and co-authors sign CLA.md once by comment; signatures are
stored on the cla-signatures branch and the check sets a CLA commit status,
the cla-signed label and a summary comment. The privileged workflows check out
only the base branch's .github/scripts, never pull-request code.

Adds the daily reminder job, a manual backfill that runs the check on every
open pull request, the sign phrase in CLA.md and CONTRIBUTING.md, and a CI job
for the checker's tests.

Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
@velixio
velixio requested a review from debpalash as a code owner November 8, 2026 14:13
@velixio
velixio merged commit 36648dc into main Nov 8, 2026
4 checks passed
@velixio
velixio deleted the ci/cla-bot branch November 8, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant