Wie kann man mehrere Repos einfach auf Github abhören?

80

Mir ist klar, dass ich in GitHub zu viele Repos sehe und die einzige Möglichkeit, viele davon zu entfernen, besteht darin, auf github.com/my_user_name/following zuzugreifen, in jedes von ihnen zu gelangen und die Unwatch-Taste zu drücken.

Gibt es keine Möglichkeit, sie schneller und einfacher zu beobachten?

Fernando Á.
quelle
2
Unter github.com/watching gibt es jetzt die Schaltfläche "Alle nicht mehr sehen" .
Geremia

Antworten:

158

Für die Faulen kann man dies ohne die API relativ schnell unter dieser URL tun: https://github.com/watching

Eine saubere einfache Liste, Klick Klick Klick Klick.

Zusätzlich gibt es eine goldene Schachtel. Deaktivieren Sie diese Option, damit sie nicht automatisch so eingestellt wird, dass alle Repos angezeigt werden, auf die Sie Push-Zugriff erhalten. Ein Hoch auf die Verwaltung des Signal-Rausch-Verhältnisses.

BeepDog
quelle
8
Es gibt jetzt sogar die Schaltfläche "Alle Repositorys nicht mehr ansehen"!
Francesc Rosas
4
Auch ohne eine solche Schaltfläche können Sie einfach die Entwicklerkonsole öffnen und schnell etwas tun $('button').filter(function(){return $(this).text() === 'Unwatch'}).click(). Webseiten + jQuery = beste API!
Patrick Oscity
4
Danke, @ p11y, tolle Idee. Hier ist eine verbesserte Version mit Kontofilterung (wenn Sie nur die Repos bestimmter Organisationen filtern möchten)$('button').filter(function(){return $(this).text() === 'Unwatch' && $(this).parent().parent().find("a span").html() == "organisationName" }).click();
Matej Balantič
@Matej: Würde es Ihnen etwas ausmachen, dies als Antwort zu posten? Es funktioniert auch hervorragend als Lesezeichen, was hilft, wenn die Organisation riesig ist und mehr Repos hat, als auf eine einzelne Seite passen!
Marius Gedminas
Wenn Sie mehrere Seiten mit Repos haben, werden mit der Schaltfläche "Alle nicht sehen" alle Repos oder nur die Repos auf der aktuellen Seite deaktiviert ?
Dennis
16

Native JS-Version einer vorherigen Antwort . Navigieren Sie zu https://github.com/watching und führen Sie Folgendes aus:

Einzeiler:

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

Ausgepackt:

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()
})
Yoshua Wuyts
quelle
1
Die entpackte Version gibt einen Fehler aus, orgwenn die Konstante mehrmals definiert wird . Dies funktioniert bei mir: const orgName = 'YOUR_ORG' const query = document.querySelectorAll (' org = el.querySelector ('a [href ^ = "/' + orgName + '"]') if (org) el.querySelector ('button'). click ()})
Jon Dean
Die Selektoren haben sich geändert, was derzeit funktioniert istArray.prototype.slice.apply(document.querySelectorAll('.Box-row')).forEach(el => { const org = el.querySelector('a[href^="/alphagov"]'); if (org) el.querySelector('button').click()})
Nacnudus
Github scheint diese Seite aktualisiert zu haben. Ein Update des obigen Codes ist das, das ich gerade verwendet habe: 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())Aktualisieren Sie dann einfach die Seite und führen Sie sie erneut aus, bis alles fertig ist.
J_A_X
10

Organisationsspezifisch

Wenn Sie nur Repos von einer einzelnen Organisation entfernen möchten, können Sie dies unter https://github.com/watching verwenden

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

Ersetzen Sie YOUR_ORGdurch was auch immer Ihre Organisation heißt.

Ralph Cowling
quelle
1

Ich habe keine gesehen, aber wir haben die Macht des gesamten Universums (kurz gesagt, wir sind Entwickler). Verwenden Sie die Entwickler-API und erstellen Sie ein kleines Tool. Die API ist sehr beschreibend,

http://developer.github.com/

TeaCupApp
quelle
0

Ich habe auch ein Befehlszeilentool gefunden, das die GitHub-API verwendet, um mehrere Repositorys zu deaktivieren: https://www.npmjs.com/package/github-unwatch-org-repos

Ich bin kein Fan von Befehlszeilentools, die mein Kennwort im Klartext in der Befehlszeile haben möchten (daher für alle Systembenutzer sichtbar, die 'ps' zum richtigen Zeitpunkt ausführen und auch im Klartext in ~ / .bash_history gespeichert sind es sei denn, Sie achten äußerst darauf, dies zu vermeiden), also habe ich es nicht versucht.

Marius Gedminas
quelle