0

私は少数の開発者グループを持っており、全員が自分のマシンで開発しています。テストの準備ができたコードができたら、RhodeCode インストールにマージしてプッシュします。中央の RhodeCode リポジトリの hgrc ファイルは次のように設定されています。

[paths]
test_env = /www/mysite/test
prod_env = /www/mysite/prod
[hooks]
changegroup = hg push test_env

そのため、人がコードを RhodeCode にチェックインすると、変更が自動的にテスト環境にプッシュされます。(テスト リポジトリの hgrc ファイルに hg の更新があるため、そこでコードが更新されます)。これは完璧です。

しかし..RhodeCode管理者が、サーバーでシェルアクセスを必要とせずに製品にプッシュできるようにしたいと思います。RhodeCode インターフェイスから "hg push prod_env" を誰かが実行できるようにする方法はありますか? RhodeCode は hg を完全に制御できるので、可能だと思いますが、この機能は RhodeCode のどこかに存在しますか? それを追加するのは大変な作業でしょうか?

そうでない場合、認証されたユーザーがシェル アクセスなしでリポジトリを本番環境にプッシュできるようにするにはどうすればよいでしょうか? グーグルで検索しましたが、何も見つからないようです。passthru("hg push test_env) を使用して php スクリプトを作成できることはわかっていますが、apache が「nobody」として実行され、rhodecode がリポジトリを所有しているため、アクセス許可の悪夢のように思えます。

考え?

4

2 に答える 2

1

明らかに、何もプッシュすることはできません。しかし、prod_env. これにより、シェルにアクセスせずにローカルのコミットとプッシュが発生するはずです。

于 2014-01-15T19:19:36.337 に答える
0

この質問を見ている人のために、これが私がそれを解決した方法です:

次のコードを実行するボタンを備えたパスワード付きページを PHP で作成しました。

shell_exec('hg pull -R ../wp-content/themes/2014');

次に、prod Web サイトの hgrc ファイルに hg update を配置し、Web ユーザーとリポジトリの承認済みユーザーを作成しました。

それはかなりうまく機能します-結果として生じるファイルの所有権のために、私はわずかなセキュリティ上の懸念がありますが、PHPが適切な慣行に従っていると仮定すると、問題はありません.

于 2014-01-25T10:43:52.900 に答える