Я пытаюсь автоматизировать коллекцию почтальонов в GitLab, используя учетную запись службы Google. Как аутентифицировать учетную запись службы и отправить запрос? - PullRequest
1 голос
/ 06 апреля 2020

Backgroud: у меня есть Google pub / sub topi c, который я могу опубликовать sh для использования Почтальона. Я хотел бы поместить эту коллекцию почтальонов в GitLab и использовать служебную учетную запись gcloud для запуска коллекции без какого-либо ручного вмешательства (например, для создания токена на предъявителя и копирования в коллекцию почтальонов).

Проблема: My Dev создал и передал мне файл ключа. JSON (снимок экрана ниже) для служебной учетной записи, которая имеет права на публикацию sh сообщений в мои топи c.

enter image description here

Я столкнулся с дорожным блоком, где не знаю, как передать жетон на предъявителя из bash в мою коллекцию. Вот как выглядит мой файл .yaml в GitLab:

stages:
    - test

postman_tests:
    stage: test
    image: 
        name: postman/newman_alpine33
        entrypoint: [""]
    script:
        - newman --version
        - npm config set unsafe-perm true
        - GOOGLE_APPLICATION_CREDENTIALS=~/path-to-my-serviceaccount-key.json gcloud auth application-default print-access-token
        - newman run name-of-my-collection.json -e name-of-my-postman-environment.json

GOOGLE_APPLICATION_CREDENTIALS=~/path-to-my-serviceaccount-key.json gcloud auth application-default print-access-token распечатывает токен, но я не знаю, как передать его в коллекцию. Я правильно это делаю?

1 Ответ

0 голосов
/ 13 апреля 2020

Я думаю, что вы можете использовать следующий код:

gcloud auth activate-service-account --key-file=KEY_FILE

После этого вы можете распечатать свой идентификационный токен, используя:

gcloud auth print-identity-token 

После этого передайте это как заголовок аутентификации:

curl -H "Authorization: bearer $(gcloud auth print-identity-token)" <your usual curl params>

Надеюсь, это поможет.

  1. gcloud auth activ-service-account
...