깃허브 환경, 필수 검토, 대기 타이머, 환경 시크릿 | 프로덕션 토큰이 프리뷰 잡에 열리면?
프리뷰 잡이 프로덕션 토큰을 읽으면 값이 저장소 시크릿에 있습니다. 깃허브 환경 시크릿은 그 환경을 적은 잡만 열고, 필수 검토와 대기 타이머는 무료, 프로, 팀의 공개 저장소에만 있습니다. 개발자, 깃허브, Next.js, 데브옵스, 클라우드, API, 백엔드, 버셀 기준으로 배포 잡이 여는 시크릿 칸만 보고 동시성 글, 오아이디씨 글과 자리를 섞지 않습니다. 2026년 8월 깃허브 공식 문서.
프리뷰 잡이 프로덕션 토큰을 읽으면, 그 값은 저장소 시크릿에 있습니다. 잡에 환경을 적으면 그 칸의 시크릿만 열리고, 규칙이 있으면 규칙이 끝나기 전에는 값이 안 나옵니다. 개인 무료 플랜은 공개 저장소에서만 환경을 설정합니다. 프로는 비공개에도 시크릿을 두지만, 필수 검토와 대기 타이머는 공개 저장소에만 있습니다. 저는 검수 잡 로그에 배포 토큰이 찍힌 날을 봤고, 같은 이름을 저장소에서 지웠습니다. 장기 키는 오아이디씨 글, 분이 겹치는 칸은 동시성 글입니다. 여기는 프로덕션 잡이 여는 시크릿 칸만 봅니다.
숫자는 2026년 8월 깃허브 환경 문서와 배포 규칙 문서 기준입니다.
저장소 시크릿이면 검수 잡도 같은 토큰을 연다
저장소 시크릿은 그 저장소의 워크플로가 모두 읽습니다. 프로덕션 토큰은 환경 시크릿으로 옮기고, 배포 잡에만 환경 이름을 겁니다.
공식 문서는 환경에 둔 시크릿이 그 환경을 참조한 잡에만 열린다고 적습니다. 필수 검토가 있으면, 검토가 끝나기 전에는 값도 안 나갑니다. 저장소 시크릿은 그 칸이 없습니다. 검수, 린트, 프리뷰가 같은 저장소에 있으면 같은 이름을 읽습니다. 포크에서 온 풀 리퀘스트는 기본으로 시크릿을 못 받습니다. 같은 저장소 브랜치 검수는 받습니다.
저는 12개 사이트 중 한 저장소에서 버셀 토큰을 저장소 시크릿에 두었습니다. 프리뷰 잡이 환경 변수를 찍는 디버그 줄을 남긴 날, 그 값이 로그에 나왔습니다. 시크릿이 커밋에 붙는 칸은 시크릿 체크 글입니다. 오늘은 액션이 어느 범위의 값을 읽는지 칸만 봅니다.
칸
누가 읽나
규칙이 끝나기 전
잘 맞는 값
저장소 시크릿
그 저장소 워크플로
바로 열림
검수, 공개해도 되는 토큰
환경 시크릿
그 환경을 적은 잡
규칙이 끝나야 열림
프로덕션 배포 토큰
환경 변수
그 환경을 적은 잡, vars 칸
잡이 시작된 뒤
공개돼도 되는 주소, 플래그
조직 시크릿
허용한 저장소
바로 열림
여러 저장소가 같이 쓰는 값
재사용 워크플로가 시크릿을 넘기는 칸은 재사용 워크플로 글입니다. inherit 한 줄은 호출 쪽 저장소 시크릿입니다. 환경 시크릿은 호출된 잡이 환경을 직접 적어야 열립니다.
로그에 시크릿 이름을 찍으면 값이 새어 나갑니다 | 깃허브는 알려진 시크릿 값을 가리지만, 잘라 붙인 문자열은 못 가립니다. 프리뷰 잡에는 프로덕션 이름을 넣지 않습니다.
워크플로에 이름만 적어도 칸은 생기지만 규칙은 비어 있다
없는 환경 이름을 잡에 적으면 깃허브가 그 이름으로 칸을 만듭니다. 규칙은 없고 시크릿도 없습니다. 설정은 저장소 관리자만 붙입니다.
환경 문서가 이렇게 적습니다. 워크플로를 고칠 수 있는 사람은 파일만으로 칸을 만들 수 있습니다. 규칙과 시크릿은 개인 저장소면 주인이, 조직이면 관리 권한이 붙입니다. 이름 길이는 255자이고, 대소문자는 가리지 않습니다. 저장소 안에서 겹치면 안 됩니다. 페이지 빌드가 칸을 만들면 소스 브랜치가 보호 규칙으로 붙습니다. 그 밖에는 빈 칸입니다.
설정 경로는 저장소 설정, 왼쪽의 환경, 새 환경입니다. 이름을 넣고 구성합니다. 그다음 시크릿과 규칙을 따로 저장합니다. 씨엘아이로 값을 넣을 때는 환경 플래그를 줍니다.
씨엘아이 | 프로덕션 칸에만 토큰을 넣는다
gh secret set --env production VERCEL_TOKEN
gh secret list --env production
빈 칸은 보호가 아닙니다 | 이름만 적힌 잡은 배포 기록만 남깁니다. 시크릿과 규칙이 비어 있으면 저장소 시크릿을 그대로 읽습니다.
검수 잡은 저장소 시크릿만 봅니다. 프로덕션 토큰은 환경 칸에 둡니다
필수 검토 칸이 안 보이면 플랜과 공개 여부가 막은 것이다
개인 무료는 공개 저장소에서만 환경을 설정합니다. 프로와 팀은 비공개에도 시크릿과 배포 브랜치를 두지만, 필수 검토와 대기 타이머는 공개 저장소에만 있습니다.
배포 규칙 문서가 칸마다 공개 여부를 적습니다. 필수 검토는 사람이나 팀을 여섯까지 넣고, 한 명만 승인하면 진행합니다. 검토자는 읽기 권한이 있어야 합니다. 대기 타이머는 1분부터 4만 3천 2백 분까지이고, 그 시간은 과금 분에 안 들어갑니다. 관리자가 규칙을 건너뛰는 옵션은 기본이 켜져 있습니다. 그 옵션을 끄는 칸도 무료, 프로, 팀의 공개 저장소에만 있습니다. 사용자 정의 보호 규칙은 공개 미리보기이고, 한 환경에 동시에 여섯까지입니다.
공개 저장소를 비공개로 바꾸면 규칙과 환경 시크릿은 무시됩니다. 다시 공개로 돌리면 예전 설정이 살아납니다. 국내 카드로 프로를 결제해도, 비공개 저장소에는 필수 검토 칸이 없습니다. 1인 저장소에서 자기 검토 금지를 켜면, 배포를 시작한 사람이 승인을 못 해서 줄이 멈춥니다.
칸
무료 공개
무료 비공개
프로, 팀 비공개
환경 만들기
됨
안 됨
됨
환경 시크릿
됨
안 됨
됨
환경 변수
됨
안 됨
됨
배포 브랜치, 태그
됨
안 됨
됨
필수 검토
됨
안 됨
안 됨
대기 타이머
됨
안 됨
안 됨
오아이디씨 글은 클라우드 역할입니다. 깃허브 환경 이름과 에이더블유에스 주체 클레임은 다른 칸입니다. 환경 보호를 신뢰 조건에 넣을 수는 있어도, 검토 화면을 대신하지는 않습니다.
비공개로 바꾸면 규칙이 꺼집니다 | 무료 플랜에서 공개 저장소를 비공개로 돌리면 환경 시크릿과 보호 규칙이 무시됩니다. 토큰이 저장소 시크릿으로 돌아가 있는지 먼저 봅니다.
배포 브랜치를 메인만 열어도 태그 이름은 따로다
배포 브랜치와 태그는 어떤 참조가 그 환경으로 가는지 가릅니다. 제한 없음, 보호된 브랜치만, 고른 이름 세 가지입니다. 브랜치 규칙과 태그 규칙은 따로 넣습니다.
문서는 고른 이름을 워크플로의 깃허브 레프와 맞춘다고 적습니다. releases/* 를 넣으면 그 접두가 있는 참조만 통과합니다. 와일드카드는 슬래시를 넘기지 않습니다. 한 단을 더 열려면 release/*/* 입니다. 풀 리퀘스트 병합 참조를 열려면 refs/pull/*/merge 를 따로 넣습니다. 보호된 브랜치만 고르면, 저장소에 보호 규칙이 하나도 없을 때 모든 브랜치가 통과합니다. 보호 브랜치와 같은 이름 태그, 포크의 같은 이름 브랜치는 그 환경으로 못 갑니다.
릴리스 태그를 배포 트리거로 쓰는 칸은 공개 노트 글입니다. 태그 푸시만 배포 잡을 켜고, 환경에는 태그 규칙 v* 를 따로 둡니다. 브랜치 규칙만 메인이면 태그 잡이 막힙니다.
환경 설정 화면 | 브랜치와 태그를 따로 넣는다
# Deployment branches and tags: Selected
# Ref type: Branch → main
# Ref type: Tag → v*
프로 비공개는 시크릿과 배포 브랜치만 됩니다. 필수 검토는 공개 저장소 칸입니다
배포 기록 없이 시크릿만 쓰는 잡이 있다
환경을 적은 잡은 기본적으로 배포 객체를 만듭니다. 시크릿만 필요하고 배포가 아니면, 배포 값을 거짓으로 둡니다.
배포 문서가 2026년 3월 이후 이 칸을 적습니다. 이름과 주소를 같이 쓰면, 저장소 배포 화면과 워크플로 그래프, 풀 리퀘스트의 배포 보기 버튼에 주소가 붙습니다. 주소를 빼면 기록만 남습니다. 배포를 거짓으로 두면 환경 시크릿과 변수는 열리지만 배포 객체는 안 생깁니다. 검사 잡이 스테이징 값을 읽어야 할 때 맞습니다.
기능 노출을 켜고 끄는 칸은 기능 플래그 글입니다. 깃허브 환경은 잡이 시작되기 전 칸입니다. 플래그는 이미 떠 있는 서비스의 사용자 칸입니다. 두 줄을 한 화면에서 같이 켜지 않습니다.