gitlab - 我正在尝试使用谷歌服务帐户在 GitLab 中自动化邮递员收集。如何验证服务帐户并发送请求?
问题描述
背景:我有一个可以使用 Postman 发布到的 Google 发布/订阅主题。我想将此邮递员集合放入 GitLab 并使用 gcloud 服务帐户运行集合而无需任何人工干预(例如,必须生成不记名令牌并复制到邮递员集合中)。
问题:我的开发人员为有权向我的主题发布消息的服务帐户创建并给了我一个 .JSON 密钥文件(下面的屏幕截图)。
我遇到了一个障碍,我不知道如何将不记名令牌从 bash 传递到我的收藏中。这是我在 GitLab 中的 .yaml 文件到目前为止的样子:
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
一个令牌,但我不知道如何将它传递给集合。我这样做对吗?
解决方案
我认为您可以使用以下代码:
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>
希望这可以帮助。
推荐阅读
- arrays - 如何根据第二个数组的部分或全部内容过滤数组
- python - Numpy:对多个数组进行花式索引
- java - 使用多个片段的最佳方式是什么?
- css - class="modal-dialog" style="padding-top: 20px; !important" - 没用
- javascript - 数据表行组显示条件?
- vue.js - 如何从 Vuex 的另一家商店调用 getter?
- java - CLASSPATH 问题
- php - 通过 ajax 将变量传递给外部 php 文件,然后将其插入 mysql 数据库
- node.js - 节点中的子进程缺少信息
- javascript - 使用 redux 反应导航