TechFeedTechFeed
Cloud & DevOps

깃허브 환경, 필수 검토, 대기 타이머, 환경 시크릿 | 프로덕션 토큰이 프리뷰 잡에 열리면?

프리뷰 잡이 프로덕션 토큰을 읽으면 값이 저장소 시크릿에 있습니다. 깃허브 환경 시크릿은 그 환경을 적은 잡만 열고, 필수 검토와 대기 타이머는 무료, 프로, 팀의 공개 저장소에만 있습니다. 개발자, 깃허브, Next.js, 데브옵스, 클라우드, API, 백엔드, 버셀 기준으로 배포 잡이 여는 시크릿 칸만 보고 동시성 글, 오아이디씨 글과 자리를 섞지 않습니다. 2026년 8월 깃허브 공식 문서.

by

프리뷰 잡이 프로덕션 토큰을 읽으면, 그 값은 저장소 시크릿에 있습니다. 잡에 환경을 적으면 그 칸의 시크릿만 열리고, 규칙이 있으면 규칙이 끝나기 전에는 값이 안 나옵니다. 개인 무료 플랜은 공개 저장소에서만 환경을 설정합니다. 프로는 비공개에도 시크릿을 두지만, 필수 검토와 대기 타이머는 공개 저장소에만 있습니다. 저는 검수 잡 로그에 배포 토큰이 찍힌 날을 봤고, 같은 이름을 저장소에서 지웠습니다. 장기 키는 오아이디씨 글, 분이 겹치는 칸은 동시성 글입니다. 여기는 프로덕션 잡이 여는 시크릿 칸만 봅니다.


숫자는 2026년 8월 깃허브 환경 문서와 배포 규칙 문서 기준입니다.


저장소 시크릿이면 검수 잡도 같은 토큰을 연다

저장소 시크릿은 그 저장소의 워크플로가 모두 읽습니다. 프로덕션 토큰은 환경 시크릿으로 옮기고, 배포 잡에만 환경 이름을 겁니다.


공식 문서는 환경에 둔 시크릿이 그 환경을 참조한 잡에만 열린다고 적습니다. 필수 검토가 있으면, 검토가 끝나기 전에는 값도 안 나갑니다. 저장소 시크릿은 그 칸이 없습니다. 검수, 린트, 프리뷰가 같은 저장소에 있으면 같은 이름을 읽습니다. 포크에서 온 풀 리퀘스트는 기본으로 시크릿을 못 받습니다. 같은 저장소 브랜치 검수는 받습니다.


저는 12개 사이트 중 한 저장소에서 버셀 토큰을 저장소 시크릿에 두었습니다. 프리뷰 잡이 환경 변수를 찍는 디버그 줄을 남긴 날, 그 값이 로그에 나왔습니다. 시크릿이 커밋에 붙는 칸은 시크릿 체크 글입니다. 오늘은 액션이 어느 범위의 값을 읽는지 칸만 봅니다.


누가 읽나규칙이 끝나기 전잘 맞는 값
저장소 시크릿그 저장소 워크플로바로 열림검수, 공개해도 되는 토큰
환경 시크릿그 환경을 적은 잡규칙이 끝나야 열림프로덕션 배포 토큰
환경 변수그 환경을 적은 잡, vars 칸잡이 시작된 뒤공개돼도 되는 주소, 플래그
조직 시크릿허용한 저장소바로 열림여러 저장소가 같이 쓰는 값

재사용 워크플로가 시크릿을 넘기는 칸은 재사용 워크플로 글입니다. inherit 한 줄은 호출 쪽 저장소 시크릿입니다. 환경 시크릿은 호출된 잡이 환경을 직접 적어야 열립니다.


로그에 시크릿 이름을 찍으면 값이 새어 나갑니다 | 깃허브는 알려진 시크릿 값을 가리지만, 잘라 붙인 문자열은 못 가립니다. 프리뷰 잡에는 프로덕션 이름을 넣지 않습니다.


워크플로에 이름만 적어도 칸은 생기지만 규칙은 비어 있다

