Skip to content

Vercelデプロイエラー: Git作者がプロジェクトへのアクセス権が必要な場合の解決策

問題の説明

Next.jsプロジェクトをGitHubのプライベートリポジトリで管理し、Vercelにデプロイしている環境で、以下のエラーが発生します:

Error: Git author must have access to the project on Vercel to create deployments

この問題は次の条件下で発生します:

  • GitHubアカウントが組織リポジトリのコラボレーターとして追加されている
  • Vercelアカウントは会社の管理下にある(個人アカウントではない)
  • 新規ブランチをプッシュした際にデプロイが失敗する
  • 問題が断続的に発生し、再認証で一時的に解決しても再発する

エラーのスクリーンショット

根本原因

このエラーの主な原因はVercelのプラン制限です:

  • Hobbyプラン(無料)ではコラボレーターデプロイが非対応
  • 過去にはバグによりコラボレーターでのデプロイが可能でしたが、Vercelの修正により制限が強化されました
  • デプロイをトリガーするコミット作者のメールアドレスが、Vercelプロジェクトのオーナーアカウントと一致する必要があります

重要ポイント

無料プランでのコラボレーションデプロイは現在公式にサポートされていません。一時的な回避策はありますが、根本的解決には有料プランへのアップグレードが必要です。

解決方法

方法1: Vercel Proプランへのアップグレード(推奨)

完全な解決にはチーム向けProプランが最も信頼性が高いです

  1. Vercelダッシュボードで[Upgrade]を選択
  2. Proチームプラン($20/月)を選択
  3. 支払い情報を登録
  4. コラボレーターを正式なメンバーとしてプロジェクトに招待

アップグレード後は全てのコラボレーターが問題なくデプロイ可能になります。

ビジネスアカウント向けアドバイス

長期的な開発プロジェクトの場合、コストパフォーマンスは次の通りです:

プラン月額費用コラボレーターデプロイ制限
Hobby無料不可1000builds/日
Pro$20無制限
Enterpriseカスタムカスタム設定可能

方法2: デプロイフックを使用する(無料プラン向け)

プロプランにアップグレードできない場合の回避策:

  1. VercelでDeploy Hookを作成

    bash
    # 1. [設定] → [Git] → [Deploy Hooks]に移動
    # 2. [Create Hook]をクリック
    # 3. 任意の名前を入力、ブランチを設定(例: main)
    # 4. 生成されたURLをコピー
  2. GitHubにWebhookを設定

    bash
    # 1. リポジトリの[Settings] → [Webhooks]に移動
    # 2. [Add webhook]をクリック
    # 3. ペイロードURLに先程のVercel URLを貼り付け
    # 4. Content type: application/json を選択
    # 5. "Just the push event."を選択
    # 6. [Add webhook]で保存

これでmainブランチへのプッシュ時に自動デプロイがトリガーされます。

デプロイフックの制限

  • ブランチ毎にフックが必要(main限定)
  • PRプレビューや特定ブランチのデプロイには対応不可
  • 手動トリガー不可(常にプッシュ時に実行)

方法3: GitHub Actionsによるデプロイ自動化

  1. VercelとGitHubの連携を解除

    bash
    # GitHub Settings → Apps → Vercel → [Suspend]または[Remove]
  2. 認証情報をGitHub Secretsに設定

    bash
    # 必要なシークレット:
    # - VERCEL_TOKEN (Vercelのアクセストークン)
    # - VERCEL_PROJECT_ID
    # - VERCEL_ORG_ID
  3. ワークフローファイルの作成.github/workflows/deploy.ymlファイルを作成:

    yaml
    name: Deploy to Vercel
    on: [push]
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v3
          - uses: amondnet/vercel-action@v25
            with:
              vercel-token: ${{ secrets.VERCEL_TOKEN }}
              vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
              vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
              github-token: ${{ secrets.GITHUB_TOKEN }}
              scope: your-team-name

方法4: コミット作者の変更(一時的な回避策)

緊急時の一時措置として:

bash
# リポジトリオーナーのメールに設定
git config user.email "owner@company.com"

# 変更をコミット&プッシュ
git add .
git commit -m "Fix deployment author"
git push origin branch-name

この回避策のデメリット

  • コミット履歴が実際の作者ではないアカウントで記録される
  • コントリビューション統計が不正確になる
  • チーム開発で混乱の原因となる可能性

追加のトラブルシューティング

アクセス権の再認証

bash
1. Vercelプロフィール [Account Settings]
2. [Authentication] → GitHubを再認証
3. 一度ログアウト後、再ログイン

ダッシュボードからの手動デプロイ

bash
1. エラーメッセージの[Details]リンクをクリック
2. Vercelの権限リクエスト画面で[承認]
3. コードを変更後、再度プッシュ

最終的なアドバイス

ケース推奨ソリューション
個人開発git設定変更(一時的)
小規模チーム(予算あり)Proプランへのアップグレード
オープンソースプロジェクトデプロイフックの活用
高度なCI/CD環境が必要な場合GitHub Actionsの統合

長期的なプロジェクトではVercel Proプランへの移行が最も安定したソリューションです。一時的な回避策はコミット履歴の混乱を招くため、緊急時以外は控えることを推奨します。