問題タブ [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.
github - github サービス フックと基本認証
github サービス フックの Webhook レシーバーを保護する方法を見つけようとしています。
github のマニュアル ページで、github フックの送信元の IP アドレスに関するセクションを見ると、次の警告が表示されます。
「サービス フックの IP をホワイト リストに登録しないことを強くお勧めします。代わりに、HTTPS と基本認証をセットアップして、着信要求を確認してください。」
受信後フックに関するドキュメントには、基本認証を設定する方法がありません。
リポジトリへのコミットを通知する github post-recieve/service/web フックで基本認証を使用するにはどうすればよいですか?
python - GitPython でブランチの最初のコミットを見つける
Python と Git-Python を使用して、プッシュに含まれるコミットに関する情報を収集し、バグ トラッカーと IM を要約で更新する git post-receive フックを作成しています。プッシュがブランチを作成し (つまり、fromrev
post-receive へのパラメーターがすべてゼロである)、そのブランチで複数のコミットにまたがる場合に問題が発生します。親のリストをコミットからさかのぼって歩いていますが、torev
どのコミットがブランチの最初のコミットであるか、つまりいつ見るのをやめるべきかを判断する方法がわかりません。
コマンドラインでできること
これにより、 のコミットのリストが正確に表示されthis-branch
、他には表示されません。git-rev-list と同じパラメーターを取るように文書化されている方法を使用してこれを複製しようとしましたCommit.iter_parents
が、私が見る限り位置パラメーターが好きではなく、キーワードパラメーターのセットが見つかりませんその仕事。
Dulwich の doco を読みましたが、Git-Python と非常に異なることを行うかどうかは明確ではありませんでした。
私の(簡略化された)コードは次のようになります。プッシュが新しいブランチを開始すると、現在、最初のコミットのみを見て停止します。
git - Git post-receive フックは、マスターから削除されたファイルを削除しません
サーバーに裸の git リポジトリを作成し、このブログから次の post-receive フックを設定しました。
サーバーにローカルにプッシュするたびに、手動でプルする必要なく、変更が各ブランチのフォルダーに自動的に公開されるようにします。
私は適切なアクセス許可を両方とも dev フォルダーに設定しました。
そして、開発ブランチからのプッシュは期待どおりに機能します。master ブランチをチェックアウトしてマージすると、問題が発生します。マスターをプッシュすると、新しいファイルがサーバーのライブ フォルダーにコピーされますが、ローカルで削除したファイルは削除されません。
受信後、ライブ フォルダを適切に更新するにはどうすればよいですか? ありがとう!
git - 各ブランチを異なるフォルダにチェックアウトするGit post-receiveフック?
Git ワークフローの基本的なセットアップは、2 人の開発者がプッシュ/プルするローカル ネットワーク サーバー上のベア リポジトリです。
ローカル ネットワーク サーバー上の別の場所にプッシュされる各ブランチを自動的にコピー (チェックアウト) したいと考えています。例を挙げると:
「develop」ブランチのコピーを「develop」サブフォルダーにプッシュします。「マスター」ブランチのコピーを「マスター」サブフォルダーにプッシュします。
私たちが抱えている問題は、これを行うために post-receive フックを取得することです。ここに私たちが現在持っているものがあります:
受け取ったエラーは次のとおりです。
「リモート: 致命的: この操作は作業ツリーで実行する必要があります。リモート: 変更がプッシュされて展開されました。」
そのエラーから予想されるように、実際には何もチェックアウトされていません。
この方法でポストレシーブも試しましたが、同じ問題がありました:
ここで私が間違っていることを誰か説明してもらえますか (3 歳児のように説明してください :))。ありがとう。
将来の読者のために答えをより明確にするために、トレックはそれを頭にぶつけました. --work-tree=/master
ベアレポのルート内にある「マスター」というフォルダーにアクセスしようとして使用していました(たとえば、「ブランチ」、「フック」などと並んで)。これを--work-tree=./master
(スラッシュの前のドットに注意してください)に変更するとすぐに、すべてが期待どおりに機能しました。
git - git checkout が変更するファイルが多すぎる
git を使用して Web サイトを公開しています。ワークフローは大まかに次のとおりです。
Web サーバーの post-receive フックは次のようになります。
ほとんどの場合、これで問題なく動作します。つまり、1 つのファイルを追加すると、チェックアウトによってその 1 つのファイルが変更されます。
1 日待ってから別のコミットとプッシュを行った場合にのみ、受信後フックの git チェックアウトが作業コピー内のすべてのファイルを再フェッチします。時間がかかるだけでなく、後で実行するrsyncを台無しにします。
明日行われるチェックアウトが、今日何度も繰り返すことができるチェックアウトとは大きく異なるように、一晩で何が起こる可能性がありますか?
git - post-receive フックがまだ trac 1.0 に必要なのはなぜですか?
git commit メッセージでチケットをクローズできるようにするには、次のように記述します。
その後、trac でタイムラインを見ると、このコミット メッセージがコミット ハッシュと共に表示されます。また、trac#2
はチケットを参照していることを認識し、クリック可能なリンクを作成するので、クリックし#2
てチケットを見ることができます。
したがって、明らかに、コミット メッセージを解析するために必要なものはすべて既に存在しています。でも と書いてもfixes #2
チケット状態には触れません。
コミットでチケットの状態を更新するには、http://trac.edgewall.org/attachment/wiki/TracGit/post-receive-hook.py によって提供される post-receive フックを git リポジトリのディレクトリに配置する必要があります。hooks
メッセージ。
なぜこれがまだ必要なのですか?フックを不要にする既知の計画はありますか?