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
はてなブログチームの開発フローとGitHub
Search
shibayu36
June 01, 2014
Programming
145
76k
はてなブログチームの開発フローとGitHub
6/1 github kaigi
shibayu36
June 01, 2014
Tweet
Share
More Decks by shibayu36
See All by shibayu36
今の生産性改善活動で大切にしている考え方
shibayu36
8
8.2k
エンジニアメンター制度の効果的な運用を目指して/improve-mentor-system
shibayu36
27
9.9k
グレードイメージ具体化のため昇格理由を公開する
shibayu36
8
5.7k
新機能作成時に開発ブランチに細かくmergeしていく戦略/merge-strategy-for-new-feature
shibayu36
6
17k
一から始めるJavaScriptユニットテスト/js-unit-test-from-scratch
shibayu36
8
32k
技術ブログを書くことについて/writing-tech-blog
shibayu36
17
26k
はてなと技術研修
shibayu36
1
6.2k
課題をテストで解決する
shibayu36
2
2.2k
Fluentd, mongoDB, Kibanaを利用したはてなブログABテストの事例
shibayu36
30
12k
Other Decks in Programming
See All in Programming
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
How to use Macrobenchmark
veronikapj
0
160
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
Rustのweb開発を助ける 便利なツール紹介
yuki0418
1
190
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
1
620
20240706_CDKConf
takuyay0ne
0
1.2k
Prompt FlowによるLLMアプリケーション開発
yuto2000
1
1k
【Go言語】golangci-lintの使い方
tomo1227
0
280
CSC307 Lecture 12
javiergs
PRO
0
220
Introduction to GitOps
hwchiu
0
110
最近追加した型の紹介とその振り返り
aki19035vc
0
180
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
291
20k
Navigating Team Friction
lara
181
13k
GraphQLとの向き合い方2022年版
quramy
36
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Embracing the Ebb and Flow
colly
81
4.3k
Web Components: a chance to create the future
zenorocha
307
41k
How STYLIGHT went responsive
nonsquared
93
5k
The Mythical Team-Month
searls
217
43k
Optimizing for Happiness
mojombo
373
69k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
How To Stay Up To Date on Web Technology
chriscoyier
784
250k
Transcript
ͯͳϒϩάνʔϜͷ ։ൃϑϩʔͱGitHub 2014/06/01 GitHub Kaigi גࣜձࣾͯͳ @shiba_yu36
@shiba_yu36 ͯͳϒϩά גࣜձࣾͯͳ
ࠓͷ ͯͳϒϩάνʔϜʹ͍ͭͯ ։ൃϑϩʔͷ՝ͱͦͷղܾ
ͯͳϒϩάνʔϜ
ͯͳϒϩά http://hatenablog.com/
5 engineers 2 designers
170 pull requests 1,281 commits per month
45 releases per month
PO
։ൃΛอ͍ͯͯΔ
։ൃϑϩʔͷൃੜ ։ൃϑϩʔͷվળ on GHE
λεΫཧ ϨϏϡʔ ϦϦʔε
ϒϩάνʔϜͰͷ ։ൃͷྲྀΕ
։ൃͷྲྀΕ • issueΛొɾΞαΠϯ • issueʹରԠ͢Δbranch࡞ • ։ൃɾϨϏϡʔɾmerge • merge͕ཷ·ͬͨΒϦϦʔε
wNBTUFS wຊ൪ͱಉҰ wEFWFMPQ w։ൃCSBODIɻϦϦʔεՄೳͳ ͷNFSHF wGFBUVSFCSBODI wػೳ͝ͱͷ։ൃϒϥϯν ϒϥϯνӡ༻
ϒϥϯνӡ༻ NBTUFS EFWFMPQ GFBUVSFCSBODI GFBUVSFCSBODI SFMFBTF
ϒϥϯνӡ༻ NBTUFS EFWFMPQ GFBUVSFCSBODI GFBUVSFCSBODI SFMFBTF HJUqPXͷ؆қ൛
λεΫཧ ϨϏϡʔ ϦϦʔε
GitHubͱ λεΫཧ
ҎલͷλεΫཧ ϝΠϯͷ࣌ IssuesͷΈͷ࣌ 1. 2.
ϝΠϯͷ࣌
RedmineϝΠϯ • λεΫRedmineͰ • ίʔυϨϏϡʔGitHubͰ
Pull Request
Pull Request ։ൃऀ͕྆πʔϧݟΔඞཁ͕͋Δ ίʔυͱͷ࿈ܞศརͰͳ͍
։ൃऀͷޮ্͕͕Βͳ͍
πʔϧΛҰͭʹ Issuesͱίʔυͷ࿈ܞ
πʔϧΛҰͭʹ Issuesͱίʔυͷ࿈ܞ IssuesͷΈͷ࣌
IssuesϝΠϯ • λεΫཧIssuesͷΈ • ίʔυϨϏϡʔPull Request
։ൃऀͷݟΔπʔϧ͕ݮΔ ίʔυͱͷ࿈ܞ͕ศར ։ൃऀͷޮΞοϓ
a few months later…
ൃੜ!!
νʔϜͷॏཁͳͷԿ? ͦͷ1
νʔϜͷॏཁͳͷԿ? ͦͷ1 Issuesʹ༏ઌɾకΊΓ ͷΈগͳ͍
ࠓ୭͕ԿΛͬͯΔͷ? ͦͷ2
ࠓ୭͕ԿΛͬͯΔͷ? ͦͷ2 IssuesͰਐߦதͷλεΫΛ ၆ᛌͰ͖ͳ͍
։ൃऀͷޮྑ͍ ! Ϛωʔδϟ͕νʔϜͷ ၆ᛌΛग़དྷͳ͍
IssuesϝΠϯʹ։ൃऀޮอͭ νʔϜͷॏཁͳͷ ਐߦத͚ͩଞͰαϙʔτ +
IssuesϝΠϯʹ։ൃऀޮอͭ νʔϜͷॏཁͳͷ ਐߦத͚ͩଞͰαϙʔτ + ΧϯόϯͰิॿ
x Χϯόϯ
Issuesͷׂ • શͯͷλεΫ͜͜ʹೖͬͯΔ • ୭Ͱ͜͜ʹՃ͍͍ͯ͠ • Ճ͞ΕͨλεΫຖேݕ౼
Χϯόϯͷׂ • IssuesͷதͰॏཁͳͷ͚ͩɹɹ Ϛωʔδϟ͕બ • ॏཁͳͷ͔͠Ճ͠ͳ͍ • ேձͰ͔͠ݟͳ͍
Χϯόϯೋຕ • ॏཁͳͷλεΫϦετ • ॏཁͳͷਐḿ
None
ॏཁͳͷ͚ͩϚωʔδϟ͕ᝦՃ
None
0%~100% ਓ
։ൃऀ ॏཁ • Ϛωʔδϟ • ேձ
։ൃऀேձҎ֎ GitHub͚ͩ Ϛωʔδϟॏཁͳͷ͚ͩ ϗϫΠτϘʔυͰঢ়گѲ
ॏཁͳͷѲͭͭ͠ ։ൃऀޮͷྑ͍ཧʹ
GitHubͱλεΫཧ • ։ൃऀʹͱͬͯҰ൪ޮͷྑ͍ɹɹ IssuesΛϝΠϯ • ϗϫΠτϘʔυͰॏཁͳͷΛཧ • εΫϥϜ·Ͱ͍͔ͳ͍ΏΔ͍λεΫ ཧ
λεΫཧ ϨϏϡʔ ϦϦʔε
GitHubͱ ϨϏϡʔ
ҎલͷϨϏϡʔͷྲྀΕ
@hitode909 PR͠·ͨ͠ ϨϏϡʔΑΖ͓͘͠ئ͍͠·͢ ͍Γ·͢
@hitode909 PR͠·ͨ͠ ϨϏϡʔΑΖ͓͘͠ئ͍͠·͢ ͍Γ·͢ ݸผʹ͓ئ͍
ͳΜ͔ϨϏϡʔ͠Α͏ Pull Request͔Β ͦΕͬΆ͍ͭ୳ͯ͠ϨϏϡʔ
ͳΜ͔ϨϏϡʔ͠Α͏ Pull Request͔Β ͦΕͬΆ͍ͭ୳ͯ͠ϨϏϡʔ Pull Request͔Β୳͢
ී௨ͷPRϨϏϡʔ
ൃੜ!!
ͦͷ1 Pull Requestͷঢ়ଶ͕͔Βͳ͍! (ͷͰϨϏϡʔΛͨΊΒ͏) • ϨϏϡʔґཔத? • ϨϏϡʔҰͯ͠मਖ਼த? • ϨϏϡʔ͏ऴΘͬͯΔ?
ͦͷ2 ϨϏϡʔ͕ফԽ͞Εͣ! Pull Request͕͍͢͝ྔʹ 37݅…
ͦͷ3 ϕςϥϯ͚͕ͩͻͨ͢Β! ϨϏϡʔ͠ଓ͚ΔΊʹ
GitHubͷ ϨϏϡʔπʔϧ࠷ߴ ! ͔͠͠ଅਐগͳ͍
ղܾҊ • ϨϏϡʔঢ়ଶΛ͖ͬΓ • ϨϏϡʔґཔҰཡΛ͔Γ͘͢ • ΈΜͳͰϨϏϡʔ͢Δงғؾ࡞Γ
ϨϏϡʔঢ়ଶϥϕϧ ϨϏϡʔλΠϜ
ϨϏϡʔঢ়ଶϥϕϧ ϨϏϡʔঢ়ଶΛ͖ͬΓ ϨϏϡʔґཔҰཡ͔Γ͘͢
ϨϏϡʔঢ়ଶϥϕϧ • Pull RequestʹϥϕϧΛ • ࠓͷϨϏϡʔঢ়ଶΛ͔Γ ͘͢
࠶ϨϏϡʔ ґཔ WIP Pull Request
ϨϏϡʔґཔҰཡΛݟͨΒ ࠓϨϏϡʔ͖͢ͷ͕͔Δ
ࣗͷΞαΠϯ͔Β ϨϏϡʔྃݟ͘͢
https://github.com/shimobayashi/pull-req-label QVMMSFRMBCFM
ϨϏϡʔλΠϜ ΈΜͳͰϨϏϡʔ͢Δงғؾ࡞Γ
ϨϏϡʔλΠϜ • ຖϥϯνޙ14:00ʙ • ʮϨϏϡʔґཔʯϥϕϧλεΫΛ ย͔ͬΒΈΜͳͰݟΔ
ϨϏϡʔλΠϜ IRCʹ௨ 14:01 ikachan01 : Ξο 14:01 ikachan03 : ϨϏϡʔλΠϜ͡ΌΜ
14:01 ikachan02 : ϫʔΦʂ ϨϏϡʔґཔ ͕9݅͋ΔΑʂ ࠓ͙͢νΣοΫνΣοΫʙ http:// **** > cockscomb funnelbit hitode909 shibayu36 ntakanashi
None
ϨϏϡʔͷ͖͔͚͕ͬग़དྷͯ ຖΈΜͳͰ ϨϏϡʔ͢ΔΑ͏ʹ
GitHubͱϨϏϡʔ • PR͚ͩͩͱϨϏϡʔͷଅਐ͕͏· ͘ߦ͔ͳ͔ͬͨ • ϨϏϡʔϥϕϧɾϨϏϡʔλΠϜ ͰɺΈΜͳͰϨϏϡʔ͢Δงғؾ ʹ
λεΫཧ ϨϏϡʔ ϦϦʔε
GitHubͱ ϦϦʔε
ϦϦʔεͷྲྀΕ Pull Request͕ͲΜͲΜmerge͞ΕΔ Ͳ͔͜ͰϦϦʔε
σϓϩΠࣗମ ίϚϯυҰൃʹ͍ͯͨ͠
σϓϩΠ࡞ۀͦͷͷҎ֎ʹ ϦϦʔεʹඞཁͳͷ͕͋Δ @onishi ͜ͷϦϦʔεΛ ͯ͠ྑ͍Ͱ͔͢ ϦϦʔεલʹݕূڥͰ ࠷ऴ֬ೝ͠·͠ΐ͏
ϦϦʔεͷྲྀΕ 1. ϚωʔδϟʹϦϦʔεͯ͠Α͍͔ ֬ೝ 2. ΈΜͳͰݕূڥͰ࠷ऴ֬ೝ 3. σϓϩΠίϚϯυͰσϓϩΠ!
શ෦ࣗಈԽ͖͠Εͳ͍
ൃੜ!!
ͦͷ1 Ϛωʔδϟ֬ೝͤͣʹ! ϦϦʔεͯ͠͠·ͬͨ
ͦͷ1 Ϛωʔδϟ֬ೝͤͣʹ! ϦϦʔεͯ͠͠·ͬͨ ࣗಈԽ͖͠Εͳ͍खॱͰͷϛε
ͦͷ2 ࣗಈԽ͖͠Εͳ͍෦Λ! ڭ͑ͳ͍ͱ৽ਓ͕ϦϦʔεͰ͖ͳ͍
σϓϩΠͦͷͷҎ֎Λ ্ख͘αϙʔτͰ͖ͳ͍͔
σϓϩΠͦͷͷҎ֎Λ ্ख͘αϙʔτͰ͖ͳ͍͔ ϦϦʔε༻Pull Requestʹ खॱॻΛ·ͱΊΔ
ϦϦʔε༻Pull Request • develop͔ΒmasterͷPRΛɹɹɹ ϦϦʔεखॱαϙʔτπʔϧʹ͢Δ ͜Ε
None
λΠτϧʹ֓ཁ ·ͱ·Δ
ϦϦʔε͞ΕΔϦετΛूΊΔ
֬ೝ͢Δ߲͕ νΣοΫϘοΫεͰ·ͱ·Δ
ϦϦʔεલݕূڥͰ ֬ೝ͢Δͷ·ͱ·Δ
ίϚϯυҰൃͰ શࣗಈ࡞
͋ͱ͜ΕΛͬͯ ϦϦʔε࡞ۀΛߦ͏
֬ೝͯ͠ νΣοΫ
ΈΜͳͰνΣοΫ
શνΣοΫͯ͠ ϦϦʔε!!
ϦϦʔεϛε͕ݮΓ ୭ͰϦϦʔεͰ͖ΔΑ͏ʹ
HJUQSSFMFBTF https://github.com/motemen/git-pr-release • ϦϦʔεͪͷissueΛूΊΔ • ಠࣗʹ࡞ۀखॱॻͷςϯϓϨʔτΛ࡞ΕΔ
GitHubͱϦϦʔε • σϓϩΠग़དྷΔ͚ͩࣗಈԽ • શ෦ࣗಈԽ͍͠ • Pull RequestΛ͏·͍͘ɺ࡞ۀ खॱͰαϙʔτ
·ͱΊ
λεΫཧ ϨϏϡʔ ϦϦʔε Issues x Χϯόϯ ϨϏϡʔϥϕϧ ϨϏϡʔλΠϜ ϦϦʔεPR git-pr-release
• GitHubΛϝΠϯʹ࠷େݶ׆༻ • ͍ΖΜͳ => ͦͷͨͼղܾ๏ Λݕ౼ • ͪΐͬͱͨ͠
ϫʔΫϑϩʔ վળ͠ଓ͚Δ͜ͱ͕େࣄ
13
ͯͳΠϯλʔϯ wࣾһͱಉ͡։ൃϑϩʔΛܦݧͰ͖·͢ wֶੜͷํͥͻ http://developer.hatenastaff.com/ entry/2014/05/23/145719
None