web-dev-qa-db-ja.com

bitbucketでプルリクエストのコードをマージできるユーザーを制限するにはどうすればよいですか?

私には、gitリポジトリとしてbitbucketを使用する開発者の小さなチームがいます。

Bitbucketのプルリクエストで誰がコードをマージできるかを制限する方法を知りたいですか?および/またはマージを実行する前に、少なくとも1つの承認を強制します。基本的に私はコードレビューを強制しようとしています。

現在のところ、プルリクエストの作成者(および他のすべての人)は、品質の目的で問題となる可能性のあるコードを承認するだけでなく、マージすることもできます。前もって感謝します。

更新:

Bitbucketで、プッシュ権限、ブランチの削除、履歴の書き換えを制御できるようになりました。完全な管理手順は次のとおりです: https://confluence.atlassian.com/bitbucket/branch-management-385912271.html

ただし、最小数の承認を強制する方法はまだありません。

17
Shawn

Bitbucketのプルリクエストで誰がコードをマージできるかを制限する方法を知りたいですか?および/またはマージを実行する前に、少なくとも1つの承認を強制します。基本的に私はコードレビューを強制しようとしています。

この機能は現在Bitbucketでは利用できませんが、Atlassianのファイアウォールの背後にあるバージョンのGitホスティングにはあります。

Stashを使用すると、次のことができます。

  • ブランチを変更できるユーザーを制限する

  • プルリクエストをマージする前に、最小数の承認を適用します(Bambooビルドでも同様のことができます。つまり、コードをマージする前にコンパイルする必要があります)

  • プルリクエストが変更された場合は承認をリセットします

これは、Atlassian自身の製品の奇妙な非対称性です。

13
ta.speot.is

Attlassianからの回答:

メアリーアンソニー[アトラシアンテクニカルライター]

こんにちは、

したがって、リポジトリはブランチを持つことができます。そのリポジトリ内では、リポジトリとは異なるブランチに権限を設定することはできません。開発者がリポジトリをフォークし、リポジトリに対してプルリクエストを発行できるようにする権限をリポジトリに設定できます。これを構成するには:

Create a group on your account and call it  "developers".
Give the group read permissions.
Add all the developers to that group.
Edit the groups on the repository and add developers.

お役に立てれば。

メアリー

ここにあります: https://confluence.atlassian.com/display/BITBUCKET/Work+with+pull+requests?focusedCommentId=321851850#comment-32185185

つまり、開発者にプロジェクトをフォークさせ、そのフォークからプルリクエストを発行することができます。プロジェクトで、パブリックフォークを禁止するようにプロジェクトを設定できます。彼らがプロジェクトをフォークし、それが隠されると思います。そうは言っても、プルリクエストを発行して独自のリポジトリを編集できるようになります。それはかなり厄介に見えますが、うまくいくはずです。

Github/bitbucketなどのパーミッションを処理する良い方法があるとは思いません。

編集

それを強制するための実際の解決策ではありませんが、それでもかなり有効です。プルリクエストの承認はかなりオプションです。私があなただったら、あなたが困惑しているという意味ではありません。私はシステムを強制しようとはしません。現実には、コードレビューが重要です。プルリクエストを使用すると、一連のコミットを簡単に確認できます。

プルリクエストを作成/承認するのは、チーム内で1人だけで何ヶ月も働いていました。私が働いていたチームは、プルリクエストは時間の無駄だと判断し、私が去るまでコードレビューをしなかったと思います。私が最後に聞いたのは、私のチームメイトがコードがどのように機能するかわからないため、現在私のコードをリファクタリングしているということです。

私が言おうとしているのは、コードレビューを強制するべきではなく、チームはそれを非常に重要なことと見なすべきだということです。チームの各メンバーは協力して、自分でコードレビューを行う必要があります。コードレビューを行うことにより、彼らは「醜い」と感じたり、別の方法で設計されるべきだと感じたコードを拒否する権利を持ちます。各メンバーは、他の開発者が何をしているのかを常に最新の状態に保つことができ、病気、出発、または死亡の場合に誰かの仕事を切り替えるのにそれほど問題はないかもしれません!

システムでプロセスを実施することは、管理者の観点からは良いことかもしれません。しかし、オプションとして承認を得ることも悪いことではないと思います。そして、マネージャーの仕事は、1人以下の承認された人とのプルリクエストのマージされたプルリクエストをチェックすることです。プルリクエストをマージしたのは誰か、承認したのは誰かを確認します。とにかくコードをレビューする人を見つけてください。

一方、プルリクエストが永遠にぶら下がっていて、誰もそれをレビューしていない場合。仲間にレビューを依頼するのは開発タスクです。

0