diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml index 3cf71a8..612b68d 100644 --- a/.github/workflows/publish-nuget.yml +++ b/.github/workflows/publish-nuget.yml @@ -8,6 +8,11 @@ on: jobs: publish: runs-on: ubuntu-latest + # Trusted Publishing: nuget.org exchanges the workflow's OIDC token for a short-lived API key, so the repository + # keeps no NuGet API key. Policy on nuget.org: owner kododo-dev, this repository, workflow publish-nuget.yml. + permissions: + contents: read + id-token: write steps: - uses: actions/checkout@v4 @@ -90,9 +95,15 @@ jobs: -p:Version=${{ steps.version.outputs.VERSION }} \ --output ./nupkgs + - name: NuGet login (Trusted Publishing) + id: nuget-login + uses: NuGet/login@v1 + with: + user: ${{ vars.NUGET_USER }} + - name: Push to NuGet run: | dotnet nuget push ./nupkgs/*.nupkg \ - --api-key ${{ secrets.NUGET_API_KEY }} \ + --api-key ${{ steps.nuget-login.outputs.NUGET_API_KEY }} \ --source https://api.nuget.org/v3/index.json \ --skip-duplicate