Skip to content

Fork된 레포지토리 PR에서 CI Secrets 접근 문제 해결

김경미 edited this page Aug 2, 2024 · 1 revision

문제 상황

fork 한 레파지토리에서 PR 요청 시 actions에 있는 CI secrests 접근 문제 발생

구체적 상황

  1. woowacorse에 있는 레포지토리를 개인 프로젝트로 fork
  2. 기능 개발 후 PR 요청
  3. actions 실행 - CI
  4. CI에 있는 secrests 존재하지 않다고 에러 발생

문제 분석

접근을 왜 못하지?

actions 공식 문서를 확인하면 다음과 같은 문장이 있다.

"fork된 리포지토리에서 워크플로우가 트리거될 때 GITHUB_TOKEN을 제외하고는 runner에게 시크릿이 전달되지 않는다"

With the exception of GITHUB_TOKEN, secrets are not passed to the runner when a workflow is triggered from a forked repository.
[ Using secrets in a workflow ]

해결

해결 방안들

  1. pull-request-target을 사용하고, 2차 보안으로 PR을 보낸 사용자를 확인하는 작업을 추가
  2. pull-request를 쓰고 CI 진행을 dev, main에서만 실행
  3. pull-request를 사용하고 CI 진행 시 mysql이 아닌 h2를 사용하자

선택한 해결 방안 - h2 사용

왜 ?

  • 공식 문서에서 제한
  • MySQL을 사용해야 하는 이유가 없음
    • 사용자 확인하는 작업을 추가하는 것은 CI 시 시간도 소요

CI 작업: 지속적인 통합을 위해 해당 작업이 빌드가 되는지, test가 잘 작동하는지 확인하는 작업

해당 작업에서는 mysql을 사용해서 배포 환경과 비슷하게 해야 할 필요 없다고 생각한다.
비슷하게 해야한다면 환경을 완전 똑같이 self-hosted-runner을 사용하는 게 더 맞지 않을까?

  • mysql을 사용하지 않으면 CI 속도가 개선 됨

AS-IS

CI시 MySQL 사용

TO-BE

CI시 h2 사용

참고자료

⚡️ 코드zap

프로젝트

규칙 및 정책

공통

백엔드

프론트엔드

매뉴얼

백엔드

기술 문서

백엔드

프론트엔드

회의록


Clone this wiki locally