2016-03-03 70 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构建,更新备份镜像,甚至部署到生产服务器。你只受到你的想象力的限制。