Skip to content

Automatically auth package source mapping that match source-url #543

@CoenraadS

Description

@CoenraadS

Description:
When NuGet.Config contains a package source that matches source-url, automatically auth that source correctly.

Justification:
Currently a user may have the following step in their Action:

- uses: actions/setup-dotnet@v4
  with:
    dotnet-version: 8.x.x
    source-url: https://nuget.pkg.github.com/example/index.json
  env:
    NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

And a NuGet.Config with the following:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="github" value="https://nuget.pkg.github.com/example/index.json" />
  </packageSources>
<packageSourceMapping>
    <packageSource key="nuget.org">
      <package pattern="*" />
    </packageSource>
    <packageSource key="github">
      <package pattern="Example.*" />
    </packageSource>
  </packageSourceMapping>
</configuration>

Nuget restore will fail with authorization errors, which is unexpected since they provided a source-url and NUGET_AUTH_TOKEN.

They have to manually auth the mapping:

- name: dotnet
  run: dotnet ...
  env:
    NuGetPackageSourceCredentials_github: Username=${{ github.actor }};Password=${{ secrets.GITHUB_TOKEN }}

The setup-dotnet should automatically fixup the auth for mappings that match the provided source-url

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestNew feature or request to improve the current logic

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions