google-cloud-build PyPi 400 错误

google-cloud-build PyPi 400 errors

我目前在调用 list_builds() 方法时收到 400 个错误(见此处:https://googleapis.dev/python/cloudbuild/latest/gapic/v1/api.html?highlight=list_builds#google.cloud.devtools.cloudbuild_v1.CloudBuildClient.list_builds

以下命令使用 gcloud 有效:

gcloud builds list --filter="status=FAILURE"

但是下面API调用returnsgoogle.api_core.exceptions.InvalidArgument: 400 Error processing filter expression

for element in client.list_builds("REDACTED", filter_="status=FAILURE"):
    # process element
    pass

我想我在这里遗漏了一些非常明显和简单的东西,但我无法确切地弄清楚我做错了什么

欢迎来到 Stack O!所以我只是在这里吐口水,但文档说 Filter 字符串是 "The raw filter text to constrain the results."

当您在控制台中过滤 Cloud Build 时,UI 中的 "raw filter text" 显示 Status : Failed - 您可以尝试:

--filter="Status : Failed"

--filter="Status: Failed"

--filter="Status:Failed"

或者,它可能是URL中的字符串,其格式对于 Stack O 的机器人来说太麻烦了,所以我无法粘贴它在这里,但它以 f 开头并以 Failed:

结尾

这里的关键是你的字符串中有一个等号,以及 Failure 而不是 Failed - 更改其中一个或两个可能会成功。

希望对您有所帮助!

将过滤器字符串传递给 API 调用的正确方法包括在实际文本周围使用双撇号,如下所示:

filter_='status="FAILURE"'

不确定将来是否会对此进行更改,但这与通过此处的 REST API 传递它的行为相同:https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds/list

例如指定 status=FAILURE 会失败,但是 status="FAILURE" returns 200 响应。