Help us learn about your current experience with the documentation. Take the survey.

Go 代理 API

  • Tier: 免费版, 专业版, 旗舰版
  • Offering: GitLab 自管版, GitLab 专属版

这是 Go Packages 的 API 文档。 此 API 默认处于功能标志(feature flag)的保护之下,且默认为禁用状态。有权访问 GitLab Rails 控制台的管理员可以为您所在的 GitLab 实例启用此 API。

此 API 供 Go 客户端使用,通常不适用于手动操作。

有关如何使用 Go 代理的说明,请参阅 Go 代理包文档

这些端点不遵循标准的 API 身份验证方法。有关支持的请求头(headers)和令牌(token)类型的详细信息,请参阅 Go 代理包文档。未来可能会移除未在文档中说明的身份验证方法。

列出

获取指定 Go 模块的所有标记版本:

GET projects/:id/packages/go/:module_name/@v/list
属性 类型 是否必需 描述
id string 项目的 ID 或完整路径。
module_name string Go 模块的名称。
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/list"

示例输出:

"v1.0.0\nv1.0.1\nv1.3.8\n2.0.0\n2.1.0\n3.0.0"

版本元数据

获取指定 Go 模块的版本元数据:

GET projects/:id/packages/go/:module_name/@v/:module_version.info
属性 类型 是否必需 描述
id string 项目的 ID 或完整路径。
module_name string Go 模块的名称。
module_version string Go 模块的版本。
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.info"

示例输出:

{
  "Version": "v1.0.0",
  "Time": "1617822312 -0600"
}

下载模块文件

获取 .mod 模块文件:

GET projects/:id/packages/go/:module_name/@v/:module_version.mod
属性 类型 是否必需 描述
id string 项目的 ID 或完整路径。
module_name string Go 模块的名称。
module_version string Go 模块的版本。
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.mod"

写入文件:

curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.mod" >> foo.mod

这会将内容写入当前目录下的 foo.mod 文件。

下载模块源代码

获取模块源代码的 .zip 文件:

GET projects/:id/packages/go/:module_name/@v/:module_version.zip
属性 类型 是否必需 描述
id string 项目的 ID 或完整路径。
module_name string Go 模块的名称。
module_version string Go 模块的版本。
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.zip"

写入文件:

curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.zip" >> foo.zip

这会将内容写入当前目录下的 foo.zip 文件。