我有一个GitHub组织,它推送了一些套餐.它们可以通过https://github.com/orgs/[REDACTED]/packages访问,因此它们不仅仅是存储库.在我的一个repos中,我try 使用其他repos(微服务)的合同来创建包,但这个repo使用了我前面提到的一个包.
以下是我目前用于构建此合同包的YAML:
name: Publish [REDACTED].Domain.Shared package
on:
push:
branches:
- release/shared/*
paths:
- "src/[REDACTED]/[REDACTED].Domain.Shared/**"
jobs:
Publish-Package:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- uses: actions/checkout@v3
- uses: actions/setup-dotnet@v3
with:
dotnet-version: "8.x"
source-url: https://nuget.pkg.github.com/[REDACTED]/index.json
env:
NUGET_AUTH_TOKEN: ${{secrets.ACTION_TOKEN}}
- run: dotnet restore src/[REDACTED]/[REDACTED].Domain.Shared
- run: dotnet build src/[REDACTED]/[REDACTED].Domain.Shared --no-restore
- run: dotnet pack --configuration Release src/[REDACTED]/[REDACTED].Domain.Shared
- run: dotnet nuget push src/[REDACTED]/[REDACTED].Domain.Shared/bin/Release/*.nupkg
到了dotnet restore
岁时,我得到的是:
/usr/share/dotnet/sdk/8.0.100/NuGet.targets(156,5):warning:GitHub Packages service无法验证您的请求.请确保您的访问令牌有效并且配置了适当的作用域.[/home/runner/work/[REDACTED].Domain.Shared/[REDACTED].Domain.Shared.csproj] 正在try "FindPackagesByIdAsync",以获取源"https://nuget.pkg.github.com/[REDACTED]/download/[REDACTED]/index. json". 响应状态代码不表示成功:401(未授权).
我的GitHub令牌设置了repo:all
、read:packages
和write:packages
权限.
我不知道这是否重要,但下面是我的NuGet.Configer,它来自包含此合同库的SLN:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="[REDACTED]" value="https://nuget.pkg.github.com/[REDACTED]/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
<packageSource key="[REDACTED]">
<package pattern="[REDACTED].*" />
</packageSource>
</packageSourceMapping>
</configuration>
Token和NuGet.Config对于所有repos都是相同的,它们都可以生成包-直到需要从我的组织下载另一个包的依赖项.
我try 将令牌的权限更改为所有可能的权限,但不起作用.我还试图从工作流中的actions/setup-dotnet@v3
中删除DotNet auth,但都返回了相同的错误.