[英]How to get email diffs for GitHub pushes?
有人提出了一個很好的方法來獲取電子郵件,當提交被推送到你的GitHub倉庫 - 包括文件差異改變?
(我知道他們有一個電子郵件服務掛鈎 - 但不包括差異)
如果使用可在Gmail中查看的內聯CSS對差異進行着色,則可獲得巨額獎勵積分。
我寫了一個小的WebHook,它正好填補了這個空白: gitdub 。 它利用git-notifier為每次提交發送一封電子郵件。
你是對的,GitHub電子郵件服務鈎子不包括diff:這是一個功能請求 。
J-16 SDIZ也是對的, git-hook-update-notify-email
只能在本地執行,而不能在GitHub端執行。
這並不意味着所說的腳本無法幫助:這個想法將是
在本地非裸倉庫中,您可以:
old-rev
和new-rev
之間的差異) git-hook-update-notify-email
在這兩種情況下,這意味着在本地設置這種服務,這是不理想的。
可能不是你的理想答案,但如果你在自己的服務器上設置gitolite ,你可以設置git-commit-notifer ,獲得漂亮的彩色差異電子郵件,並擁有無限的git帳戶,因為你擁有服務器。 我這樣做了,我從未回頭。
沒有服務器? 您可以獲得一個微型Amazon EC2實例,價格便宜(每月15美元)。 我們有多達12個開發人員和10個git repos,它們在微型實例上運行良好。
這樣做的方法是添加一個通知掛鈎腳本,該腳本將數據發布到您的系統,每個提交都已推送到github。
例如:有效負載由每個應用的提交組成,每個提交都有一個id:
{
:before => before,
:after => after,
:ref => ref,
:commits => [{
:id => commit.id, <--- here
[...]
第二步是讓你的腳本使用github API觸發對github的調用,該調用獲取有效負載中包含的每個提交。 響應包括每個文件的差異,然后您可以通過電子郵件發送給開發人員。
例如: http : //developer.github.com/v3/repos/commits/#get-a-single-commit
GET /repos/:owner/:repo/commits/:sha
:sha是您獲取代碼的提交的ID,響應如下所示:
[...]
"files": [
{
"filename": "file1.txt",
"additions": 10,
"deletions": 2,
"changes": 12,
"status": "modified",
"raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt",
"blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt",
"patch": "@@ -29,7 +29,7 @@\n....." <---- HERE
}
[...]
希望這可以幫助。 請詢問您是否需要有關如何操作的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.