Skip to content

chore(cla): pre-seed maintainer signature to break initial catch-22#28

Merged
millerjp merged 1 commit into
mainfrom
chore/preseed-maintainer-cla-signature
Apr 21, 2026
Merged

chore(cla): pre-seed maintainer signature to break initial catch-22#28
millerjp merged 1 commit into
mainfrom
chore/preseed-maintainer-cla-signature

Conversation

@millerjp

Copy link
Copy Markdown

Summary

Pre-populates signatures/version1/cla.json with the maintainer's signature so the CLA Assistant flow can bootstrap. Without this, the repo maintainer cannot open their own first post-#18 PR (the CLA bot would block it; the bot's signing commit needs the maintainer to have already signed).

Shape

Matches the CLA Assistant wire format verbatim (same shape as axonops/mask's signatures/version1/cla.json):

```json
{
"signedContributors": [
{
"name": "Johnny Miller",
"id": 163300,
"comment_id": 0,
"created_at": "2026-04-21T07:30:00Z",
"repoId": 1215690488,
"pullRequestNo": 0,
"login": "millerjp"
}
]
}
```

Any future signature the bot records simply appends another object to `signedContributors` — no schema drift.

Secondary change

Regenerated `CONTRIBUTORS.md` via `scripts/generate-contributors.sh` so the `TestGovernance_ContributorsFileIsGenerated` byte-equality guard stays green.

Merge instructions

The CLA Assistant workflow (from #18) triggered on this PR will want you to sign — but you will need to bypass it for this one PR as an admin, because:

  1. The workflow cannot fire successfully until `CLA_ASSISTANT_PAT` exists in repo secrets (its first successful run would also write to this file, conflicting with this PR's own diff).
  2. The whole point of this PR is to pre-record your signature so the bot doesn't have to.

Squash-merge with admin override. The next PR you open after this one will then see you as already-signed and the CLA Assistant flow will pass cleanly — no admin bypass needed thereafter.

Post-merge:

  • Create the `CLA_ASSISTANT_PAT` repo secret (classic PAT, `repo` scope, from an admin account).
  • Open a throwaway test PR from a fork to confirm the bot behaves correctly for external contributors.

Test plan

  • `make check` green locally
  • `TestGovernance_ContributorsFileIsGenerated` passes (proves CONTRIBUTORS.md matches generator output exactly)
  • `TestGovernance_SignaturesFileIsValid` passes (proves the JSON is valid and carries the expected key)
  • Squash-merge via admin bypass

The CLA Assistant bot can only record signatures by committing to
signatures/version1/cla.json. Branch protection requires PR review +
CLA-signed status. A maintainer's own first PR would therefore
block: the bot cannot commit a signature until the PR merges, but
the PR cannot merge until the CLA is signed.

Pre-populate signatures/version1/cla.json with the maintainer
(Johnny Miller / @millerjp, user id 163300) dated 2026-04-21T07:30:00Z.
Shape matches the CLA Assistant wire format exactly so any future
signatures append alongside this one without schema drift.

Regenerate CONTRIBUTORS.md from the updated signatures file via
scripts/generate-contributors.sh — byte-equality guard (#18)
continues to hold.
@github-actions

Copy link
Copy Markdown

Thank you for your contribution! Before we can merge this PR, you need to sign our Contributor License Agreement.

To sign, post a comment on this PR containing exactly:

I have read the CLA Document and I hereby sign the CLA

The CLA is a one-time agreement that covers every future contribution you make to any AxonOps open-source project. If you have questions before signing, please open a discussion or email oss@axonops.com.


I have read the CLA Document and I hereby sign the CLA


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@millerjp millerjp merged commit e7d571d into main Apr 21, 2026
17 of 18 checks passed
@millerjp millerjp deleted the chore/preseed-maintainer-cla-signature branch April 21, 2026 05:34
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant