标签: gitlab-api

GitLab:是否可以在特定的运行程序上运行管道?

是否可以在特定运行器上运行管道?(不使用标签)

使用可行environments,甚至可行gitlab runner exec


场景:

已有一个已有多个运行器的项目(用于注册运行器的特定项目令牌),并且具有自己的关联标签(因此也不能更改它们)。

我要添加一个新的运行器,但是需要首先对其进行测试以确保其正常工作,但是我需要强制在该机器上构建管道,而无需更改任何标签或运行器的特定项目。

gitlab gitlab-ci gitlab-ci-runner gitlab-api

7
推荐指数
2
解决办法
6673
查看次数

从 GitLab 检查个人访问令牌的范围

如何从 GitLab 检查个人访问令牌的范围(权限)?给定个人访问令牌,获取该令牌允许的所有范围。

rest gitlab gitlab-api personal-access-token

7
推荐指数
2
解决办法
2392
查看次数

如何在 Gitlab 中获得 runner 的当前工作

是否可以获取或跟踪特定运行程序当前正在运行的作业?

例如。我有很多项目,我想跟踪一个runner_id=123. gitlab_api 有 api[url]/api/v4/runners/[runner_id]来获取 runner=123 的详细信息。但结果并没有显示出我所期望的 job_id 目前正在工作的内容。那么是否有可能像这样获取或跟踪。

gitlab gitlab-ci gitlab-api

7
推荐指数
1
解决办法
2444
查看次数

Gitlab Api 提交落后/领先 Master

在 Gitlab 网页上,您可以检查分支落后于或领先于主分支的提交数量。我的问题是是否可以通过“gitlab API”获取有关此内容的信息?我检查了文档,但不幸的是找不到任何东西。

python api gitlab gitlab-api python-gitlab

7
推荐指数
1
解决办法
934
查看次数

如何设置两个 PyPI 索引

我有一个本地 GitLab 安装,它带有一个本地 PyPI 服务器来存储公司内部的 Python 包。

如何配置我的 PyPI 以在两个索引服务器中搜索包?

我阅读了.pypirc/pip/pip.ini并找到了各种设置,但到目前为止还没有解决方案。

  1. 大多数解决方案将所有搜索永久切换到其他索引服务器。但是我希望能够像往常一样从 pypi.org 安装和更新包,而有些包来自本地索引。
  2. 具有凭证接缝的多个索引服务器设置为仅限于 distutils(例如由 twine 使用),但不被 pip 使用
  3. 如果在[global]或 中配置索引服务器会产生混淆[install]。我假设后一个是pip install. (此处的文档不清楚。)
  4. 虽然 twine 可以像-r gitlab引用一个[gitlab]部分一样引用配置文件中的存储库条目,但pip 不能使用这种命名引用...

所以我想要达到的目标:

  • pip 应该能够从 pypi.org 安装和更新常规包,如 colorama
  • pip 应该能够从 gitlab.company.com 安装和更新软件包
    • 必须使用用户名 ( __token__) 和密码 ( 7a3b62342c784d87) 进行身份验证

到目前为止的实验:

[global]


[install]
find-links =
    https://pypi.org
    https://gitlab.company.de/api/v4/projects/2142423/packages/pypi
trusted-host =
    https://pypi.org
    https://gitlab.company.de/api/v4/projects/2142423/packages/pypi

[distutils]
index-servers =
    gitlab

[gitlab] …
Run Code Online (Sandbox Code Playgroud)

python pip pypi gitlab gitlab-api

7
推荐指数
1
解决办法
1108
查看次数

如何获取GitLab上所有存储库的用户总提交数?

现在我正在尝试这个API(只是从项目中随机选择一个id)

https://gitlab.com/api/v4/projects/3199253/repository/contributors
Run Code Online (Sandbox Code Playgroud)

我发现提交数始终为 1,而贡献者页面上的提交数则大于 1。同时,名单尚未完成,很多人不在返回结果中。

我检查了文档,似乎我不需要对其进行分页,或者我可以选择这样做。

https://docs.gitlab.com/ee/api/repositories.html#contributors

