如何确保远程 git 用户在 post-receive 挂钩中执行某些命令?
How to ensure a remote git user executes certain commands in a post-receive hook?
希望我不会破坏对我的设置的解释。我目前正在调用 git push
到远程机器上的裸仓库以触发 post-接收挂钩,如下所示:
cd /path/to/working/tree
git pull
gatsby build && gh-pages -d public/
一切都按预期工作,直到 gh-pages
通过 GitHub 上的另一个存储库将更改推送到 GitHub 页面的部署步骤。当 post-receive 挂钩从我的本地机器上通过 git push
触发时,我得到一个 remote: Permission denied (publickey)
,但是当直接在远程机器上 运行 时它会成功。
尽管我的 git remote
配置指定了正确的远程用户,但我猜测当从我的本地计算机触发挂钩时,gh-pages
的执行是由另一个用户完成的。
staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (fetch)
staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (push)
如有任何帮助,我们将不胜感激!
I'm guessing that the execution of gh-pages is being done by a different user when the hook is triggered from my local machine
您可以通过修改 post-receive 挂钩并添加到它来检查:
id -a
export GIT_SSH_COMMAND='ssh -Tv'
这样,您将确切地看到那个挂钩上考虑了哪些 ID 和哪些 SSH 密钥。
希望我不会破坏对我的设置的解释。我目前正在调用 git push
到远程机器上的裸仓库以触发 post-接收挂钩,如下所示:
cd /path/to/working/tree
git pull
gatsby build && gh-pages -d public/
一切都按预期工作,直到 gh-pages
通过 GitHub 上的另一个存储库将更改推送到 GitHub 页面的部署步骤。当 post-receive 挂钩从我的本地机器上通过 git push
触发时,我得到一个 remote: Permission denied (publickey)
,但是当直接在远程机器上 运行 时它会成功。
尽管我的 git remote
配置指定了正确的远程用户,但我猜测当从我的本地计算机触发挂钩时,gh-pages
的执行是由另一个用户完成的。
staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (fetch)
staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (push)
如有任何帮助,我们将不胜感激!
I'm guessing that the execution of gh-pages is being done by a different user when the hook is triggered from my local machine
您可以通过修改 post-receive 挂钩并添加到它来检查:
id -a
export GIT_SSH_COMMAND='ssh -Tv'
这样,您将确切地看到那个挂钩上考虑了哪些 ID 和哪些 SSH 密钥。