Sid*_*Sid 3 github github-actions github-package-registry
我在有Org两个不同存储库repo-1和repo-2.
我已将大约 50 个奇怪的 Maven 依赖项上传到 的 GitHub Packages 注册表repo-1,现在我们正在迁移到repo-2. pom.xml 和所有 GitHub Actions 工作流程都按原样复制。因此,我需要访问repo-2Maven 构建工作流程的同一组依赖项。但是,repo-2 无法从repo-1Packages 注册表下载依赖项。
工作流程片段:
- name: build
run: mvn clean package '-Dmaven.test.skip=true' '-Dmaven.wagon.http.pool=false' --file pom.xml -B -X
env:
GITHUB_TOKEN: ${{ github.token }}
MAVEN_OPTS: -Xmx3072M -Xss128M -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=2048M -XX:+CMSClassUnloadingEnabled
Run Code Online (Sandbox Code Playgroud)
pom.xml 中的存储库配置片段:
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>1_maven.apache.org</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
</repository>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/Org/repo-1</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jasper</id>
<url>https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)
我对这两个存储库都有管理员访问权限,以下是我尝试过的一些操作:
repo-1,如本快照所示 -
然而,到目前为止,没有任何效果。
小智 7
截至 2022 年 12 月,已有解决方案。
在您的组织中,转到包并选择您想要访问的包。在右侧的包设置下,您可以在“管理操作访问”下添加其他存储库。其他存储库仅需要读取权限。
在 YAML 工作流文件中,为工作流添加权限,如下所示: 权限示例 工作流需要对内容和包的读取权限
现在您可以使用 GITHUB_TOKEN 下载其他私有仓库中的包
工作流程权限: https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
值得注意的是,它GITHUB_TOKEN仅适用于同一存储库中的上传和下载。
如果您想从另一个存储库访问包,则必须创建个人访问令牌并使用用户名/令牌作为身份验证。
所以基本上你的步骤 2. 包括你的用户名应该可以工作。
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |