Vercel 배포 시 'Git author must have access...' 에러 원인과 해결 방법
Problem
Next.js 프로젝트를 Vercel에 배포할 때, 팀이나 회사의 Private GitHub 저장소에 Collaborator로 참여하여 작업하는 경우 Git author must have access to the project on Vercel to create deployments라는 에러가 발생할 수 있습니다. 이 에러가 발생하면 새로운 브랜치를 푸시하거나 코드를 업데이트해도 Vercel에서 자동 배포가 차단됩니다. 주로 Vercel 계정의 소유자가 아닌 다른 개발자가 커밋을 푸시했을 때 겪게 되는 흔한 문제입니다.
Background
Vercel은 보안을 위해 커밋을 작성한 사람(Git author)이 해당 Vercel 프로젝트에 접근 권한이 있는지 확인합니다. 만약 권한이 확인되지 않으면 무단 배포를 막기 위해 배포를 차단합니다. 특히 Vercel의 무료(Hobby) 플랜에서는 팀원을 추가할 수 없기 때문에, 저장소 소유자가 아닌 Collaborator가 푸시할 경우 Vercel은 이를 권한 없는 사용자의 배포 시도로 간주합니다. Pro 플랜으로 업그레이드하여 팀원을 추가하면 근본적으로 해결되지만, 비용 문제로 당장 업그레이드가 어렵다면 이를 우회할 방법이 필요합니다.
Solution
이 문제를 해결하기 위한 두 가지 방법을 소개합니다. 상황에 맞게 선택하시되, 두 번째 방법을 더 권장합니다.
방법 1: Git 이메일을 Vercel 소유자 이메일로 변경하기 (임시 방편)
가장 빠르고 간단한 방법은 로컬 Git 설정의 이메일을 Vercel 프로젝트 소유자의 이메일로 변경하는 것입니다. 이렇게 하면 Vercel은 소유자가 직접 푸시한 것으로 인식하여 배포를 허용합니다.
# Vercel 소유자의 이메일로 로컬 Git 설정 변경 (해당 프로젝트 폴더 내에서만 적용)
git config user.email "owner@domain.com"
# 이후 코드에 작은 변경(공백 추가 등)을 만들고 다시 커밋 및 푸시합니다.
git add .
git commit -m "fix: trigger vercel deployment"
git push
단점: 이 방법을 사용하면 GitHub의 커밋 기록이 본인이 아닌 Vercel 소유자의 계정으로 기록되므로, 본인의 GitHub 잔디(기여도 통계)가 채워지지 않는 치명적인 단점이 있습니다.
방법 2: Deploy Hook과 GitHub Webhook 연동 (권장)
본인의 커밋 기록을 유지하면서 자동 배포를 가능하게 하는 가장 좋은 방법입니다. Vercel에서 배포 트리거 URL을 생성하고, GitHub에서 푸시 이벤트가 발생할 때 이 URL을 호출하도록 설정합니다.
1. Vercel에서 Deploy Hook 생성
- Vercel 대시보드에서 해당 프로젝트 선택
Settings→Git→Deploy Hooks메뉴로 이동- Hook 이름(예:
GitHub Push Hook)과 대상 브랜치(예:main)를 입력하고 생성 - 생성된 고유 URL 복사
2. GitHub 저장소에 Webhook 추가
- GitHub 저장소의
Settings→Webhooks→Add webhook클릭 Payload URL에 Vercel에서 복사한 URL 붙여넣기Content type을application/json으로 선택Which events would you like to trigger this webhook?에서Just the push event.선택Enable SSL verification체크 확인Add webhook버튼 클릭하여 저장
이제 본인의 계정으로 푸시하더라도 GitHub Webhook이 Vercel의 Deploy Hook을 호출하여 정상적으로 자동 배포가 실행됩니다.
Deep Dive
Deploy Hook을 활용한 방식은 단순히 에러를 우회하는 것을 넘어, 배포 권한과 코드 작성 권한을 분리하는 좋은 패턴입니다. 만약 특정 브랜치(예: staging, develop)에 대해서도 동일한 설정이 필요하다면, Vercel에서 각 브랜치용 Deploy Hook을 따로 생성하여 GitHub Webhook에 추가할 수 있습니다. 더 복잡한 CI/CD 파이프라인이 필요하다면 GitHub Actions를 사용하여 테스트 코드가 통과한 후에만 Vercel Deploy Hook을 호출하도록 구성하여 프로덕션 환경의 안정성을 높일 수도 있습니다.
Conclusion
Vercel의 Git author must have access... 에러는 권한 불일치로 인해 발생하는 Vercel의 기본 보안 기능입니다. git config를 수정하는 임시방편보다는, Vercel의 Deploy Hook과 GitHub의 Webhook을 연동하는 방식을 사용하여 본인의 커밋 기여도를 유지하면서 안정적으로 자동 배포 환경을 구축하는 것을 권장합니다.