본문 바로가기
C.W.K.
Stream
Lesson 01 of 12 · published

Repository 비밀값

~11 min · secrets, repo, scope

Level 0견습생
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

대부분의 비밀값이 시작하는 곳

저장소 비밀값은 저장소 설정에 암호화해서 저장하는 키/값 쌍이야. 해당 저장소에서 돌아가는 워크플로에서 쓸 수 있고, 자격 증명이 필요할 때 기본으로 찾는 위치야.

설정하는 방법:

  • 저장소 설정에서 Secrets and variables → Actions → New 저장소 비밀값 순서로 들어가.
  • 아니면 CLI로 gh secret set NAME --body "value"를 써도 돼.
  • 아니면 자동화를 위해 API를 써.

속성

  • 저장할 때 암호화해 (libsodium sealed box).
  • 쓰기 권한이 있는 사람이 실행한 워크플로에서만 볼 수 있어. 중요한 건, 포크한 저장소의 풀 리퀘스트(외부 기여자의 pull_request)가 실행한 워크플로에서는 보이지 않아.
  • 이름은 관습적으로 대문자로 써. 문자는 알파벳, 숫자, 밑줄만 가능하고 숫자로 시작하면 안 돼. GITHUB_로 시작하는 이름도 금지야 (예약어).
  • 비밀값 하나당 최대 64 KB야.
  • 저장소당 최대 100개, 조직당 1000개의 비밀값을 둘 수 있어 (환경 수준은 제한이 달라).

Code

저장소 비밀값 설정과 사용·bash
# Set via gh CLI
gh secret set OPENAI_API_KEY --body "$OPENAI_API_KEY"

# Or pipe from a file (no shell history exposure)
gh secret set DEPLOY_KEY < ~/.ssh/deploy_key

# List secret names (values are never returned)
gh secret list

# Delete
gh secret delete OLD_TOKEN
워크플로에서 비밀값 사용·yaml
      - name: Call OpenAI
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: python scripts/llm_eval.py

External links

Exercise

gh secret set으로 네 프로젝트에 저장소 비밀값을 하나 추가해. 워크플로 단계의 env:에서 참조해 봐. 실행 로그에서 값이 가려졌는지 확인해 (***로 표시돼야 해). 절대 평문으로 보이면 안 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.