[英]How can I automate Pivotal Tracker & Github Integration?
Pivotal Tracker和Github具有很好的集成性:一旦設置完成,每個以Pivotal Tracker ID為前綴的提交將自動顯示在相應的Pivotal Ticket下,例如:
git commit -am '[#1234567] my new changes'
git push origin
將使用github提交鏈接自動將評論“我的新更改”添加到1234567 Pivotal Ticket中。
但是,每次都很容易忘記添加票證ID。 怎么可以簡化/自動化?
解決方案是使用Git-Hooks和功能分支。 (建議使用Github-flow)。
您必須安裝此Git-Hook(將文件復制到本地存儲庫):
https://github.com/ktamas77/git_hooks
在開始處理特定Pivotal故障單之前,您需要創建一個以Pivotal Tracker ID為前綴的分支,例如:
git checkout 1234567_build_new_form
然后像平常一樣添加所有更改:
git commit -am 'form added'
git commit -am 'styles added'
git push origin
你會看到,git hook腳本會自動從功能分支名稱中提取Pivotal Tracker ID並將其添加到每個注釋的前面。 如果需要,您仍然可以手動覆蓋它(使用另一個ID)。
通過這種方式,您不必擔心每次提交都手動添加Pivotal ID。 它也適用於GUIS(例如GIT Tower),因為這些GUI使用標准的GIT庫/可執行文件。
這是一個基於Tamas解決方案的簡單shell版本。 它從分支名稱的末尾獲取ID。
“my-feature-branch-12345678”=>“我的提交mssg [#12345678]”。
移動到.git / hooks / prepare-commit-msg並使其可執行:
#!/bin/bash
if story_id=`git branch | grep -oP '^\*.*\-\K[0-9]+$'`
then
echo "[#$story_id]" >> "$1"
fi
安裝'git-pivotal-tracker-integration'gem, https://github.com/nebhale/git-pivotal-tracker-integration
它向Git添加命令,如Git的開始和結束,自動為分支和提交添加跟蹤器故事ID,並將提交消息發布到跟蹤器。 當你打電話給'git start'時,它會拉主人以確保你是最新的,為你創建一個分支,並為你在跟蹤器中啟動故事。 然后工作然后調用'git finish',它會將你的分支合並回主控和更新跟蹤器。
我的團隊正在使用git_tracker
。 每個開發者必須運行
$ git tracker init
對於Pivotal Tracker上的每個項目都有一次。 然后,他們需要使用特殊約定命名每個新分支,並使用Pivotal Tracker故事ID作為后綴。 例如:
$ git checkout -b the-great-feathure-123456789
其中123456789將成為Pivotal Tracker的故事ID。
在這里,你會自動讓每個提交參考故事。 獎勵點,如果您使用GitHub執行拉取請求,您可以要求合並故事的審閱者添加到合並提交:
[Fixes #123456789] ...
這樣,您永遠不必單擊Finish
按鈕,GitHub將為您完成。
遲到的評論,但可能仍然是有用的。 我想要@Sjoerd提供的相同解決方案,但我是一個mac用戶;)
結果代碼如下所示;
story_id=`git symbolic-ref --short -q HEAD | grep -o "^[[:digit:]]*"`
if [ ! -z "$story_id" -a "$story_id" != " " ]
then
echo "[#$story_id] $(cat $1)" > "$1"
fi
請注意,我們將問題ID添加到分支名稱,但是修改正則表達式以匹配字符串的結尾非常基本,而不是開頭。 我們還將問題ID添加到注釋的開頭,因為這在git日志中提供了更清晰的概述。 如果上述腳本是ues,則每個提交消息將以[#<issue ID>]
為前綴,除非分支名稱不以實際問題ID開頭。
應該注意的是,如果在prepare-commit-msg
鈎子中的任何其他代碼之前添加此代碼可能是最好的,因為這將導致所有提交被預先添加,甚至自動合並等。
希望這可以幫助!
這是一個完全符合你想要的寶石:
http://github.com/bogdan/git-storyid
它允許從一個精美的菜單中選擇一個故事:
[1] Removing Billing Page
[2] Welcome Email
[3] Tag campaign insertion points and campaigns with an identifier
Indexes(csv): 3
[campaign-tags 3020407] [#44116647] Initial implementation of campaign tags
1 file changed, 101 insertion(+), 2 deletions(-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.