2015-04-26 56 views
2

因此,我一直在四处寻找试图找出如何去指定的github页面并获取最后一个提交值并将其绑定到我的应用程序中的一个值,似乎没有任何意义,并且没有很多,如果有的话基于任何东西的例子。以及没有人似乎想分享他们对这个话题的知识。Github最后一次投入?

我试图从github页面获取最后一个提交值,并将其用作我的应用程序中的值,有人可以给我一个如何做到这一点的例子吗?我正在使用C#与WPF项目类型。

+0

听起来像它可能是一个WebClient作业。你可以发表一些更具体的信息,关于你想要在Github上达成什么? – goobering

+0

这似乎有点迂回,因为该页面是git存储库的代表,为什么要查看页面并依赖它提供的视图,这可能会导致轻微的重新设计,而不是查看存储库本身? –

+0

我试图从回购本身获得最后的提交值..当然,我可以看看版本,并试图获得该值,因为它保存在某个.config文件中,但有些人可能不会更新更改后,最近的提交值存储库后im(上次提交:例如2小时前,但只在“2小时前”的一部分)..我真的不知道我应该如何接近它,但四看到一些网站和应用程序已经能够实现它,我也希望能做到这一点。 – Darkshadow

回答

3

如果要在本地克隆存储库并检查它,可以使用GitSharplibgit2sharp。如果这不是您的选择,那么您可以使用github API。您之后的网址是:

https://api.github.com/repos/<repo_path>/commits 

例如https://api.github.com/repos/NancyFx/Nancy/commits

using (var client = new HttpClient()) 
{ 
    client.DefaultRequestHeaders.Add("User-Agent", 
     "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"); 

    using (var response = client.GetAsync("https://api.github.com/repos/NancyFx/Nancy/commits").Result) 
    { 
     var json = response.Content.ReadAsStringAsync().Result; 

     dynamic commits = JArray.Parse(json); 
     string lastCommit = commits[0].commit.message; 
    } 
} 

正如评论所说,这将夫妻您的实现github上,所以要确保您的应用程序并不需要,如果你选择第二个选项在未来与其他主机的git的工作。

+0

是的,这是在一些用户计算机上(软件的用户)生病的,所以我不认为在本地克隆回购将是一个好主意,因为那时我需要弄清楚相对路径/完整路径以访问它.. 但是,它看起来会很好地工作(直到现在还没有关于github api的想法)生病了试试看,并回到你:) – Darkshadow

+0

是的..有几个变化在这里和那里与lastCommit字符串我能够检索其中一个提交的日期(做了一个github和我自己的例子) 正如我计划确保我更新我的版本与我添加和释放的每个功能..你会怎么样建议是自动更新我的应用程序的最佳方式。使用应用程序数据创建一个json文件并将该值与存储在github上的值进行比较? (因为它会有相同的文件,只是一个较早的日期) – Darkshadow

+1

正如网站上所述,GitSharp已不再维护:*“GitSharp开发目前处于暂停状态,因为我们认为libgit2项目及其C#绑定libgit2sharp是更有希望工作。“* – nulltoken