dev.to

Turn Your GitHub Contribution Graph Into an ASCII City

GitHub 잔디 그래프를 ASCII 도시로 바꾸기

Go CLI 도구 Skyline은 GitHub 기여 기록을 주별 건물과 일별 창문으로 표현합니다. 터미널 출력뿐 아니라 애니메이션 SVG도 만들며, GitHub Actions로 프로필 README의 이미지를 매일 갱신할 수 있습니다.

AI 요약

Skyline은 GitHub 기여 기록을 작은 ASCII 도시로 바꾸는 Go CLI입니다. 한 주가 건물 하나가 되고, 건물 안의 창문 일곱 개는 요일을 나타냅니다. 기여가 없는 날은 어둡게, 활동량이 많은 날은 더 밝게 표시합니다. 가장 바쁜 주에는 안테나를 더하고, SVG에는 깜빡이는 창문과 반짝이는 별도 넣습니다.

터미널 출력과 SVG 생성

Go 1.25 이상에서 go install github.com/pinkpixel-dev/skyline@latest로 설치한 뒤 skyline 사용자명을 실행합니다. 인증 정보는 GITHUB_TOKEN, GH_TOKEN, gh auth token 순으로 확인합니다. 기본 출력은 106열이며 -weeks 30으로 표시할 주 수를 줄이거나 -height 10으로 건물 높이를 조절할 수 있습니다.

색상 테마는 neon, synthwave, matrix 등 12가지입니다. skyline -themes로 테마를 확인하고 skyline -theme synthwave 사용자명처럼 선택합니다. skyline -svg skyline.svg 사용자명을 실행하면 프로필 README 등에 쓸 애니메이션 SVG를 만듭니다. 애니메이션은 prefers-reduced-motion 설정을 따릅니다.

GitHub Actions로 매일 갱신

프로필 저장소에 .github/workflows/skyline.yml을 추가하면 예약 실행으로 SVG를 자동 생성할 수 있습니다. 예시 워크플로는 매일 UTC 03:17에 실행하고, workflow_dispatch로 수동 실행도 지원합니다. 생성한 skyline.svg는 output 브랜치에 게시하므로 프로필 저장소의 기본 브랜치에 갱신 커밋이 쌓이지 않습니다. README에는 raw.githubusercontent.com의 해당 브랜치 파일을 이미지로 연결합니다.

기본 GitHub Actions 토큰으로 읽은 기여 기록이 로그인 상태에서 보이는 그래프보다 적을 수 있습니다. 이 경우 read:user 권한의 classic personal access token을 만들고 저장소 secret SKYLINE_TOKEN에 넣으면 워크플로가 해당 토큰을 우선 사용합니다.

dev.to 반응

  • @georgekobaidze — 이 콘셉트를 구현한 당신의 버전이 정말 마음에 듭니다. 정말 잘 만들었네요! 취향과 분위기에 맞는 색이 아주 다양하네요. 멋져요!😍
    • @sizzlebop — 고마워요!
  • @puffball1567 — 정말 멋져 보여요! 제 취향에 맞는 풍경을 만들려고 저도 공을 들이게 될 것 같아요.

원문: dev.to / 번역·요약: Trawling