AI Briefing

checkout: Fork PR 코드 실행을 원천 차단하는 GitHub Actions 기본 체크아웃

actions/checkout

·2026.08.27 20:10

GitHub Actions 워크플로에서 저장소를 클론하고 필요한 파일만 가져오는 표준 액션이다. $GITHUB_WORKSPACE에 리포지토리를 배치해 스크립트가 코드를 직접 참조할 수 있게 한다. 기본값은 트리거된 이벤트의 단일 커밋만 가져오지만, fetch-depth 옵션을 조정해 전체 히스토리나 특정 브랜치를 선택적으로 불러올 수 있다.

v7 버전부터 보안 강화가 핵심이다. pull_request_target이나 workflow_run 트리거 시 포크 저장소의 코드를 체크아웃하는 것을 기본적으로 거부한다. 이는 베이스 리포지토리의 토큰과 시크릿이 노출된 상태에서 외부 코드가 실행되는 'pwn request' 취약점을 막기 위한 조치다. 위험성을 인지한 후에도 포크 코드 실행이 필요하다면 allow-unsafe-pr-checkout 옵션을 명시적으로 활성화해야 한다.

자격 증명 관리 방식도 달라졌다. v6부터 persist-credentials가 .git/config 대신 $RUNNER_TEMP 하위의 별도 파일에 자격 증명을 저장한다. 이를 통해 git fetch나 push와 같은 인증된 명령을 자동으로 수행하면서도 설정 파일에 민감한 정보가 노출되는 것을 방지한다. Docker 컨테이너에서 인증된 git 명령을 실행하려면 Actions Runner v2.329.0 이상 버전이 요구된다.

sparse-checkout을 활용해 필요한 폴더나 파일만 선택적으로 가져와 빌드 시간을 단축할 수 있다. Git-LFS 파일 다운로드, 서브모듈 체크아웃, SSH 키 기반 인증 등 다양한 옵션을 지원한다. 현재 이 저장소는 외부 기여를 받지 않으며, 버그 보고와 보안 업데이트는 커뮤니티 토론 및 공식 지원 채널을 통해 처리된다.

GitHub
GitHub 저장소

actions/checkout

Action for checking out a repo

TypeScript

이 한국어 소개글은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 소개 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.