Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gitlab CIでMRを自動生成する
Search
forcia_dev_pr
June 15, 2022
Programming
0
1.7k
Gitlab CIでMRを自動生成する
2022/6/8(水)に行われた「自動化大好きエンジニアLT会 - vol.7」での発表資料です。
https://rakus.connpass.com/event/245663/
forcia_dev_pr
June 15, 2022
Tweet
Share
More Decks by forcia_dev_pr
See All by forcia_dev_pr
"書く文化"を仕組みで育てる──フォルシアの技術ブログ継続戦略
forcia_dev_pr
1
220
新しいおもちゃを見つけたい私がやっている情報収集
forcia_dev_pr
2
460
「Pythonの環境構築について」と記事作成で意識したこと
forcia_dev_pr
1
170
Neovim で VS Code みたいにコーディングする
forcia_dev_pr
1
190
なぜ・どうやって・何を書く? 〜技術記事を書く習慣の作り方〜
forcia_dev_pr
1
190
第8回ゆるふわオンサイト 解説スライド
forcia_dev_pr
0
150
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
260
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
260
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
950
Other Decks in Programming
See All in Programming
組織で育むオブザーバビリティ
ryota_hnk
0
180
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
740
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
380
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
720
CSC307 Lecture 03
javiergs
PRO
1
490
dchart: charts from deck markup
ajstarks
3
1k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
160
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
ぼくの開発環境2026
yuzneri
0
240
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
110
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
380
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
66
Site-Speed That Sticks
csswizardry
13
1.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
Exploring anti-patterns in Rails
aemeredith
2
250
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Believing is Seeing
oripsolob
1
56
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
We Are The Robots
honzajavorek
0
160
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Transcript
Gitlab CIでMRを自動生成する 籏野 拓 2022.6.8 @自動化大好きエンジニアLT会 - vol.7
• 自己紹介 • 自動化したフロー • まとめ 本日のお品書き 2
自己紹介 • 籏野 拓 (Taku Hatano) • ソフトウェアエンジニア@フォルシア株式会社 ◦ 福利厚生系webサイトの検索ページ
◦ 社内のお役立ちツール開発など • 活動領域 ◦ Next.js/expressでアプリケーション開発 ◦ 最近はk8sでのアプリ構築もやったりしました 3
Gitlab CIとは • Gitlabが提供するCI/CDを自動化するための仕組み • GitlabCIが実行する各jobはプロジェクトに紐づいている ◦ 特定のブランチ更新などをトリガーにジョブを実行 4
• いわゆるGitHub Flow ◦ 開発ブランチを切る ◦ MR提出 ◦ レビュー完了後マージ ブランチ戦略
5 master feature ・MR作成 ・レビュー 毎回作るのが 面倒
• Gitlab APIを利用 ◦ MR作成済みかをチェック→なければMRを作成 • GitlabCIが提供する環境変数/ユーザー設定の環境変数を利用 ◦ 各プロジェクトで同じコードを使いまわせる GitLabCIの設定
- MR生成 6 【Gitlab CIが提供する環境変数の一例】 CI_BUILD_REF_NAME: pushしたブランチ名 CI_PROJECT_ID: プロジェクトID 参考 【MR作成のリクエスト】 curl -X POST -H "Private-Token: ${PRIVATE_TOKEN}" \ -d "title=${TITLE}&source_branch=${CI_BUILD_REF_NAME}&target_branch=${TARGET_BRANCH} &description=${DESCRIPTION}&${OPTIONS}" \ "${GITLAB_DOMAIN}/api/v4/projects/${CI_PROJECT_ID}/merge_requests"
• 設定ファイルの一部を切り出して、リポジトリに登録 ◦ 様々なプロジェクトでincludeしてCIを実行できるようになった Gitlab CIの設定の共有 7 include: # MRを自動生成
- project: 'misc/gitlab-ci-template' ref: 'master' file: '/create_mr/template.yml' create_mr: variables: PRIVATE_TOKEN: $GITLAB_BOT_TOKEN MR_TEMPLATE_TYPE: default TARGET_BRANCH: master IS_DRAFT: 1 OPTIONS: 'remove_source_branch=yes'
• 思った以上に快適 • MR作成漏れが防げる • MRのフォーマットを統一しやすい ◦ テンプレートを用意しても使われなければ意味がない 良かった点 8
• テスト • deploy • tagの自動付与 • 自動マージ • MRのレビュワー自動アサイン
• …etc Gitlab CIで実現している自動化 9
ご清聴ありがとうございました 10
EOF