2016-03-03 84 views
1

我想創建一個Java應用程序,它監視GitHub存儲庫,將更改提取到正在運行的計算機上,並在存儲庫中的某些內容發生更改時觸發方法。Java監視器GitHub存儲庫

while(true) 
{ 
    if(new commits on the remote github repo) 
    { 
     pullChanges(); 
     doSomething(); 
    } 
} 

我目前使用JGit並定期刪除本地倉庫克隆一個新的,比較合併後的文件大小,以檢查是否有任何改變。這是令人難以置信的hacky和不可靠的(如果一個提交只是改變一個字母,文件大小將是相同的)

+0

你應該能夠得到使用jgit庫提交日誌如果這兩個散列變化拉動的變化。 – Dodge

+0

[這裏](https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/ShowLog.java)是一個用於檢索提交日誌的示例 – Dodge

回答

0

我改變了它的Java應用程序啓動時克隆庫,在那之後我創建了一個單獨的線程是倉庫每30秒和檢查,如果事情一直與「FetchResult」改爲拉新提交從返回Java方法。

這些幫助過我:

Cloning a repo

Pulling commits

0

您可以使用GitHub Webhooks

Webhooks允許您構建或設置訂閱GitHub.com上某些事件的集成。當其中一個事件被觸發時,我們會發送HTTP POST負載到webhook配置的URL。 Webhook可用於更新外部問題跟蹤器,觸發CI構建,更新備份鏡像,甚至部署到生產服務器。你只受到你的想象力的限制。