Skip to content

GitHub

깃허브(GitHub, /'ɡɪtˌhʌb/)는 깃을 사용하는 프로젝트를 지원하는 웹 기반의 호스팅 서비스이다. 루비 온 레일스로 작성되었다. GitHub는 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다. 2009년의 Git 사용자 조사에 따르면 GitHub는 가장 인기있는 Git 호스팅 사이트이다. 또한 2011년의 조사에서는 가장 인기있는 오픈 소스 코드 저장소로 꼽혔다.

깃허브는 pastebin과 유사한 서비스와 위키를 각 저장소마다 운영하고 있으며 깃 저장소를 통해 고칠 수 있다.

2010년 1월부터 깃허브는 GitHub, Inc. 라는 이름으로 운영되고 있다.

Categories

ETC

  • GitDiagram - GitHub Repo를 인터랙티브 다이어그램으로 시각화 (프로젝트 분석 할 때 유용함)
  • github-backup - 깃헙 사용자/조직 전체 백업 도구

Github ecosystem

깃허브(Github)와 바로 연동할 수 있는 관련 서비스 목록은 아래와 같다.

  • Travis CI (지속적 통합)
  • Code Climate (코드 퀄리티 관리)
  • Gemnasium (의존성 버전 관리)
  • Coveralls (테스트 커버리지)
  • Jekyll (GitHub의 Pages를 이용하여 개인 사이트 구축)
  • ActionsFlow - GitHub Actions 기반 IFTTT/Zapier 클론
  • osmos::feed - GitHub을 이용하는 웹 RSS리더 - GitHub Pages로 여러개의 Feed를 모아서 정적 호스팅 - GitHub Actions 로 주기적으로 Feed를 리빌드
  • Utterances - GitHub issues 를 사용하여 블로그에 댓글 기능 추가.
  • Shields.io - SVG 및 래스터 형식의 간결하고 일관되며 읽기 쉬운 뱃지(Badge)
  • Version Badge - https://badge.fury.io/
  • giscus - GitHub Discussions를 이용한 댓글 시스템 오픈소스.
  • GitHub Readme Stats - 동적으로 자동 생성되는 통계 넣기
  • Beautify GitHub Profile - 깃헙 프로필을 이쁘게 꾸며주는 각종 도구 및 Repo들 모음
  • Pages CMS - GitHub을 위한 오픈소스 CMS
  • Repology - Repology는 수많은 패키지 저장소와 다른 소스를 모니터링하여 패키지 버전을 비교하고 다른 정보를 수집합니다.

GitHub 프로젝트에 보안 적용하기

  • Securing Your GitHub Project
  • Git Credential Manager(GCM) Core 적용 필수
  • 2FA 설정
  • Signed Commit 강제 적용
  • 릴리즈 브랜치 보호하기 (룰 기반 Protected branch)
  • PR 리뷰 및 승인 강제
  • 중요 정보 누출을 막기위한 Secret 스캐닝 도구 적용하기
  • 누출된 기록 삭제를 위해 Git History 지우기(재작성)
  • 신뢰할 수 있는 GitHub Action만 실행
  • GitHub Action 으로 Secret 보호
  • 디펜던시들에 대한 취약성 검사
  • Dependabot 으로 취약한 디펜던시들 자동 보안 업데이트
  • GitHub CodeQL 로 코드의 보안 취약성 검사
  • 보안 정책 작성 및 Repo에 적용 하기
  • 임시 Private Fork를 만들어서 보안 취약성 해결하기
  • 사용자를 위해, 보안 업데이트에 대한 관리자 권고 게시 하기

깃헙 지표 이미지 생성기

Generate your metrics that you can embed everywhere.

  • 깃헙 계정 정보를 읽어서 각종 통계 이미지를 생성하여 깃헙 프로필등 다양한 곳에 임베드 가능
  • GitHub Action으로 사용하거나 공유인스턴스 및 직접 설치도 가능

각종 플러그인들

  • 깃헙 계정 통계
  • 구글 PageSpeed
  • 커밋 캘린더(Isometric)
  • 좋아하는 음악/최근 음악
  • 가장 많이 사용하는 언어
  • Follow-up : 이슈(Closed/Open) , PR(Merged/Open)
  • Lines of Code / Repository Traffic
  • Tweet
  • 최근 Post
  • Coding Habit : 언제 주로 커밋하는지 시간/주별 그래프
  • GitHub Activity

OAuth

로그인 후 다음 페이지 들어가자

    Settings > Developer settings > OAuth Apps > New OAuth Apps

연결할 앱에 다음 두 정보를 사용하면 된다:

  • Client ID
  • Client Secret

헷갈리는 두 내용은 다음과 같다:

  • Homepage URL - 그냥 생짜로 홈페이지 들어가고 싶을 때 사용하는 주소
  • Authorization callback URL - 앱의 인증 콜백 URL

Supabase 연동

Troubleshooting

Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead

remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead.
remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information.
fatal: unable to access 'https://github.com/group/project/': The requested URL returned error: 403

Github 로그인 > Settings > Developer > Personal access token 으로 들어가서 Generate new token을 클릭하여 토큰을 생성하고, 암호 대신 해당 토큰으로 로그인하면 된다.

참고로 일반적인 git 소스 제어 (clone, push 등) 은 Select scopesrepo항목만 추가하면 된다.

refusing to allow a Personal Access Token to create or update workflow .github/workflows/python-deploy.yml without workflow scope

 ! [remote rejected] master -> master (refusing to allow a Personal Access Token to create or update workflow `.github/workflows/python-deploy.yml` without `workflow` scope)
error: failed to push some refs to 'https://github.com/yourname/project.git'

Github 로그인 > Settings > Developer > Personal access token 으로 들어가서 workflow 항목을 추가.

See also

Favorite site

Pages