-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Summary
When executing NuGet/login with a combination of NuGet Organization's package policy & Reusable workflow, it fails with a 401 error and the following message:
Error: Token exchange failed (401): No matching trust policy owned by user '***' was found.
Reproduce step
- Login to NuGet with Organization's administrator (my-nuget-user)
- Create Trusted Publishing Policy for Organization Package.
Policy Name: Foo
Package Owner: NuGet Organization Name (Foo-Org)
Repository Owner: GitHub Org Name (Foo-Org)
Repository: SampleRepo
Workflow File: release.yaml
- Create Reusable workflow at repo
Foo-Org/ReusableRepo
name: Build-Release
on:
workflow_call:
jobs:
create-release:
permissions:
contents: write
id-token: write # required for NuGet Trusted Publish
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: NuGet login (OIDC → temp API key)
uses: NuGet/login@d22cc5f58ff5b88bf9bd452535b4335137e24544 # v1.1.0
id: login
with:
user: my-nuget-user
# omit...- Create
release.yamlinFoo-Org/SampleReporepository and set following github action withpermissions.id-token: write
name: Build-Release
jobs:
dummy:
permissions:
contents: write
id-token: write # required for NuGet Trusted Publish
uses: Foo-Org/ReusableRepo/.github/workflows/release.yaml@main- Execute Actions, and failed.
Error: Token exchange failed (401): No matching trust policy owned by user '***' was found.
Remarks
If workflow is not reusable workflow, it works without issue.
name: Build-Release
jobs:
dummy:
permissions:
contents: write
id-token: write # required for NuGet Trusted Publish
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
# my-nuget-user has policy for Organization package
- name: NuGet login
uses: NuGet/login@d22cc5f58ff5b88bf9bd452535b4335137e24544 # v1.1.0
id: login
with:
user: my-nuget-usersmdn
Metadata
Metadata
Assignees
Labels
No labels