Как легко просмотреть несколько репозиториев на github?

81

Я понимаю, что смотрю слишком много репозиториев на GitHub, и единственный способ, который я нашел, чтобы не отслеживать многие из них, - это зайти на github.com/my_user_name/following, попасть внутрь каждого из них и нажать кнопку Unwatch.

Нет ли способа быстро и легко их отследить?

Фернандо Á.
источник
5
На github.com/watching сейчас есть кнопка «Отменить наблюдение за всем» .
Geremia

Ответы:

161

Для ленивых можно достаточно быстро сделать это без API по этому адресу: https://github.com/watching

Чистый простой список, щелкните щелкните щелкните щелкните мышью.

Кроме того, есть коробка золотого цвета. Снимите флажок, чтобы автоматически не отслеживать все репозитории, к которым вам предоставлен push-доступ. Ура за управление соотношением сигнал / шум.

BeepDog
источник
9
Теперь есть даже кнопка «Не смотреть все репозитории»!
Francesc Rosas
4
Даже без такой кнопки вы можете просто открыть консоль разработчика и быстро сделать это $('button').filter(function(){return $(this).text() === 'Unwatch'}).click(). Веб-страницы + jQuery = лучший API!
Патрик Оссити
4
Спасибо, @ p11y, отличная идея. Вот улучшенная версия с фильтрацией учетных записей (если вы просто хотите отфильтровать репозитории определенных организаций)$('button').filter(function(){return $(this).text() === 'Unwatch' && $(this).parent().parent().find("a span").html() == "organisationName" }).click();
Матей Балантич
@Matej: не могли бы вы опубликовать это в качестве ответа? Он также отлично работает как букмарклет, который помогает, когда организация огромна и имеет больше репозиториев, чем помещается на одной странице!
Мариус Гедминас
1
Если у вас есть несколько страниц отслеживаемых репозиториев, отключает ли кнопка «Отменить наблюдение за всеми» все репозитории или только те, что находятся на текущей странице?
Деннис
16

Собственная JS-версия предыдущего ответа . Перейдите на https://github.com/watching и запустите:

Один лайнер:

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/

TeaCupApp
источник
0

Я также нашел инструмент командной строки, который использует GitHub API для обнаружения нескольких репозиториев: https://www.npmjs.com/package/github-unwatch-org-repos

Я не поклонник инструментов командной строки, которым нужен мой пароль в виде обычного текста в командной строке (таким образом, видимый для всех системных пользователей, которые запускают 'ps' в нужное время, а также хранятся в виде обычного текста в ~ / .bash_history если вы не позаботитесь об этом), поэтому я не пробовал.

Мариус Гедминас
источник