Obecnie odbieram 400 błędów podczas wywoływania metody list_builds() (widziane tutaj: https://googleapis.dev/Python/cloudbuild/latest/gapic/v1/api.html?highlight=List_builds#google.cloud.devtools .Cloudbuild_v1.cloudbuildClient.list_builds)

Następujące polecenie działa za pomocą GCloud:

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

Jednak następujące połączenia API zwraca google.api_core.exceptions.InvalidArgument: 400 Error processing filter expression

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

Zgaduję, że brakuje mi czegoś bardzo oczywistego i prostego, ale nie mogę dokładnie dowiedzieć, co robię źle

1
a clue 15 marzec 2020, 04:44

2 odpowiedzi

Najlepsza odpowiedź

Prawidłowy sposób przejścia w ciągu filtrowania do połączenia API obejmuje przy użyciu podwójnych apostrof wokół rzeczywistego tekstu jak więc:

filter_='status="FAILURE"'

Niepewny, czy to zostanie zmienione w przyszłości, ale jest to takie samo zachowanie, aby przejść przez resztę API: zwraca 200 odpowiedzi.

2
a clue 16 marzec 2020, 17:19

Witamy w stosie Więc jestem tylko spitblebując tutaj, ale dokumenty mówią, że ciąg filtrów jest "tekstem surowym filtrem, aby ograniczyć wyniki".

Po przefiltowaniu chmury budowy w konsoli, "surowy tekst filtra" w interfejsie użytkownika mówi Status : Failed - Możesz spróbować:

--filter="Status : Failed"

--filter="Status: Failed"

--filter="Status:Failed"

Alternatywnie, to może być łańcuchem w adresie URL, którego formatowanie jest zbyt bananapantami dla robotów stosu do rączki, więc nie mogę tego wkleić tutaj, ale zaczyna się od f i kończy się Failed:

Kluczem tutaj jest, że masz równy znak w swoim sznurku, a także Failure zamiast Failed - zmiana jednego lub obu tych może wykonać sztuczkę.

Mam nadzieję że to pomoże!

1
ingernet 15 marzec 2020, 02:09