없는 환경 이름을 잡에 적으면 깃허브가 그 이름으로 칸을 만듭니다. 규칙은 없고 시크릿도 없습니다. 설정은 저장소 관리자만 붙입니다.


환경 문서가 이렇게 적습니다. 워크플로를 고칠 수 있는 사람은 파일만으로 칸을 만들 수 있습니다. 규칙과 시크릿은 개인 저장소면 주인이, 조직이면 관리 권한이 붙입니다. 이름 길이는 255자이고, 대소문자는 가리지 않습니다. 저장소 안에서 겹치면 안 됩니다. 페이지 빌드가 칸을 만들면 소스 브랜치가 보호 규칙으로 붙습니다. 그 밖에는 빈 칸입니다.


설정 경로는 저장소 설정, 왼쪽의 환경, 새 환경입니다. 이름을 넣고 구성합니다. 그다음 시크릿과 규칙을 따로 저장합니다. 씨엘아이로 값을 넣을 때는 환경 플래그를 줍니다.


씨엘아이 | 프로덕션 칸에만 토큰을 넣는다
gh secret set --env production VERCEL_TOKEN gh secret list --env production
워크플로 | 배포 잡만 환경을 적는다
name: deploy-production on: push: tags: - "v*" jobs: deploy: runs-on: ubuntu-latest environment: name: production url: https://example.com concurrency: group: deploy-production cancel-in-progress: false steps: - uses: actions/checkout@v4

빈 칸은 보호가 아닙니다 | 이름만 적힌 잡은 배포 기록만 남깁니다. 시크릿과 규칙이 비어 있으면 저장소 시크릿을 그대로 읽습니다.


저장소 시크릿과 환경 시크릿이 열리는 범위를 나눈 세 칸
검수 잡은 저장소 시크릿만 봅니다. 프로덕션 토큰은 환경 칸에 둡니다

필수 검토 칸이 안 보이면 플랜과 공개 여부가 막은 것이다

개인 무료는 공개 저장소에서만 환경을 설정합니다. 프로와 팀은 비공개에도 시크릿과 배포 브랜치를 두지만, 필수 검토와 대기 타이머는 공개 저장소에만 있습니다.


배포 규칙 문서가 칸마다 공개 여부를 적습니다. 필수 검토는 사람이나 팀을 여섯까지 넣고, 한 명만 승인하면 진행합니다. 검토자는 읽기 권한이 있어야 합니다. 대기 타이머는 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월 이후 이 칸을 적습니다. 이름과 주소를 같이 쓰면, 저장소 배포 화면과 워크플로 그래프, 풀 리퀘스트의 배포 보기 버튼에 주소가 붙습니다. 주소를 빼면 기록만 남습니다. 배포를 거짓으로 두면 환경 시크릿과 변수는 열리지만 배포 객체는 안 생깁니다. 검사 잡이 스테이징 값을 읽어야 할 때 맞습니다.


기능 노출을 켜고 끄는 칸은 기능 플래그 글입니다. 깃허브 환경은 잡이 시작되기 전 칸입니다. 플래그는 이미 떠 있는 서비스의 사용자 칸입니다. 두 줄을 한 화면에서 같이 켜지 않습니다.


검사 잡 | 스테이징 값은 열고 배포 기록은 안 남긴다
jobs: test: runs-on: ubuntu-latest environment: name: staging deployment: false steps: - uses: actions/checkout@v4

자체 호스트 러너는 격리 상자가 아닙니다 | 환경을 적어도 러너 디스크는 잡끼리 남을 수 있습니다. 환경 시크릿도 저장소 시크릿과 같은 급으로 다룹니다.


토큰을 환경으로 옮기는 네 줄

