問題タブ [git-post-receive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - gitlab-shell の「post-receive」フックを引き続きカスタム フックに使用できますか?
gitlab-shellpost-receive
フックの内容によると、非推奨です。
しかし、Gitlab 固有のロジックのみ、または一般的には? 私は、リポジトリを更新するchiliproject post-receiveフックなどにまだ使用できるはずです。残念ながら、主に gitlab v5 での gitolite <> gitlab-shell 移行が原因で、この点に関して具体的なものを見つけることができませんでした。誰かがこれに光を当ててくれることを願っています…</p>
[編集]
post-receive
フックは、v1.7.1 の gitlab-shell から削除されました。したがって、正しい方法は、Web フックを作成するか、更新フックを慎重に変更するか、カスタム フック サポートが実装されるまで gitlab-shell の開発をより注意深く監視することです。;-)
php - GitHub WebHook POST が通過しない
レポにプッシュするときに、サーバー上の PHP スクリプトに POST を送信するように github webhooks をセットアップしました。( https://help.github.com/articles/post-receive-hooks )
私の PHP スクリプトは、接続している IP と受信したペイロードをログに記録します。
ログから、リポジトリにプッシュすると IP が接続されることがわかりますが、POST データは記録されません。RequestBin でテストしたところ、POST データが存在することが確認されました。さらに、$_GET ペイロード変数を URL に手動で配置すると、それが記録されます ($_POST だけでなく $_REQUEST をチェックしているため)。PHP サーバーが他のサーバーからの POST 要求を拒否するように構成されているのではないかと考えています。私は 1and1 共有ホスティングを使用しているため、専用の制御はありませんが、SSH でログインしたり、.ini ファイルを使用してローカルで PHP 設定を構成したりできます。どんな提案でも大歓迎です!
*これをPHPで行うか、他の言語で行うかは気にしません。Python などを使用した方が簡単だと思われる場合は、それも素晴らしいことです。
-ジェレミー
git - post-receive slow を使用した git push
私の git push 操作は、(多かれ少なかれ) すぐに戻るのではなく、約 25 ~ 30 秒で終了します。ここで見つけた非常に長い受信後 (bash) スクリプトを使用しています: https://raw.github.com/zma/usefulscripts/master/script/post-receive
いくつかの詳細:
- 私のリモートリポジトリはLANサーバー上にあり、約70MB/秒の読み取り/書き込みアクセスがあります(これは問題ないようです)
- これは、1 つのテスト ファイルのみを含む新しいリポジトリです。
- 私はgitextensionによってインストールされたgit bashを使用しています(gitバージョン1.7.11.msysgit.1)
- gitgui でプッシュ操作もテストしましたが、遅延は同じでした。だから私が使っているフロントエンドとは関係ないと思います。
- 受信後スクリプトを削除すると、プッシュ操作は問題なく動作します (遅延はまったくありません)。
私はいくつかのテストを行いましたが、受信後スクリプトにすべてコメントアウトされた約 70 行が含まれている場合 (つまり、スクリプトは何もしません)、プッシュに約 5 秒の遅延があります。
これは正常ですか?または、プッシュを高速化する方法はありますか? または、スクリプトのサイズを大幅に縮小する必要がありますか?
更新: 次 のことに言及することが重要です。
- 私はwindows7を使用しています
- リモートリポジトリはLinuxサーバーでホストされており、samba経由でアクセスできます
git - 受信後フックが実行可能ファイルを呼び出します: バイナリ ファイルを実行できません
セットアップ:
- LAN サーバー (Linux) にリモート git リポジトリーがある
- このリポジトリには、samba および ssh を介してアクセスできます。これらのアクセス方法は両方とも、さまざまな開発者、およびウィンドウで作業するすべての開発者に使用されます。
- post-receive スクリプト (最後) がコマンド ライン smtp メーラーを呼び出し、メールが送信されます (内部 smtp サーバー経由)。
- Windows 用 (bmail.exe) と Linux 用 (smtpstoat) の 2 つのコマンド ライン smpt メーラーを使用できます。両方とも
問題:
- post-receive スクリプトが Linux 実行可能ファイル (smtpstoat) を呼び出している場合、
git push
ssh 経由でリモート リポジトリにアクセスしている開発者に対して適切に実行されます (電子メールが送信されます)。しかし、samba を介してアクセスしている開発者の他の部分がgit push
コマンドを実行すると、git は不平を言います:remote: ./hooks/smtpstoat: ./hooks/smtpstoat: cannot execute binary file
- また、受信後スクリプトを変更して Windows 実行可能ファイル (bmail.exe) を呼び出すと、samba アクセス権を持つ開発者は
git push
. しかし、ssh ユーザーは次のようになりました。remote: hooks/post-receive: line 708: ./hooks/bmail.exe: cannot execute binary file
リモートリポジトリへのアクセス方法に関係なく、このメール送信を機能させるにはどうすればよいですか?
json - GitLab 5.2 受信後 WebHook
実稼働 Web サーバー (/var/www のドキュメント ルート) と同じサーバーで GitLab v5.2 を実行しています。
標準の GitLab Post-Receive Hook をセットアップしようとしていますが、投稿された JSON データを処理するためのスクリプトをセットアップする方法について驚くほどほとんど情報が見つかりません。カスタムをしようとしているわけではありません。箱から出してすぐに、Web サイトの場所 (同じサーバーで覚えておいてください) で受信後のデータを受信し、受信時に origin-master からプルします (受信後のデータ送信元のプッシュがマスター ブランチに送信された場合)。このように、/var/www にある Web サイトは常に同じマスターです。
誰かが、投稿データからのプル スクリプトの例を教えてください。
GitLab フック リクエストの例- GitLab インスタンスがない場合、GitLab Post-Receive JSON データは次のようになります (GitLab ヘルプからそのまま)
git - GIT post-receive hook doesn't run
This has been asked a lot of times and I went through countless threads and Google pages, but none seem to be able to fix my issue. Perhaps I am not doing it the standard way, but it should still work.
I have a remote server that has a git repo
I push to it from local via ssh:
Pushing works fine and the remote repository gets updated. I can easily check that using putty and running git show
. However, the post-receive hook that I wrote - doesn't run. The remote git project folder is: wwbert/cygdrive/d/Shared_Data/Development/dev_NetBeans/Projects/PICS.git and the hook is in wwbert/cygdrive/d/Shared_Data/Development/dev_NetBeans/Projects/PICS.git/hooks/post-receive
The contents of post-receive are:
I must note that executing that file manually sends the email as expected. But never triggers as a hook. Not even the touch
. Any hints on what you think the cause of this may be is apprecaited!
P.S. ls -la
on the hooks folder:
Edit: I had progress. Instead of pushing from NetBeans IDE, I used Git GUI to see a more detailed output. Here is what happened when I pushed to remote: remote: fatal: cannot exec 'hooks/post-receive': Permission denied[K
To ssh://WAUDWARE\denis@wwbert/cygdrive/d/Shared_Data/Development/dev_NetBeans/Projects/PICS.git
ab6ddef..a5644e8 master -> master
. You can see my permissions in the post. Is there anything wrong with them? Are there some other permissions that can prevent execution of post-receive?
git - Git フック、コミットによる受信後ループ
サーバー側で git フックを使用して、誰かがリモート リポジトリにプッシュするたびに、クライアントからサーバーに送信された新しいコミット メッセージをループすることは可能ですか?
各メッセージから情報を抽出する必要があり、
ハッシュ、日付、コミット作成者、ブランチ
gitフックに関する適切なドキュメントが見つかりません。コミットメッセージを取得してURLに投稿するgit post-receiveフックを読みまし た
単純なコード行が理解できません
git - Git Post Receive Hook: 現在の作業ブランチをステージング サーバーに更新する
だから、私はステージングサーバーのセットアップを持っています。私がやりたいのは、誰かがステージングサーバーのディレクトリを更新する非マスターブランチにプッシュしたときです。私の現在の受信後フックは次のようになります。
ただし、サーバーで必要な変更が表示されず、リモートが「既に最新」を返しているため、マスターまたは何かからプルしていると思われますか?
これは洗練されたソリューションではありませんが、私たちは単一のプロジェクトに取り組んでいる非常に小さなチームです。理想的な解決策は、すべてのブランチをステージング サーバー内の新しいディレクトリに保存し、プッシュごとにそのディレクトリのみを更新することです。