Як легко відстежувати кілька репозиторіїв на github?


81

Я усвідомлюю, що спостерігаю надто багато репозиторіїв у GitHub, і єдиний спосіб, який я знайшов, щоб відстежити багато з них, - це перейти на github.com/my_user_name/following, потрапивши всередину кожного з них і натиснувши кнопку Unwatch.

Чи не існує способу їх швидшого та легшого відстеження?


5
Там є «все Unwatch» кнопка на github.com/watching Зараз.
Геремія

Відповіді:


161

Для ледачих це можна зробити без API досить швидко за цією адресою: https://github.com/watching

Чистий простий список, клацання клацання клацання клацання.

Крім того, є коробка, яка золота. Зніміть прапорець, щоб він не встановлювався автоматично для перегляду всіх репозиторіїв, до яких ви отримали push-доступ. Ура для управління співвідношенням сигнал / шум.


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 і запустіть:

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 row = 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

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

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.