Skip to content

Split from CLA: release workflows only - #1

Merged
pjhartlieb merged 4 commits into
devfrom
chore/split-from-cla
Oct 28, 2026
Merged

pjhartlieb merged 4 commits into
devfrom
chore/split-from-cla

Conversation

@pjhartlieb

Copy link
Copy Markdown
Contributor

Splits the reusable workflows out of CLA. The agreement and signatures stay in CLA.

  • Removes ICLA.md, signatures/ and dependabot-auto-merge.yml (Dependabot pull requests are merged by a person).
  • Renames the project to release-workflows.
  • Adds release.yml: on a merge to stable, runs this repo's own release-check.yml, tests and publish.yml. The tag is created by the release App after the release environment is approved.
  • Adds dev-security.yml: dependency review, actionlint, zizmor.
  • cla-reusable.yml: the App token is scoped to CLA and the calling repository, with contents write, members read and pull requests read. It previously covered every repository with all of the App's permissions.
  • Two zizmor findings are ignored inline, each with its reason: the archived CLA action, and toJSON(secrets) in python-tests.yml.
  • Dependabot cooldown of 7 days; local workflow calls use $/.

Local: pytest 41 passed, ruff clean, actionlint clean, zizmor 1.31.1 no findings (2 ignored).

Remove the agreement, signatures and the Dependabot auto-merge workflow (D10);
they stay in CLA or are retired. Rename the project to release-workflows.

Add release.yml (release this repo from stable with its own workflows) and
dev-security.yml (dependency review, actionlint, zizmor). Scope the CLA App
token to CLA and the calling repository with the permissions it uses.
Dependabot cooldown of 7 days; self-repository syntax for local calls.
@pjhartlieb
pjhartlieb requested a review from a team as a code owner October 28, 2026 19:05

@en0f en0f left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, but a few items worth confirming:

1.) CLA token scoping (cla-reusable.yml). repositories: CLA,${{ github.event.repository.name }} only works if the CLA App is installed on every repo that calls this workflow. Before this change the token covered the App’s whole installation, so it didn’t matter which repo called it. Now, any caller repo outside the installation makes the token step fail. The CLA job then never posts a status, and outside PRs on that repo get stuck. Check the App’s installation list against the repos that call this workflow.

2.) Same file, smaller point. permission-contents: write now also applies to the calling repo, not just CLA. Only CLA needs write access. Using two tokens would fix that, but nothing breaks if you leave it.

Worth noting:
release-check.yml fails the run if any of these are missing:

a.) A release environment exists, limited to the stable branch only, with admin bypass turned off.
b.) If the repo is public, that environment has required reviewers and “prevent self-review” turned on.
c.) The BLS_RELEASE_APP_ID variable and the BLS_RELEASE_PRIVATE_KEY environment secret are set.

FYI:

  • pyproject.toml is still at 0.0.0. The first merge to stable would create tag v0.0.0 unless the version is bumped first. The README’s pinning example uses v1.0.0.
  • Each release will ask for approval twice. release-check.yml (its credentials job) and publish.yml both run in the release environment. That’s existing behaviour, but the README describes a single bbot-leads approval.
  • The README says CodeQL is a required check on dev, but no CodeQL check ran on this PR. Either it isn’t set up or the README is wrong.

The caller's pull request commits are read with its own GITHUB_TOKEN, so the App token no longer needs the calling repository or write access to it.
@pjhartlieb pjhartlieb closed this Oct 28, 2026
@pjhartlieb pjhartlieb reopened this Oct 28, 2026
CodeQL default setup was enabled after the last push; reopening the pull request did not start a scan.
@pjhartlieb pjhartlieb closed this Oct 28, 2026
@pjhartlieb pjhartlieb reopened this Oct 28, 2026
The code scanning rule was added to dev-review after the previous push; reopening the pull request did not start a scan.
Comment thread .github/workflows/python-tests.yml Dismissed
@pjhartlieb
pjhartlieb merged commit 6011808 into dev Oct 28, 2026
14 checks passed
@pjhartlieb pjhartlieb mentioned this pull request Oct 29, 2026
@pjhartlieb
pjhartlieb deleted the chore/split-from-cla branch October 30, 2026 19:41
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.

3 participants