如何获得GitHub存储库提交的通知?

53

我希望知道Lithium框架正在进行哪些提交,以便在出现重大更新时进行更新或回滚。

我已经关注了该存储库,但从我所能找到的情况来看,这只显示了GitHub仪表板上的更新。


2
将此问题的交叉链接添加到 Stack Overflow(https://dev59.com/62kw5IYBdhLWcg3wqMU0),以便只想接收有关存储库“部分”更改的通知的人可以获得相关信息。 - Michael
相关链接:https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository - undefined
10个回答

46

订阅Github的RSS源!
选择您的新闻源(所有关注的仓库),或仅查看Lithium的提交历史。

RSS就是为此而生的;-)

附注:我不知道您如何发现它有用,因为每天都会有几个分支进行一些小的拼写修正,有些修复错误,还有些引入新功能...


2
排版错误和漏洞修复不是我关心的事情。我正在构建实时网站,而且出现了回滚的情况,我发现跟踪仓库如何变化非常重要。 - ton.yeung
12
似乎 GitHub 没有提供 RSS 链接。不过我认为这个链接可能有效:https://github.com/UnionOfRAD/lithium/commits/master.atom。在另一个问题的答案中找到了这个解决方案:https://dev59.com/_2s05IYBdhLWcg3wQvke。 - ton.yeung
6
从Github的提交选项卡中,您可以获取到动态信息。主分支的动态信息是跟踪变更的好选择。 - Mehdi Lahmam B.
如果您正在寻找推送通知(即手机或电脑上的通知,而不是电子邮件通知),您可以查看下面的答案 https://dev59.com/Q2kw5IYBdhLWcg3wg6yg#62985885 - Joshua Wolff

24

我无意中发现您可以轻松地完成以下操作:

  • fork 项目(如果您还没有这样做)
  • 从所选分支创建自己的拉取请求,例如从主项目的master到您的fork的master:
    • base repository: your/project ; base: master <-- head repository: original/project ; compare: master
  • 不要合并此拉取请求
  • 在您的通知设置的电子邮件部分启用以下选项:
    • 问题和拉取请求上的评论
    • 拉取请求审核
    • 拉取请求推送

就是这样。 您将收到有关主分支上每个提交的电子邮件通知。


不确定这应该如何工作。我尝试了一下,但没有收到任何通知。除了这个之外,我还需要做些什么吗? - rubo77
@rubo77,我已经更新了解决方案的通知设置(否则您的设置看起来很好)。 - Krisztian
啊,好的,这是关于电子邮件通知的。我以为右上角带有蓝色铃铛的通知也有相同的设置。现在我会尝试获取电子邮件通知... - rubo77
1
我认为我也会遇到这种情况(但如果你阅读了邮件,它们就会消失)。 - Krisztian
2
你可能需要放弃最后一次提交。在2021年,我无法打开一个空差异的PR:“没有任何东西可以比较。”所以我克隆了仓库,git reset HEAD~git push --force。然后我就能按照这个答案建立PR了。 - Gunar Gessner

15

前往您的 Github 项目 -> 设置 -> 通知。

添加任何想要在提交完成时通知的地址。


6
仅当您拥有该存储库的管理员权限时才能使用此功能(请参阅 https://help.github.com/en/articles/about-email-notifications-for-pushes-to-your-repository)。 - jkmartindale

15

除了其他建议,您可以尝试使用HubNotify进行电子邮件通知。


Translated: 除了其他建议,您可以尝试使用 HubNotify 进行电子邮件通知。

5
根据他们自己的描述,这会通知新标记而非新提交。 - Aurélien
我在此处添加了有关提交的答案:https://dev59.com/Q2kw5IYBdhLWcg3wg6yg#62985885 - Joshua Wolff

10
你可以利用GitHub Events API来完成这个任务并获取一个JSON格式的响应。 注意:为了检索提交,您需要过滤掉PushEvents类型的事件。
以下是一个快速示例:

$(function() {
    $.getJSON('https://api.github.com/repos/UnionOfRAD/lithium/events?callback=?', function(data) {
        var list = $('#push-events');

        $.each(data.data, function(key, val) {
            if (val.type == "PushEvent") {
                $.each(val.payload.commits, function(key2, val2) {
                    list.append('<li id="' + val2.sha + '"><a href="https://github.com/UnionOfRAD/lithium/commit/' + val2.sha + '">'
                                + val2.message + '</a> [' + val.actor.login + ' @ ' + val.created_at + ']</li>');
                });
            }
        });
        
        if (list.children().size() == 0) {
            list.append('<li>No pushes in last ' + data.data.length + ' events.</li>');
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<ul id="push-events"></ul>


1
所以我猜没有一个我可以打勾的事件或通知设置吗? - ton.yeung
很遗憾,在调用API时没有办法过滤事件。这必须在接收结果后作为后处理步骤执行。 - nulltoken

6

免责声明:本文作者为原创。

这个项目可以让你在所关注的仓库(任何分支)中有提交时收到电子邮件通知。

说明:gicowa是一个用Python编写的命令行工具,它可以列出您正在关注的所有GitHub存储库上的最新提交。该工具可以通过电子邮件发送其输出,并且可以从您的crontab调用。这样做可以让您每次在GitHub存储库上推送提交时都收到电子邮件通知。


2

1
服务正在被废弃。https://developer.github.com/changes/2018-04-25-github-services-deprecation/ - Angus
1
感谢提供废弃信息。关于查看所观察的存储库提交的电子邮件,可以使用此链接中描述的方法,使用GitHub的RSS源和IFTTT(如果存储库是私有的,则设置OAuth),或者当然也可以使用RSS源阅读器。 - user4028

1
我使用了Devhubapp,下载了桌面版并将通知设置为我的仓库,它运行得非常好!也许它可以帮助最近发现这个话题的用户。

0

0
你可以使用 GitHub Webhooks 并将其设置为 推送通知 API。这是免费而且容易实现的。 Spontit 是一个提供此功能的免费 API 示例。
如需教程,请参阅 此视频
README 文件中提供了书面说明,点击此处 查看。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接