Skip to content

ci: only Create Release waits for a deployment approval (#2648) - #2658

Merged
JarryShaw merged 1 commit into
mainfrom
ci/2648-release-app-environment
Nov 2, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
ci/2648-release-app-environment

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • ci — workflows or build tooling

Description of your pull request and other information

The owner ruled in session that manual deployment approval is for Create Release only. github-release, the one environment with a required reviewer, was also entered by the pr jobs of cron-issue-pr-kinds.yml and cron-python-versions.yml, only to read RELEASE_APP_PRIVATE_KEY. So every one of those runs waited for approval.

  • Both cron pr jobs use the release-app environment, which has no reviewer and allows deployments from main only. It holds its own copy of the key. Their App token keeps its narrow permissions.
  • Until the key is stored there, the "Check for the release App's key" step makes the job skip with a warning instead of failing. Only a boolean of the secret reaches the shell.
  • Create Release stays on github-release, unchanged.
  • Docs: releasing.rst and workflows.rst follow.
  • Tests: test_release_app_environment_2648 fails if any job other than Create Release's github enters github-release, or if any other job reads the key outside release-app.

Owner action needed: add RELEASE_APP_PRIVATE_KEY to the release-app environment, with the same value as in github-release.

A Sonnet cross-review returned GOOD TO GO after one fix round, which removed counts, widened the guard and fixed wording.

Closes #2648

- cron-python-versions.yml, cron-issue-pr-kinds.yml: `pr` names the
  `release-app` environment, which has no reviewer, not `github-release`. Its
  first step reads whether RELEASE_APP_PRIVATE_KEY is set and, if not, warns
  and skips the other steps instead of failing at minting. Comments no longer
  say the key waits on the owner's approval.
- util/update_python_versions.py: its prose no longer speaks of an approval.
- releasing.rst: the App setup stores the key in each environment, and why;
  the reviewer paragraph names `release-app`.
- workflows.rst: the cron sections and Deployment `environment:` describe
  `release-app` and the key check.
- tests/project: the cron pins expect `release-app`; the new
  test_release_app_environment_2648.py checks that only Create Release's
  `github` names `github-release` and every other key reader, in Create
  Release or elsewhere, `release-app`, with mutation rows, and runs the key
  check under bash.

Tests: touched tests/project modules pass; the guard fails on main's cron jobs and each mutation.
@JarryShaw JarryShaw added this to the PyPCAPKit v1.6 milestone Nov 2, 2026
@JarryShaw JarryShaw added ci Pull requests that change CI or workflow configuration (ci: subject prefix) review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 2, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 5fa113970, from a Sonnet cross-review in two rounds. The first asked for counts to be removed from releasing.rst, for the guard to cover a second Create Release job reading the key, and for wording fixes. The second confirmed all three. This head also rewords Create Release's comment that no other job reads the key: the cron jobs now read their own copy from release-app. GitHub behaviour was not observed in a live run; the key-check step was run under bash for both outcomes.

@JarryShaw
JarryShaw merged commit 2b73732 into main Nov 2, 2026
19 checks passed
@JarryShaw
JarryShaw deleted the ci/2648-release-app-environment branch November 2, 2026 16:15
@github-project-automation github-project-automation Bot moved this to Done in PyPCAPKit Nov 2, 2026
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Nov 2, 2026
JarryShaw added a commit that referenced this pull request Nov 2, 2026
…he cut-frame fixes and GRE's bindings into 1.6.0 (#2449)

- Breaking: TCP, UDP and SCTP makers (#2670) and PCAP-NG's (#2671) raise
  on a value a field cannot hold, where 1.5.x wrote it masked; each entry
  gives the old and new values. The TTL Diff wraps as before.
- Changed: __index__ returns the LinkType, EtherType, TransType or AppType
  value, ports as ints (#2652); only Create Release waits for a deployment
  approval (#2658). The conventions entry records the index rule.
- Fixed: a cut HTTP/2 SETTINGS frame parses and rebuilds; HTTPv2.make
  takes frame_length (#2666).
- Folded into unreleased entries: FRAD at LinkType 107 and GRE at IP
  protocol 47 (#2667); cut IGMPv3 messages and num_group_records (#2662,
  #2672); Linux_ARPHRD (#2663); DCCP's range checks (#2670); a cut GRE
  frame is TRUNCATED, replacing fold-12's INVALID note, and frame_length
  in pcapkit.utilities.contextvars (#2668).
- No entry for _make_sint's private allow_unsigned, ARP's private
  PAT_MAC_ADDR, or the test- and docs-only d728873, 326a6cf,
  fc80fb1, a37edf1 and 2766707.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Pull requests that change CI or workflow configuration (ci: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ci: only Create Release waits for a deployment approval

1 participant