誰がリポジトリにプッシュしたかを特定するにはどうすればよいですか?
つまり、誰かがそうgit push origin master
し、レポのポスト受信フックで、origin
誰かの名前または電子メールを使用する必要があります。
SSH プロトコルを使用して変更をサーバーにプッシュし、各ユーザーがサーバー上に独自のアカウントを持っている場合、スクリプトはプッシュを実行しているユーザーとして実行する必要があります。したがって、プッシュを行っている人のユーザー名を使用whoami
または取得できるはずです。id -un
このセットアップを使用していない場合、誰がプッシュしているかを追跡する最良の方法は、おそらく強力な Git 認証および承認システムであるGitoliteを使用することです。Gitolite では、update.secondary
およびpost-update.secondary
hooksを使用できます。これにより、GL_USER
環境変数が現在の Gitolite ユーザーに設定されます。
Gitを使用してそれを知ることはできません。SSHを使用してプッシュする場合は、SSHを使用してユーザー名を取得できます。gitoliteなどのユーザー管理フロントエンドを使用する場合は、それを使用してユーザー名を取得できます。認証でHTTPを使用する場合は、Webサーバーを使用できます。ユーザー名を取得しますが、Gitネットワークプロトコルはユーザー名を送信しません。