如何在GitLab CI社区版中获取目标分支哈希?

如何在GitLab CI社区版中获取目标分支哈希?,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我已尝试根据获取CI\u merge\u request\u SOURCE\u BRANCH\u SHA和CI\u merge\u request\u TARGET\u BRANCH\u SHA的要求仅使用。不幸的是,declare-x显示了()。据我所知,CI\uu变量中没有一个提供这一关键信息来计算目标分支的提交散列 我还尝试了,除了:[master],还有() 我已经看过了,所以我想知道这是否是一个回归 您也可以从作业输出中看到,没有分支,因此我甚至不能使用类似于master..HEAD的

我已尝试根据获取
CI\u merge\u request\u SOURCE\u BRANCH\u SHA
CI\u merge\u request\u TARGET\u BRANCH\u SHA
的要求仅使用
。不幸的是,
declare-x
显示了()。据我所知,
CI\uu
变量中没有一个提供这一关键信息来计算目标分支的提交散列

我还尝试了
,除了:[master]
,还有()

我已经看过了,所以我想知道这是否是一个回归

您也可以从作业输出中看到,没有分支,因此我甚至不能使用类似于
master..HEAD

的东西。我很有信心在我们的代码库中有一个使用
SHA
变量的示例,但它也遇到了同样的问题。我为你的工作找到了一个解决办法:

lint提交消息:
阶段:测试
规则:
-如果:$CI\U管道\U源==“合并\U请求\U事件”
脚本:
-git获取
-诗歌运行gitlint--提交“origin/${CI\u MERGE\u REQUEST\u TARGET\u BRANCH\u NAME}..origin/${CI\u MERGE\u REQUEST\u SOURCE\u BRANCH\u NAME}”
我切换到
规则
语法:

规则语法是一种改进的、更强大的解决方案,用于定义作业何时运行或何时不运行。考虑使用规则,而不是只/要从管道中得到最大化。

结果:

$ poetry install
Installing dependencies from lock file
No dependencies to install or update
$ git fetch
From https://gitlab.com/KiwiKilian/pacman-package-file
 * [new branch]      lint       -> origin/lint
 * [new branch]      master     -> origin/master
$ poetry run gitlint --commits "origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}..origin/${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
Commit 7c9f4e7c1a:
1: CT1 Title does not start with one of fix, feat, chore, docs, style, refactor, perf, test, revert, ci, build: "Ignore IDEA configuration"
1: CT1 Title does not follow ConventionalCommits.org format 'type(optional-scope): description': "Ignore IDEA configuration"
Cleaning up file based variables
00:00
ERROR: Job failed: exit code 1

你能发布你完成的
.gitlab ci.yml
?对于合并请求,管道是否以分离模式运行?@KiwiKilian我已链接到文件的两个版本。从输出中可以看到,第一次CI运行是分离的(
CI\u MERGE\u REQUEST\u EVENT\u TYPE=“detached”
)。