gh-reponark는 GitHub 계정이나 소속 조직의 모든 저장소 설정을 탐색·검토·비교·필터링하는 GitHub CLI 확장이다. 저장소마다 설정 페이지를 열지 않고 기본 브랜치 보호, 취약점 알림, 공개 여부, 라이선스, 보안 정책, 병합 방식 등을 확인할 수 있으며, 설정을 변경하지 않는 읽기 전용 도구다.

시연 영상에서는 저장소별 상세 정보와 조직 내 비교 통계, 7개 설정 그룹(개요, 상태, 지표, 기능, 병합, 권한, 보안)을 살펴볼 수 있다. 매트릭스 화면에서는 설정 그룹별로 모든 저장소를 격자 형태로 비교한다. 속성을 기준으로 필터링하면 실시간 일치 개수와 저장소별 값 분포를 확인하고, 조건에 맞는 저장소만 목록에 남길 수 있다.

설치와 사용

GitHub CLI를 설치한 뒤 다음 명령으로 확장을 설치한다.

`gh extension install admcpr/gh-reponark

`

로그인하고 실행한다.

`gh auth login

gh reponark

`

gh reponark --version은 설치된 릴리스를 표시한다. GitHub 계정 없이 기본 샘플 데이터를 둘러보려면 gh reponark --demo를 실행하면 된다.

개발과 구성 요소

개발에는 go.mod에 지정된 버전의 Go와 로그인된 GitHub CLI가 필요하다. 샘플 데이터로 실행하거나 계정에 연결해 실행하고 테스트하는 명령은 다음과 같다.

`go run . --demo # the UI against built-in sample data, no GitHub needed

go run . # against your account

go test ./...`

터미널 없이 화면을 텍스트로 캡처해 확인하는 명령도 제공한다.

CAPTURE_DIR=captures go test -tags capture -run TestCapture ./...

이 명령은 색상 정보를 포함하는 <width>x<height>-<screen>.ans 파일과 비교하거나 렌더링할 수 있는 .txt 파일을 만든다. 저장소 상단의 데모 녹화는 VHS와 demo.tape로 만들며, 릴리스마다 첨부된다. 녹화 파일은 저장소에 커밋되지 않는다.

main에 병합하면 릴리스가 발행된다. 병합 커밋에 #minor 또는 feat:가 있으면 마이너 버전이, #major 또는 feat!:가 있으면 메이저 버전이 올라가며, 그 외에는 패치 버전이 올라간다. [skip release]는 릴리스를 건너뛴다.

이 도구는 Charm의 터미널 라이브러리를 기반으로 하며, Bubble Tea, Lip Gloss, Bubbles, VHS를 사용한다. GitHub CLI 접근에는 go-gh를 이용한다. 라이선스는 MIT다. ‘nark’는 영국 속어로 경찰 스파이나 밀고자를 뜻한다.