我在使用Gitlab CI时遇到了一些奇怪之处,有人见过这样的东西吗?
我正在尝试通过简单的方式使用gitlab's secret detection
include:
- template: Secret-Detection.gitlab-ci.yml
其中引用了this here。...但是它根本不起作用,没有任何步骤显示出来,除非我重新-请从Secret-Detection.gitlab-ci.yml
,但在我自己的仓库中.gitlab-ci.yml
:
secret_detection:
rules:
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
但是如果它已经在原始Secret-Detection.gitlab-ci.yml
中了,为什么会有帮助?
基本上,这不起作用:
include:
- template: Secret-Detection.gitlab-ci.yml
但这确实有效:
include:
- template: Secret-Detection.gitlab-ci.yml
secret_detection:
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
我正在使用Gitlab 13.2.3 EE。我在分支机构工作,而不是在母公司。
答案 0 :(得分:1)
您要包含一个模板,然后覆盖secret_detection
作业的默认行为。但是,这样做实际上是在覆盖工作的整个rules
部分。
此:
rules:
- if: $SECRET_DETECTION_DISABLED
when: never
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
成为这个:
rules:
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
您的工作中是否可能定义了SECRET_DETECTION_DISABLED
变量?如果是这样,使用原始模板将禁用秘密检测。通过覆盖作业的rules
部分,您基本上不再检查SECRET_DETECTION_DISABLED
。您可以通过在作业的printenv
部分中添加script
语句来检查变量的值。