GitLab API使用及如何删除某项目的Pipelines流水线和jobs

GitLab API使用及如何删除某项目的Pipelines流水线和jobs

创建访问令牌 API Token

PRIVATE-TOKEN获取

登录gitlab 进入 User Settings -> Access Tokens
在这个页面创建一个api令牌,其中范围必须勾选api, read_user;read_repository 可以视个人情况勾选

相关API操作

win10下可直接在cmd窗口中执行curl命令
linux下直接在终端执行curl命令

前置说明:
your-private-token: 为上一步创建的个人访问令牌
YOUR_PROJECT_ID:为对应项目的project id
YOUR_PIPELINE_ID:待删除的流水线id

注意:下方所有命令的 your-private-token、YOUR_PROJECT_ID 和YOUR_PIPELINE_ID均需要根据实际情况修改

查看当前token下的所有Project,即查看自己拥有的project

curl --header "PRIVATE-TOKEN:your-private-token" https://your-gitlab-server/api/v4/projects

查看project的member

curl --header "PRIVATE-TOKEN:your-private-token" "https://your-gitlab-server/api/v4/projects/YOUR_PROJECT_ID/members"

查看某个项目的流水线

curl --header ""PRIVATE-TOKEN:your-private-token" "https://your-gitlab-server/api/v4/projects/YOUR_PROJECT_ID/pipelines/"

// 如:查看86号项目的流水线
curl --header ""PRIVATE-TOKEN:your-private-token" "https://your-gitlab-server/api/v4/projects/86/pipelines/"

删除某个项目的某条CI流水线

curl --header ""PRIVATE-TOKEN:your-private-token" --request "DELETE" "https://your-gitlab-server/api/v4/projects/YOUR_PROJECT_ID/pipelines/YOUR_PIPELINE_ID"

// 如:删除86号项目的308流水线
curl --header ""PRIVATE-TOKEN:your-private-token" --request "DELETE" "https://your-gitlab-server/api/v4/projects/86/pipelines/308"

对于需要批量删除pipelines的情况,可参考
Mass deletion script fixed for the lazy, delete X pipelines from the oldest.

Note: need jq.

#!/bin/bash
set -e

TOKEN=""
PROJECT=""
# How many to delete from the oldest.
PER_PAGE=100

for PIPELINE in $(curl --header "PRIVATE-TOKEN: $TOKEN" "https://gitlab.com/api/v4/projects/$PROJECT/pipelines?per_page=$PER_PAGE&sort=asc" | jq '.[].id') ; do
    echo "Deleting pipeline $PIPELINE"
    curl --header "PRIVATE-TOKEN: $TOKEN" --request "DELETE" "https://gitlab.com/api/v4/projects/$PROJECT/pipelines/$PIPELINE"
done

注意:
示例链接中的gitlab服务器地址是使用http://your-gitlab-server还是https://your-gitlab-server 得视实际情况使用,有些公司的gitlab服务器不支持https,有些不支持http

参考链接:How to delete gitlab CI jobs pipelines logs/builds and history

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值