如果有更好的方法来统计用户在 GitLab 上的所有提交,请告诉我。提前致谢!

更新:刚刚在 Gitlab 上发现了一个相关问题:

https://gitlab.com/gitlab-org/gitlab/-/issues/233119

看起来由于目前的错误,提交计数将始终为 1?

更新:现在我正在扫描提交列表,并使用 for 循环将它们与当前用户进行匹配(他们说它比 map() 具有更好的性能)。猜测这会消耗不必要的 API 调用使用量。

gitlab gitlab-api

7
推荐指数
1
解决办法
5773
查看次数

从Gitlab API获取MR相关数据

如何:

  1. 获取特定合并请求中的所有提交.
  2. 获取在特定合并请求中提交的所有用户.
  3. 合并请求中特定 用户添加/删除/更新的行数.

无法找到如何使用Gitlab API(http://doc.gitlab.com/ce/api/)获取上述所有内容.有没有一种方法Gitlab API可以帮助直接获得这些或通过引入某种黑客.

api git-commit gitlab gitlab-api

6
推荐指数
1
解决办法
369
查看次数

Gitlab Trigger API返回404

我创建了一个触发器(使用settings/ci_cd页面).触发器下方的说明告诉我使用版本3 API调用它(当然,我将令牌变量设置为触发器部分下面的令牌):

curl -X POST \
     -F token=${TOKEN} \
     -F ref=master \
     https://gitlab.com/api/v3/projects/2313008/trigger/builds
Run Code Online (Sandbox Code Playgroud)

哪个只返回:

{"未找到错误404"}

我还尝试遵循API v4文档:

curl --request POST \
     --form token=${TOKEN} \
     --form ref=master \
     https://gitlab.com/api/v4/projects/2313008/trigger/pipeline
Run Code Online (Sandbox Code Playgroud)

返回相同的错误.

是否需要其他设置?

gitlab gitlab-ci gitlab-api

6
推荐指数
2
解决办法
1567
查看次数

如何从 GitLab API 下载metadata.gz 和 job.log

我正在尝试编写脚本从我们的 GitLab 项目下载三个特殊文件。目前,我可以下载 artifacts.zip 以及 zip 中的各个文件,但不能下载其他两个特殊文件:metadata.gz 和 job.log。

这是我做过的一些事情:

# Grab the list of job data
r = requests.get("https://gitlab.local.com/api/v4/projects/12/jobs/13", headers={'PRIVATE-TOKEN':'...'}, verify='...')

# Display artifacts available (shows artifacts.zip, metadata.gz, and job.log)
r.json()['artifacts']

# Printing the filename of the artifacts (best in a for loop)
r.json()['artifacts'][0]['filename']
r.json()['artifacts'][1]['filename']
...

# Download artifacts.zip
r = requests.get(".../jobs/13/artifacts", ...)
with open(".../artifacts.zip", 'wb') as f:
  f.write(artifacts.content)

# Download metadata.gz
?
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-api

6
推荐指数
1
解决办法
1080
查看次数

在 GitLab CI 脚本中使用 CURL 响应

我尝试获取 .gitlab-ci.yaml 中某个 GitLab 项目的所有徽章,并按name找出某个徽章的id。我有以下脚本,我尝试使用 curl 调用徽章 api 并将 json 结果存储在名为BADGES的变量中:

build-backend:
  stage: build
  script:
    - BADGES='curl --header "PRIVATE-TOKEN:$GITLAB_API_TOKEN" "https://gitlab.example.com/api/v4/projects/${CI_PROJECT_ID}/badges"'
    - echo ${BADGES}
Run Code Online (Sandbox Code Playgroud)

当然,现在echo ${BADGES}将输出卷曲,因为我将其存储在变量的字符串中,但我不知道如何执行此操作。

在 JavaScript 中我会这样做:

const badges = ...CURL_RESPONSE...;
const versionBadge = badges.find(b => b.name === 'vBadge');
Run Code Online (Sandbox Code Playgroud)

这有可能吗?

gitlab gitlab-ci gitlab-api

6
推荐指数
1
解决办法
8836
查看次数