簡體   English   中英

如何自動化Pivotal Tracker和Github集成?

[英]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將為您完成。

我正在使用bookmarklet,它還從故事標題中設置提交消息。

[#69609212] Add new Todo

你可以從這里得到它

遲到的評論,但可能仍然是有用的。 我想要@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM