11

自宅のプライベート ネットワーク内で Jenkins インスタンスを実行しています。このインスタンスは、変更について github のさまざまなリポジトリを (1 時間ごとに) ポーリングし、それらの変更に基づいて動作します。

ネットワークと github の両方の負荷を軽減するために、Webhook を実装したいと考えていますが、Jenkins のインストールをインターネットに開いたり、Webhook 呼び出しを期待できる特定のいくつかの IP アドレスに開いたりすることにあまり満足していません。 .

ネットワーク内の実サーバーにリクエストを転送する犠牲ホストにインストールできるプロキシのようなものはありますか? 呼び出しパラメーターのサニテーションは、素晴らしい追加機能です。

4

1 に答える 1

16

さまざまな git プロバイダーから Webhook を受信し、必要に応じていくつかの書き換えを行い、フックを内部的に Jenkins (または任意の場所) に転送する、1 つのインターネットに公開されたホストがある、同様の設定があります。

これは、非常に単純な nginx 構成で行われます。

# Allow *only* the notifyCommit endpoint, and don't expose any other info
location = /git/notifyCommit {
  proxy_pass              http://jenkins.int.example.com:8080/git/notifyCommit
  proxy_hide_header       X-Powered-By;
  proxy_intercept_errors  on;
  error_page              500 /;
}

構文の使用は、location =その正確な URL (およびクエリ パラメーター) のみが一致することを意味します。それ以外はすべて 404 エラーをスローします。


または、公開されたホストでgit-webhook-proxyを実行してみてください。これは私が作成した Web サーバーで、Web フックをインターセプトし、リポジトリをローカルにキャッシュしてから、内部ネットワーク経由で Web フックを Jenkins に転送します。

于 2014-04-22T12:21:31.903 に答える