【问题标题】:Continue error trying to change Google cloud trigger with REST APIs尝试使用 REST API 更改 Google 云触发器时继续出错
【发布时间】:2021-02-19 18:18:45
【问题描述】:

我正在尝试使用 REST API 更改触发器,特别是 https://cloud.google.com/build/docs/api/reference/rest/v1/projects.triggers/patch。请注意,我可以使用 curl 并列出所有触发器。我还尝试使用https://cloud.google.com/build/docs/api/reference/rest/v1/projects.triggers/get 下载 JSON 中的触发器(效果很好),但是当我尝试上传相同的文件时,错误总是:

{
  "error": {
    "code": 400,
    "message": "exactly 1 build config required, got: 0",
    "status": "INVALID_ARGUMENT"
  }
}

如果我尝试正确上传无效的 Json,它会在解析 JSON 时出错,所以肯定是在尝试使用 JSON 格式进行解析。

所以我使用“试试看!”尝试了相同的实验。 Google 页面上的按钮,用于打开 Google API 资源管理器。结果相同。界面给了我一个警告,一些字段只是输出,所以我也尝试删除这些字段,但我得到了同样的错误。

我要上传的文件是(更改了一些字符串以删除公司名称)

{
  "description": "Push to any branch",
  "github": {
    "push": {
      "branch": ".*"
    },
    "owner": "company",
    "name": "repo-utils"
  },
  "tags": [
    "github-default-push-trigger"
  ],
  "name": "default-push-trigger-127"
}

【问题讨论】:

标签: google-apis-explorer


【解决方案1】:

我想我找到了问题所在。 Google API 似乎需要传递 buildfilename 以指定构建方式。另一方面,Web 界面允许为构建插入一个Autodetect 选项,该选项将尝试在根目录中查找cloudbuild.yamlDockerfile。如果您在 Web 界面上指定 Autodetect,则 Json 配置将不会有 buildfilename,因此当您尝试导入该配置时,它将失败。

我尝试将文件名作为空字符串传递,Web 界面显示 cloudbuild.yaml(存在)但触发器的执行失败。

所以似乎没有办法使用 API 插入 Autodetect 模式触发器。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 2021-02-24
    • 2016-09-15
    • 2021-08-12
    • 2022-01-02
    • 2015-07-09
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多