我在用户X和存储库名称Y下有一个私有存储库:
这是一个用 Gradle 构建的 Java 项目。
Gradle 配置文件已按照官方Github 包注册表文档中的说明进行配置,我可以成功发布包:
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/X/Y")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_PACKAGE_REGISTRY_USER")
password = project.findProperty("gpr.key") ?: System.getenv("GITHUB_PACKAGE_REGISTRY_API_KEY")
}
}
}
publications {
github(MavenPublication) {
groupId = 'A'
artifactId = 'B'
version = '1.0.0'
from(components.java)
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如您在上面的配置中看到的,我分别使用了A和B作为 groupId 和 artifactId。版本是 1.0.0。
我的问题是从另一个 Gradle 项目中检索此私有依赖项。这个项目有一个特定的存储库配置如下:
repositories {
jcenter()
maven {
url = …Run Code Online (Sandbox Code Playgroud) 我已经向 GitHub npm 注册表发布了一个包。根据下面的屏幕截图,当我登录到 GitHub 时,我可以看到该包。
在本地,不同的包将前者作为依赖项。因此我有我的package.json:
"dependencies": {
"<@scope>/<package_name>": "1.2.0",
...
Run Code Online (Sandbox Code Playgroud)
根据文档,我还有一个与 authToken.npmrc位于同一目录中的文件package.json。此 authToken 具有所有必要的权限 ( delete:packages, read:packages, repo, write:packages)
//npm.pkg.github.com/:_authToken=<my_auth_token>
registry=https://npm.pkg.github.com/OWNER
Run Code Online (Sandbox Code Playgroud)
最后,我有package.json以下两个条目。尽管我认为这些是将包发布到 github 注册表所必需的,但不能安装它们,这是当前的问题。
"publishConfig": {
"registry": "https://npm.pkg.github.com/"
},
"repository": {
"type": "git",
"url": "https://github.com/<OWNER>/<REPO>.git"
}
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试安装软件包时遇到的错误是:
npm ERR! code E404
npm ERR! 404 Not Found: <@scope>/<package_name>@1.2.0
Run Code Online (Sandbox Code Playgroud)
当我试图通过一些有用的日志了解发生了什么时: With npm install @<scope>/<package_name>@1.2.0 --loglevels verbose,我看到:
....
npm http fetch GET 200 https://npm.pkg.github.com/OWNER/@<scope>%2f<package_name>
npm http fetch …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我尚未构建的 Maven 工件上传到我组织的 GitHub 包注册表。为此,我正在使用 deploy:deploy-file Maven 插件。这是我一直在使用的命令:
mvn deploy:deploy-file
-Dfile=[THE JAR FILE]
-Durl=https://maven.pkg.github.com/[ORG]
-Dregistry=https://maven.pkg.github.com/[ORG]
-DgroupId=[GID]
-DartifactId=[ARTIFACTID]
-Dversion=[VERSION]
-DgeneratePom=false
-Dtoken=[MY GITHUB TOKEN]
Run Code Online (Sandbox Code Playgroud)
结果我收到了来自 Github 的 401 错误。我已经确定:
此外,github 包页面指出:
<!-- Just a single step: Deploy using a GitHub token -->
$ mvn deploy -Dregistry=https://maven.pkg.github.com/[org] -Dtoken=GH_TOKEN
Run Code Online (Sandbox Code Playgroud)
为什么我在 Maven 文档中找不到有关注册表或令牌参数的任何信息?我可以在没有任何类型的 XML 配置文件的情况下仅使用 cli 将此文件上传到组织的注册表吗?
提前致谢。
类似的问题已经有很多:
然而,我们的问题似乎有所不同,因为:
yarn install在本地机器上运行良好yarn install 如果我们删除,GH Actions就会成功yarn.lock以前有人遇到过这个吗?特别是它不能处理文件yarn.lock?
如果重要的话,设置如下:
build.yml:
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '10.x'
registry-url: 'https://npm.pkg.github.com'
- name: Install
run: yarn install
env:
# GITHUB_TOKEN can't access packages hosted in private repos,
# even within the same organisation
NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} …Run Code Online (Sandbox Code Playgroud) 我有一个 GitHub 存储库,其中包含发布到其自己的 GitHub 包 maven 存储库的库。我还有另一个项目,我想在其中引用这个库作为依赖项。
当我将以下配置添加到项目的 POM 文件中时,它不起作用。
<repositories>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/test-account/test-lib</url>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)
它需要我进行身份验证。我知道这是非常合乎逻辑的,因为它基本上不是源代码库,而是底层的 Maven 代码库。但是有没有办法让maven正常访问这个依赖呢?我的图书馆位于公共仓库中。
PS 请不要建议使用 Jitpack,因为我希望拥有干净的解决方案而不需要任何额外的资源。
我已经在 GitHub Packages 上推送了一个 Docker 镜像,现在我想拉取它并使用它。为了在本地运行图像,我曾经转到相关文件夹并使用命令运行它docker-compose up。然而现在,通过从 GitHub Packages 拉取,我只是获得了没有任何文件夹的 Docker 映像,而且我不知道如何运行它。
通过检查图像,它具有与原始文件夹相关的所有文件,但是当我尝试运行该docker-compose up ghcr.io/giuliomat/bdt-project命令时,我收到一条错误消息,指出目录中没有 docker-compose.yml。如果我只使用该命令,docker run ghcr.io/giuliomat/bdt-project它将运行 docker-compose.yml 文件中指定的两个服务之一。如何正确运行 Docker Compose 镜像?提前致谢!
更新:我尝试更好地解释自己。图像中有一个 Dockerfile(现在我已在问题中上传),用于构建 Web 服务。我在本地开发了该映像,并且使用 运行它没有问题docker-compose up,但现在我想了解当用户从我的 GitHub 包中提取它时必须执行哪些操作才能运行它,这就是我的问题。拉取的映像应该具有运行所需的所有元素,但我不知道使用什么命令来告诉 Docker 运行 docker-compose.yml 文件中指定的两个服务,因为当用户从 GitHub 中拉取包时,它只获取图像,但没有运行的文件夹docker-compose up。
Dockerfile:
docker-compose.yml:
拉取的 docker 镜像的内容:
我尝试实现使用 GitHub Actions 发布和安装包的官方指南:使用细化权限验证包注册表
失败:
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in to https://npm.pkg.github.com
npm ERR! need auth You need to authorize this machine using `npm adduser`
Run Code Online (Sandbox Code Playgroud)
包.json
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in to https://npm.pkg.github.com
npm ERR! need auth You need to authorize this machine using `npm adduser`
Run Code Online (Sandbox Code Playgroud)
.github/workflow/ci.yml
{
"name": "@charneykaye/banana",
"version": "4.0.6",
"repository": "git@github.com:charneykaye/banana",
"description": "made by …Run Code Online (Sandbox Code Playgroud) node.js npm npm-publish github-actions github-package-registry
我们有一个带有名为“@myorganization/common”的共享包的 monorepo,该包由应用程序和 Google 云功能使用。
Google 云函数要求将包发布到存储库才能使用它,因为我们不发布编译后的代码(可以包含本地包),而是直接发布原始 TypeScript。
我找到了一些教程,但没有找到结合私有包和组织的用例。
我 cd 进入 packages/common 目录。
我将以下几行添加到我的 packages.json 中:
"publishConfig": { "registry": "https://npm.pkg.github.com/" },
"repository": {
"url": "git@github.myorganization/common.git"
},
Run Code Online (Sandbox Code Playgroud)
我在 GitHub 上创建了一个个人身份验证令牌,具有完整的存储库、包和组织权限。
然后我登录到我的组织:
npm login --registry=https://npm.pkg.github.com --scope=@myorganization
Run Code Online (Sandbox Code Playgroud)
然后我打了:
npm publish
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
npm ERR! code EPRIVATE
npm ERR! This package has been marked as private
npm ERR! Remove the 'private' field from the package.json to publish it.
Run Code Online (Sandbox Code Playgroud)
我希望这个包只能由组织成员使用。当 React Native 使用时,它应用作 lerna monorepo 中的本地私有包,并且通过从 GitHub 包获取它来由 Google Cloud Function 使用。但其他人无法访问它。
这是可能的事吗?
问候
编辑:
我尝试更新 …
npm google-cloud-functions lerna monorepo github-package-registry
目标
我想要两个存储库:
存储库 A:将 JAR 发布到 Github 注册表
存储库 B:从 A 下载 JAR 并发布包含 JAR 的 Docker 映像。
即我正在寻找一个如下所示的 API:
wget https://github.com/repoOwner/repoName/packages/1.2.3/my.jar
Run Code Online (Sandbox Code Playgroud)
问题
是否有 Github Action 或 API 允许我从 Github 包注册表下载特定版本的工件?
问题
我知道有一个用于工件的 Github API,但我不知道如何请求特定版本的工件 URL 。