칸을 만들고 시크릿을 넣은 뒤, 배포 잡에만 환경을 적습니다. 저장소 시크릿의 같은 이름은 지웁니다. 검수 잡이 그 이름을 읽으면 그때 실패해야 맞습니다.


  1. 저장소 설정에서 production 칸을 만듭니다. 무료 비공개면 이 화면 자체가 없습니다. 프로로 올리거나 공개로 두거나, 배포를 액션 밖으로 뺍니다.
  2. 환경 시크릿에 배포 토큰을 넣습니다. 씨엘아이면 환경 플래그를 줍니다. 배포 브랜치는 메인, 태그는 브이 접두를 따로 넣습니다.
  3. 배포 잡에 환경 이름과 주소를 적습니다. 동시성 그룹은 배포용으로 두고 진행 중 취소는 끕니다. 검수 잡에는 환경 줄을 넣지 않습니다.
  4. 저장소 시크릿에서 같은 이름을 지웁니다. 검수 워크플로를 한 번 돌려 그 이름이 비었는지 봅니다. 로그에 값이 없는지 확인합니다.

이 사이트 배포는 로컬 프리빌트라 액션이 프로덕션을 안 밀 수도 있습니다. 그래도 태그 노트나 클라우드 키가 액션을 타면 같은 칸입니다. 환경을 지우면 그 시크릿과 규칙이 같이 지워지고, 기다리던 잡은 실패합니다.


환경 칸 만들기, 시크릿 넣기, 배포 잡에만 걸기, 저장소 시크릿 지우기 네 단계
빈 이름만 적히면 보호가 아닙니다. 시크릿을 옮긴 뒤에 저장소 쪽 이름을 지웁니다

참고 자료


내부 연계: 오아이디씨, 액션 동시성, 재사용 워크플로, 시크릿 체크, 공개 노트, 기능 플래그


자주 묻는 질문

저장소 시크릿과 환경 시크릿을 같이 두면?

검수 잡은 저장소 쪽을 읽습니다. 배포 잡이 환경을 적어도, 같은 이름이 저장소에 있으면 실수로 그 값을 찍을 수 있습니다. 프로덕션 토큰은 환경에만 두고 저장소 쪽 이름을 지웁니다. 검수 잡을 한 번 돌려 그 이름이 비었는지 봅니다.


개인 무료 비공개 저장소에서 환경을 만들 수 있나?

안 됩니다. 무료 플랜은 공개 저장소에서만 환경을 설정합니다. 프로나 팀이면 비공개에도 칸과 시크릿을 둡니다. 필수 검토와 대기 타이머는 그래도 공개 저장소에만 있습니다.


워크플로에 production만 적으면 보호되나?

이름만 있으면 빈 칸이 생깁니다. 규칙과 시크릿은 설정 화면에서 붙입니다. 워크플로를 고칠 수 있는 사람은 칸을 만들 수 있고, 규칙을 붙이는 사람은 관리자입니다. 배포 기록만 보고 막힌 줄 알지 않습니다.


1인 저장소에서 자기 검토 금지를 켜면?

배포를 시작한 사람이 승인을 못 합니다. 검토자가 본인뿐이면 줄이 멈춥니다. 공개 저장소에서 검토를 쓸 때도 이 칸은 끕니다. 다른 사람이 읽기 권한으로 들어와야 그 옵션이 의미가 있습니다.


태그로 배포하는데 환경이 메인을 막으면?

브랜치 규칙과 태그 규칙은 따로입니다. 메인만 넣으면 태그 잡이 거절됩니다. 태그 이름 패턴을 한 줄 더 넣습니다. 보호된 브랜치만 고르고 보호 규칙이 없으면 모든 브랜치가 통과하니, 그 선택도 같이 봅니다.


환경을 지우면 돌고 있는 잡은?

시크릿과 규칙이 같이 지워집니다. 그 규칙을 기다리던 잡은 실패합니다. 토큰을 옮기는 중이면 새 칸을 먼저 채우고, 배포 잡이 새 이름을 가리킨 뒤에 옛 칸을 지웁니다.


깃허브 환경필수 검토대기 타이머환경 시크릿깃허브 액션개발자Next.js데브옵스클라우드API백엔드버셀CI/CD

함께 보면 좋은 문제 해결

EXPLORE / Cloud & DevOps

이어서 읽어보기

전체 토픽 둘러보기