在vs代码中自动将Jira问题编号添加到git commit消息中

时间:2018-12-02 10:39:56

标签: git visual-studio-code jira

我们将 Jira Issue#添加到提交消息中,以将更改链接到 Jira Issue 。由于问题编号是手动添加的,因此容易出现人为错误。由于我们在 git分支中始终有此编号,因此提交消息可以具有该分支名称的默认值吗?可以通过 vs代码扩展名或 git模板完成吗?

enter image description here

4 个答案:

答案 0 :(得分:0)

我建议您使用commit-msg本地钩子和pre-receive服务器钩子来达到目的。 Git钩子是用于验证和修改存储库编写操作的脚本-您可以在官方文档中了解它们:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

本地commit-msg钩子可能会从分支中提取票证名称,并将其附加到消息中(如果在此处未找到)。如果分支名称不满足命名要求,它甚至可以取消提交过程。

这种方法的主要缺点是,出于安全考虑,任何开发人员都应手动放置本地挂钩,因此人们也可能会忘记或忽略这一点。因此,您还需要服务器端pre-receive挂钩来拒绝推送分支,无论新提交之一是否包含无效消息。

答案 1 :(得分:0)

实际上,我发现Flow / Jira Commit Prefix扩展名可以满足我的需求。可以根据需要调整来源。

答案 2 :(得分:0)

我创建了一个名为sed的文件,并将其复制到sed 's/Topic:\([^ ]*\).*min\.insync\.replicas=\([^,]*\).*/\1 \2/' Input_file 文件夹内

prepare-commit-msg

这是要点:https://gist.github.com/raduchiriac/36b6269bebb75cfac7371acb1459fdcc

注意:您会发现许多使用.git/hooks的解决方案,但不幸的是,在Sierra之后,该解决方案不再起作用。使用#!/bin/bash # Get the current branch name current_branch=`git rev-parse --abbrev-ref HEAD` # Search Jira ID in a pattern such a "feature/ABCD-123-my-feature" id=$(echo $current_branch | sed -nE 's,[a-z]+/([A-Z]+-[0-9]+)-.+,\1,p') # Only prepend if an ID was found in the current branch if [[ ! -z $id ]]; then # $1 is the name of the file containing the commit message # Prepend "ABCD-123: " sed -i.bak -E "1s/^/${id}: /" $1 fi

答案 3 :(得分:0)

Git Prefix 完成工作。

示例流程 Jira 提交前缀设置:([A-Z]{3,6}-[0-9]{2,6})(.*)

enter image description here