如何通过编程获取CircleCI关联GitLab项目的Project ID?
解决CircleCI中GitLab项目ID的获取问题
几个实用的解决办法
从GitLab API直接拉取:
用GitLab的GET /projects接口,通过项目路径过滤就能拿到ID。比如你项目路径是namespace/project-name,就用这个请求:curl --header "PRIVATE-TOKEN: 你的GitLab个人令牌" "https://gitlab.com/api/v4/projects?search=namespace/project-name"响应里的
id字段就是CircleCI要的Project ID。用CircleCI的项目列表接口:
调用CircleCI的GET /projects接口(记得带上你的CircleCI认证令牌),返回的每个GitLab项目条目里,slug字段就是纯数字的Project ID(和GitHub/Bitbucket用名称当slug不一样)。示例请求:curl --header "Circle-Token: 你的CircleCI令牌" "https://circleci.com/api/v2/project"直接在CircleCI UI里找:
打开CircleCI对应GitLab项目的设置页面,里面会直接显示"Project ID"字段,一眼就能看到;或者看项目页面的URL,比如https://app.circleci.com/pipelines/gitlab/xxx/xxx/12345,最后那串数字就是ID。
额外提醒
- GitLab API需要的令牌得开
read_api权限,不然拉不到数据; - CircleCI返回的GitLab项目slug是数字,别和GitLab的项目路径搞混了,直接拿这个数字当slug用就行。
内容的提问来源于stack exchange,提问作者PSL
相关产品推荐
相关产品推荐

