我正在使用与Mantis BT集成的Gitlab安装和配置所有必需的插件
在螳螂BT中,Repositories -> Action -> Manage
,对于所需的项目,请单击 更新存储库,因为我们有一个名为 Gitlab Repository ID
.
对于该项目。当我提供一些数字并更新它们存储库时,更改集中的结果已更改,但文件和问题字段值未更新。
问题:
- 如何在 gitlab 中获取特定项目的存储库 ID?
- 文件和问题值未更改的问题是什么?
需要任何配置更改?
在 gitlab 中,您必须导航到 GitLab 公开的 API 才能检索所需的详细信息。
首先,您需要项目的project_id。这是通过 GitLab CI_PROJECT_ID变量公开的。从 UI 导航到项目,您将在项目名称下方看到项目 ID。
获得项目 ID 后,访问以下网址
https://gitlab.example.com/api/v4/projects/projectId/registry/repositories
这将为您提供一个 JSON 响应,显示项目下的所有存储库。您可以从响应中找到 id。
[{"id":876,"name":"","path":"group-name/subgroup-name/project-name","project_id":4099,"location":"registry.gitlab.example.com/group-name/subgroup-name/project-name","created_at":"2022-01-06T12:39:28.326Z","cleanup_policy_started_at":null}]
现在,使用此 ID,可以进一步导航到 API 以获取更多详细信息,例如容器映像标记。
例如
https://gitlab.example.com/api/v4/projects/**4099**/registry/repositories/**876**/tags
或者更具体地说,任何特定标签
https://gitlab.exmaple.com/api/v4/projects/**4099**/registry/repositories/**876**/tags/**tagName**
除了从浏览器访问这些,也可以从.gitlab-ci.yml访问。
例如,下面是用于从容器注册中删除图像标记的示例脚本。
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>"
"https://gitlab.example.com/api/v4/projects/5/registry/repositories/2/tags/v10.0.0"
螳螂文档指出:
hub_repoid
:Gitlab 项目的 id,从第一个创建的项目的 1 开始(如果 reponame 对用户有效且可读,则自动提交)
您可以使用 GitLab API 来获取该 ID
GET /projects/NAMESPACE/PROJECT_NAME
curl --header "PRIVATE-TOKEN: <yourPrivateToken>" https://gitlab.example.com/api/v3/projects/NAMESPACE/PROJECT_NAME
答案包括其 id:
{
"id": 3,
"description": null,
"default_branch": "master",
"public": false,
"visibility_level": 0,
...
或者,您也可以尝试使用 Chrome 浏览器中的 rest-client(又名 arc-client)插件,如下所示:
http://my.git.repo.ip/api/v3/projects/?private_token=<my.private.token.from.gitlab>&url=<my.git.repo.url>
my.git.repo.ip = localhost 或任何 IP/域名适合您的 gitlab 服务器。
my.private.token.from.gitlab = 你可以在 Gitlab> Settings 中获取它> 帐户> private_token,复制此内容并在URL中使用它。
my.git.repo.url = my.git.repo.ip(或者,你的 git 存储库的 url 应该 工作,另请注意:在 url 中将"/"字符替换为"%2F")
得到如下结果:
{
"id": 21
"description": ""
"default_branch": "master"
"tag_list": [0]
"public": true
"archived": false
"visibility_level": 20
...
}