You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过curl获取Google Cloud Source Repository的revision标签列表

我的需求

  • 我有一个运行在Docker中的Python后端应用,使用服务账号进行身份验证。
  • 我配置了连接Bitbucket仓库的Cloud Build触发器,该触发器通过Webhook调用,版本使用tag标识。
  • 我需要通过后端应用触发这个Webhook,并传入指定tag(使用占位符变量传值)。
  • 我需要后端返回所有可用tag的列表,效果和console.google.com前端展示的一致(见截图)
    构建触发器中的revision标签

我尝试过的方案

我使用可以正常生效的Bearer token调用了以下API端点,但无法返回标签列表:Source Repo API

curl https://sourcerepo.googleapis.com/v1/projects/<project>/repos/<repo>' --header "Authorization: Bearer $(gcloud auth print-access-token)" --header 'Accept: application/json'

由于在云控制台可以查看所有标签,我通过开发者工具抓包找到了提供全量标签的端点:
console.google.com内部接口

https://console.cloud.google.com/m/source/repos/get?project=<project>&repo=<repo>

我遇到的问题是该接口需要Cookie进行身份验证,使用Bearer token调用会失败。
请问有没有办法让我的服务账号自动通过console.google.com的身份验证来调用该接口?或者是否有其他方式可以获取标签列表?


解决方案

你之前调用Source Repo API没有返回结果,是因为该接口仅适用于谷歌云托管的Source Repository代码库,你的代码存放在Bitbucket上,自然无法通过该接口拉取标签。
不建议尝试调用谷歌控制台的内部接口:这类接口没有对外服务承诺,仅面向控制台前端使用,不支持服务账号认证,随时可能因版本升级导致参数、权限、返回结构变更,完全不适合在生产业务中集成。
推荐你直接通过Bitbucket官方接口拉取全量标签列表,实现成本和稳定性都更高:

  1. 在Bitbucket后台为你的服务账号分配对应仓库的只读权限,生成应用访问密钥,存储到你的Python后端的环境变量中。
  2. 调用Bitbucket仓库的标签查询接口:
    • 公开仓库可直接访问无需认证,私有仓库使用生成的密钥做身份校验
    • 接口返回的标签列表和谷歌云控制台展示的内容完全一致
  3. 拿到标签列表后,触发Cloud Build Webhook时直接将选中的tag作为参数传入占位符即可,Cloud Build会自动拉取Bitbucket对应tag的代码执行构建。
    如果确实不想对接Bitbucket接口,也可以通过Cloud Build的projects.builds.list接口拉取历史构建记录,提取过往构建使用过的tag,但这种方式只能拿到曾经触发过构建的标签,无法获取仓库全量未触发过构建的标签。

内容的提问来源于stack exchange,提问作者Jonas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:36:00