github에서 여러 저장소를 쉽게 언 워치하는 방법은 무엇입니까?


81

GitHub에서 너무 많은 리포지토리를보고 있다는 것을 알고 있으며 그중 많은 리포지토리를 언 워치하는 유일한 방법은 github.com/my_user_name/following으로 이동하여 각각에 들어가 언 워치 버튼을 누르는 것입니다.

더 빠르고 쉽게 볼 수있는 방법이 없나요?


5
지금 github.com/watching에 " Unwatch all"버튼이 있습니다.
Geremia

답변:


161

게으른 사람들을 위해 다음 URL에서 합리적으로 빠르게 API없이이 작업을 수행 할 수 있습니다. https://github.com/watching

깔끔한 간단한 목록은 클릭 클릭 클릭 클릭.

또한 황금색 상자가 있습니다. 푸시 액세스 권한이 부여 된 모든 저장소를 감시하도록 자동으로 설정되지 않도록하려면 선택을 취소하십시오. 신호 대 잡음비 관리를위한 만세.


9
이제 "모든 저장소 감시 중지"버튼도 있습니다!
Francesc Rosas 2014

4
이러한 버튼이 없어도 개발자 콘솔을 열고 빠르게 $('button').filter(function(){return $(this).text() === 'Unwatch'}).click(). 웹 페이지 + jQuery = 최고의 API!
Patrick Oscity 2014 년

4
감사합니다, @ p11y, 좋은 생각입니다. (당신이 단지 특정 조직의 REPOS를 필터링하려는 경우) 다음 계정 필터링하는 개선 된 버전입니다$('button').filter(function(){return $(this).text() === 'Unwatch' && $(this).parent().parent().find("a span").html() == "organisationName" }).click();
마테이 Balantič

@Matej : 답변으로 게시 해 주시겠습니까? 또한 북마크릿으로도 잘 작동하므로 조직이 거대하고 단일 페이지에 들어가는 것보다 더 많은 저장소가있을 때 도움이됩니다!
Marius Gedminas

1
감시 된 리포지토리의 여러 페이지가있는 경우 "모두 감시 해제"단추가 모든 리포지토리 를 감시 해제 합니까 아니면 현재 페이지에있는 리포지터리 만 감시 합니까?
Dennis

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

선택자가 변경되었습니다. 현재 작동하는 것은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

또한 GitHub API를 사용하여 여러 리포지토리를 감시 해제하는 명령 줄 도구를 찾았습니다. https://www.npmjs.com/package/github-unwatch-org-repos

나는 명령 줄에서 일반 텍스트로 내 암호를 원하는 명령 줄 도구를 좋아하지 않습니다 (따라서 적시에 'ps'를 실행하는 모든 시스템 사용자에게 표시되고 ~ / .bash_history에 일반 텍스트로 저장 됨). 그것을 피하기 위해 극도의주의를 기울이지 않는 한), 그래서 나는 그것을 시도하지 않았습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.