Skip to content

Restore PyPI attestations by making release.yml top-level - #118

Merged
Bre77 merged 1 commit into
mainfrom
fm/tfa-attestation-restore
Aug 6, 2026
Merged

Restore PyPI attestations by making release.yml top-level#118
Bre77 merged 1 commit into
mainfrom
fm/tfa-attestation-restore

Conversation

@Bre77

@Bre77 Bre77 commented Aug 6, 2026

Copy link
Copy Markdown
Member

Why

Attestations (PEP 740) were disabled because publish ran as release.yml invoked reusably from a thin tag-triggered caller (python-publish.yml). A reusable workflow's signing identity doesn't match the configured PyPI trusted publisher, which is set to workflow release.yml + environment pypi — so pypa/gh-action-pypi-publish had attestations: false.

This folds the caller's tag trigger and per-repo values directly into release.yml, making it the top-level workflow the publisher already expects, and re-enables attestations. No PyPI trusted-publisher change is required — the configured release.yml identity now matches both the publisher check and the attestation identity.

Changes

  • release.yml: added on.push.tags: v*.*.*, folded former workflow_call inputs into env defaults, dropped workflow_call trigger, removed attestations: false
  • Deleted python-publish.yml (now dead)
  • Updated AGENTS.md release-process description to match

Confirmed no other repo calls this workflow cross-repo — sibling repos each carry their own local copy.

No release cut, no tag pushed as part of this PR.

Attestations were disabled because publish ran as release.yml called
reusably from a thin tag-triggered caller, and the reusable-workflow
signing identity doesn't match the configured PyPI trusted publisher
(workflow release.yml + environment pypi). Converting release.yml into
the top-level, directly tag-triggered workflow aligns the code to that
existing publisher config, so attestations can be re-enabled with no
PyPI-side change required.
@Bre77 Bre77 added the fm Opened by a Firstmate crewmate label Aug 6, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9e84e6fe93

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

environment:
name: ${{ inputs.environment-name }}
url: ${{ inputs.pypi-project-url }}
name: ${{ env.ENVIRONMENT_NAME }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Use a valid context for the environment name

On every matching tag push, GitHub validates this job before running it, but the env context is unavailable in jobs.<job_id>.environment.name; this produces an Unrecognized named-value: 'env' validation error and prevents the entire release workflow from starting. Use the literal pypi value or an allowed context such as vars instead.

AGENTS.md reference: AGENTS.md:L96-L96

Useful? React with 👍 / 👎.

@Bre77
Bre77 merged commit 968cf0a into main Aug 6, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fm Opened by a Firstmate crewmate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant