diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d2a41f603..d8c5b6b56 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -91,6 +91,9 @@ jobs: runs-on: ubuntu-latest needs: build if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + permissions: + id-token: write # Required for OIDC trusted publishing + attestations: write # Required for generating attestations strategy: matrix: @@ -118,6 +121,5 @@ jobs: if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@release/v1 with: - user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} - skip_existing: true + attestations: true + skip-existing: true diff --git a/CHANGES b/CHANGES index a497274c4..de6181c8f 100644 --- a/CHANGES +++ b/CHANGES @@ -32,7 +32,12 @@ $ uvx --from 'libtmux' --prerelease allow python -_Upcoming changes will be written here._ +### CI + +#### Migrate to PyPI Trusted Publisher (#615) + +PyPI publishing now uses OIDC-based Trusted Publisher instead of API tokens. +This improves security and enables package attestations for supply chain verification. ## libtmux 0.52.0 (2025-12-07)