GitLabでの自動マージリクエスト
私のGitLabはサーバーの1つにインストールされています。複数の開発者がブランチでソースコードを開発し、ローカルマシンからGitLabにソースをプッシュします。後で開発者はGitLabアカウントにログインし、デフォルトのブランチへのマージリクエストを作成します。
開発者がコードをローカルマシンからGitLabにプッシュするときに、デフォルトのブランチへの自動マージリクエストを作成するにはどうすればよいですか?
回答
残念ながら、GitLabにはマージリクエストを自動作成する機能はありません。たとえば、bashまたはpythonスクリプトを使用して自分で作成する必要があります。私は通常、各パイプラインの開始時に実行create_merge_request
されるsetup
ステージでジョブを呼び出すだけです。手順は次のようになります。
- 開いているすべてのマージリクエストのリストを読む
- それらのオープンMRの数をソースブランチにマップします
- 開いているMRがない場合は、必要なデフォルト設定でMRを作成します
@mnestorovが述べたように、bashスクリプトでこれらのステップを実行するオープンソースバージョンがここにあります。GitLab変数セクションで作成する必要がある変数はGITLAB_PRIVATE_TOKEN
、GitLabAPIトークンを入力することだけだと思います。トークンの作成方法については、パーソナルアクセストークンを参照してください。事前定義されたCI_JOB_TOKEN
変数を使用するようにスクリプトを更新することもできますが、それが機能するかどうかはわかりません。それを試して、私たちに知らせてください!
または、GitLab APIを使用してPythonスクリプトを作成することもできますが、それを自分で作成する必要がある場合があります。Gitlabで成功したパイプラインの最後にマージリクエストを作成する方法でいくつかの情報を見つけることができますか?。