Jak łatwo odblokować wiele repozytoriów na Github?


81

Zdaję sobie sprawę, że oglądam zbyt wiele repozytoriów w GitHub, a jedynym sposobem, w jaki znalazłem wiele z nich, jest przejście na github.com/my_user_name/following, wejście do każdego z nich i naciśnięcie przycisku Unwatch.

Czy nie ma sposobu na szybsze i łatwiejsze odblokowanie ich?


5
Na github.com/watching jest teraz przycisk „Unwatch all” .
Geremia,

Odpowiedzi:


161

Dla leniwych można to zrobić dość szybko bez API pod tym adresem URL: https://github.com/watching

Czysta prosta lista, kliknij, kliknij, kliknij, kliknij.

Dodatkowo jest pudełko, które jest złote. Odznacz to, aby nie było ustawione automatyczne oglądanie wszystkich repozytoriów, do których masz dostęp push. Brawo za zarządzanie stosunkiem sygnału do szumu.


9
Jest tu nawet przycisk „Przestań oglądać wszystkie repozytoria”!
Francesc Rosas

4
Nawet bez takiego przycisku możesz po prostu otworzyć konsolę programisty i szybko $('button').filter(function(){return $(this).text() === 'Unwatch'}).click(). Strony internetowe + jQuery = najlepsze API!
Patrick Oscity

4
Dzięki @ p11y, świetny pomysł. Oto ulepszona wersja z filtrowaniem kont (jeśli chcesz tylko przefiltrować repozytoria określonej organizacji)$('button').filter(function(){return $(this).text() === 'Unwatch' && $(this).parent().parent().find("a span").html() == "organisationName" }).click();
Matej Balantič

@Matej: czy mógłbyś opublikować to jako odpowiedź? Działa również świetnie jako bookmarklet, co pomaga, gdy organizacja jest ogromna i ma więcej repozytoriów niż mieści się na jednej stronie!
Marius Gedminas,

1
Jeśli masz wiele stron oglądanych repo, robi „unwatch wszystko” przycisk unwatch wszystkich repo czy tylko te na bieżącej stronie?
Dennis

16

Natywna wersja JS poprzedniej odpowiedzi . Przejdź do https://github.com/watching, a następnie uruchom:

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()})

Nieopakowane:

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
Wersja rozpakowana zgłasza błąd przy orgwielokrotnym definiowaniu stałej . To działa dla mnie: 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 ()})
Jon Dean

Selektory uległy zmianie, obecnie działaArray.prototype.slice.apply(document.querySelectorAll('.Box-row')).forEach(el => { const org = el.querySelector('a[href^="/alphagov"]'); if (org) el.querySelector('button').click()})
nacnudus

Wygląda na to, że Github zaktualizował tę stronę. Aktualizacja powyższego kodu to ta, której właśnie użyłem: 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())po prostu odśwież stronę i uruchom ją ponownie, aż wszystko będzie gotowe.
J_A_X

10

Specyficzna dla organizacji

Jeśli chcesz po prostu odblokować repozytoria z jednej organizacji, możesz tego użyć na 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(); } });

Zastąp YOUR_ORGto, jak nazywa się Twoja organizacja.



1

Nie widziałem żadnego ale, ponieważ mamy moc całego wszechświata (w skrócie jesteśmy programistami). Skorzystaj z ich API programisty i utwórz małe narzędzie. API jest bardzo opisowe,

http://developer.github.com/


0

Znalazłem również narzędzie wiersza poleceń, które wykorzystuje interfejs API GitHub do otwierania wielu repozytoriów: https://www.npmjs.com/package/github-unwatch-org-repos

Nie jestem fanem narzędzi wiersza poleceń, które chcą, aby moje hasło było w postaci zwykłego tekstu w wierszu poleceń (w ten sposób widoczne dla wszystkich użytkowników systemu, którzy uruchamiają `` ps '' we właściwym czasie, a także przechowywane w postaci zwykłego tekstu w ~ / .bash_history chyba że bardzo się starasz, aby tego uniknąć), więc nie próbowałem tego.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.