¿Cómo dejar de ver múltiples repositorios fácilmente en github?

81

Me doy cuenta de que veo demasiados repositorios en GitHub y la única forma que he encontrado para dejar de ver muchos de ellos es ir a github.com/my_user_name/following, entrar en cada uno de ellos y presionar el botón Dejar de mirar.

¿No hay alguna forma de dejar de verlos más rápida y fácilmente?

Fernando Á.
fuente
5
Hay un botón "Dejar de ver todo" en github.com/watching ahora.
Geremia

Respuestas:

161

Para los perezosos, uno puede hacer esto sin la API razonablemente rápido en esta URL: https://github.com/watching

Una lista simple y limpia, haga clic en clic haga clic en clic.

Además, hay una caja dorada. Desmárquelo para que no se configure automáticamente para ver todos los repositorios a los que tiene acceso push. Hurra por gestionar la relación señal / ruido.

BeepDog
fuente
9
¡Incluso hay un botón "Dejar de mirar todos los repositorios" ahora!
Francesc Rosas
4
Incluso sin un botón de este tipo, puede abrir la consola del desarrollador y hacer un rápido $('button').filter(function(){return $(this).text() === 'Unwatch'}).click(). Páginas web + jQuery = ¡la mejor API!
Patrick Oscity
4
Gracias, @ p11y, gran idea. Aquí hay una versión mejorada con filtrado de cuentas (si solo desea filtrar los $('button').filter(function(){return $(this).text() === 'Unwatch' && $(this).parent().parent().find("a span").html() == "organisationName" }).click();
repositorios de
@Matej: ¿te importaría publicar esto como respuesta? También funciona muy bien como bookmarklet, lo que ayuda cuando la organización es enorme y tiene más repositorios de los que caben en una sola página.
Marius Gedminas
1
Si tiene varias páginas de repositorios vistos, ¿el botón "Dejar de ver todos" deja de ver todos los repositorios o solo los de la página actual?
Dennis
16

Versión JS nativa de una respuesta anterior . Navegue a https://github.com/watching y luego ejecute:

Un trazador de líneas:

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

Sin envolver:

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
fuente
1
La versión sin empaquetar arroja un error al definir la constante orgmás de una vez. Esto funciona para mí: 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
Los selectores han cambiado, lo que funciona actualmente esArray.prototype.slice.apply(document.querySelectorAll('.Box-row')).forEach(el => { const org = el.querySelector('a[href^="/alphagov"]'); if (org) el.querySelector('button').click()})
nacnudus
Github parece haber actualizado esta página. Una actualización del código anterior es la que acabo de usar: 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())luego simplemente actualice la página y ejecútela nuevamente hasta que esté todo listo.
J_A_X
10

Organización específica

Si solo desea dejar de ver repositorios de una sola organización, puede usar esto desde 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(); } });

Sustituya YOUR_ORGpor el nombre de su organización.

Ralph Cowling
fuente
1

No he visto ninguno pero, como tenemos el poder de todo el universo (en resumen, somos desarrolladores). Utilice su API de desarrollador y cree una pequeña herramienta. La API es muy descriptiva,

http://developer.github.com/

TeaCupApp
fuente
0

También encontré una herramienta de línea de comandos que usa la API de GitHub para dejar de mirar múltiples repositorios: https://www.npmjs.com/package/github-unwatch-org-repos

No soy un fanático de las herramientas de línea de comandos que quieren mi contraseña en texto sin formato en la línea de comando (por lo tanto, visible para todos los usuarios del sistema que ejecutan 'ps' en el momento adecuado, y también almacenada en texto sin formato en ~ / .bash_history a menos que tenga mucho cuidado para evitarlo), así que no lo he probado.

Marius Gedminas
fuente