{"meta":{"title":"Pre-receive フックを利用する","intro":"GitHub Enterprise Server で pre-receive フックを使用して、リポジトリ ポリシーを適用し、シークレットの混入や無効なコミットなどの問題を防ぎます。","product":"Pull Request","breadcrumbs":[{"href":"/ja/enterprise-server@3.22/pull-requests","title":"Pull Request"},{"href":"/ja/enterprise-server@3.22/pull-requests/reference","title":"Reference"},{"href":"/ja/enterprise-server@3.22/pull-requests/reference/working-with-pre-receive-hooks","title":"pre-receive フック"}],"documentType":"article"},"body":"# Pre-receive フックを利用する\n\nGitHub Enterprise Server で pre-receive フックを使用して、リポジトリ ポリシーを適用し、シークレットの混入や無効なコミットなどの問題を防ぎます。\n\n受信前フックは、Git がプッシュされたコミットを受け入れる前に GitHub Enterprise Server で実行されるスクリプトです。 コードがリポジトリに入る時点で、リポジトリ、組織、またはエンタープライズ ポリシーを適用します。\n\n受信前フックは、プッシュが必要なルールに従うかどうかを確認できます。 たとえば、フックによって、シークレットを含むプッシュがブロックされたり、非標準のコミット メッセージが使用されたり、保護されたファイルが変更されたりすることがあります。 プッシュがチェックに合格した場合、Git はそれを受け入れます。 プッシュが失敗した場合、Git はそれを拒否し、エラー メッセージを表示します。\n\nプッシュが受け入れられない場合は、失敗した受信前フックのエラー メッセージが表示されます。\n\n```shell\n$ git push\nCounting objects: 3, done.\nDelta compression using up to 4 threads.\nCompressing objects: 100% (2/2), done.\nWriting objects: 100% (3/3), 916 bytes | 0 bytes/s, done.\nTotal 3 (delta 0), reused 0 (delta 0)\nremote: always_reject.sh: failed with exit status 1\nremote: error: rejecting all pushes\nTo https://54.204.174.51/hodor/nope.git\n ! [remote rejected] main -> main (pre-receive hook declined)\nerror: failed to push some refs to 'https://54.204.174.51/hodor/nope.git'\n```\n\n受信前フックは、変更がリポジトリに到達する前に規則を一貫して適用するため重要です。 これにより、手動でのレビューの負担が軽減され、ポリシー違反が Git 履歴に格納されるのを防ぐことができます。\n\nGitHub Enterprise Server サイト管理者は、受信前フックを作成して削除します。 また、組織またはリポジトリ管理者が特定のスコープのフックを有効または無効にすることもできます。 「[プリリシーブフックを用いてポリシーを適用する](/ja/enterprise-server@3.22/admin/enforcing-policies/enforcing-policy-with-pre-receive-hooks)」を参照してください。"}