如何轻松在github上取消监视多个存储库?


80

我意识到我在GitHub上查看了太多的回购协议,而我发现取消对其中的很多订阅的唯一方法是转到github.com/my_user_name/following,进入其中的每一个并按Unwatch按钮。

有没有办法更快,更轻松地取消监视他们?


2
github.com/watching上现在有一个“全部取消监视”按钮。
Geremia '18

Answers:


158

对于懒惰的人,可以在以下URL上在没有API的情况下快速完成此操作:https : //github.com/watching

一个干净的简单列表,单击单击单击单击单击。

此外,还有一个金色的盒子。取消选中它不会自动设置为监视您被授予推送访问权限的所有存储库。Hooray用于管理信噪比。


8
现在甚至还有一个“停止监视所有存储库”按钮!
Francesc Rosas

4
即使没有这样的按钮,您也可以打开开发者控制台并快速进行操作$('button').filter(function(){return $(this).text() === 'Unwatch'}).click()。网页+ jQuery =最佳API!
Patrick Oscity 2014年

4
谢谢@ p11y,好主意。这是带有帐户过滤功能的改进版本(如果您只想过滤某些组织的存储库)$('button').filter(function(){return $(this).text() === 'Unwatch' && $(this).parent().parent().find("a span").html() == "organisationName" }).click();
MatejBalantič2014年

@Matej:您介意将此作为答案发布吗?它也可以作为小书签使用,这在组织规模巨大且回购超过单个页面时会有所帮助!
Marius Gedminas

如果您有多页已监视的仓库,“全部监视”按钮是监视所有仓库还是仅监视当前页面的仓库?
丹尼斯

16

先前答案的本机JS版本。导航至https://github.com/watching,然后运行:

Oneliner:

Array.prototype.slice.apply(document.querySelectorAll('.js-subscription-row')).forEach(el => { const org = el.querySelector('a[href^="/YOUR_ORG"]'); if (org) el.querySelector('button').click()})

展开:

const org = 'YOUR_ORG'
const query = document.querySelectorAll('.js-subscription-row')
const rows = Array.prototype.slice.apply(query)
rows.forEach(function (el) {
  const org = el.querySelector('a[href^="/' + org + '"]')
  if (org) el.querySelector('button').click()
})

1
解包的版本会org多次抛出错误,以定义常量。这对我有用:const orgName ='YOUR_ORG'const query = document.querySelectorAll('。js-subscription-row')const rows = Array.prototype.slice.apply(query)rows.forEach(function(el){let org = el.querySelector('a [href ^ =“ /'+ orgName +'”]')if(org)el.querySelector('button')。click()})
乔恩·迪安

选择器已更改,当前有效的是Array.prototype.slice.apply(document.querySelectorAll('.Box-row')).forEach(el => { const org = el.querySelector('a[href^="/alphagov"]'); if (org) el.querySelector('button').click()})
nacnudus

Github似乎已经更新了此页面。上面代码的更新就是我刚刚使用的代码:Array.from(document.querySelectorAll('.repo-list > li')).filter(el => !!el.querySelector('a[href^="/YOUR-ORG"]')).forEach(el => el.querySelector('details-menu button[value="included"]').click())然后刷新页面并再次运行它,直到完成。
J_A_X

10

特定组织

如果您只想取消单个组织的回购,则可以从https://github.com/watching使用它

$('.js-subscription-row').each(function(){ var isYourOrganisation = $(this).find("a[href^='/YOUR_ORG']"); if(isYourOrganisation.length){ $(this).find('button:contains("Unwatch")').click(); } });

YOUR_ORG用您的组织称为的任何东西代替。



1

我什么都没有看到,因为我们拥有整个宇宙的力量(简而言之,我们是开发人员)。使用他们的开发人员API并创建一个小工具。该API具有很强的描述性,

http://developer.github.com/


0

我还找到了一个命令行工具,该工具使用GitHub API取消监视多个存储库:https ://www.npmjs.com/package/github-unwatch-org-repos

我不是命令行工具的粉丝,我希望我的密码在命令行上以纯文本格式显示(因此,在正确的时间运行“ ps”的所有系统用户都可以看到我的密码,并且还以纯文本格式将其存储在〜/ .bash_history中)除非您格外小心,以免发生这种情况),所以我没有尝试过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.