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
Takafumi Ikeda
June 07, 2017
Technology
4.1k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
効果的にGitHubを使うために
GitHub Constellation Tokyo
https://githubuniverse.com/constellation/
Takafumi Ikeda
June 07, 2017
More Decks by Takafumi Ikeda
See All by Takafumi Ikeda
APIゲートウェイとサービスメッシュ
ikeike443
0
510
はじめてのKong Konnect
ikeike443
0
250
Kuma
ikeike443
2
3.6k
10分で分るGitHub Actions
ikeike443
3
2.3k
GitHub Actionsはどのような未来を描くのか
ikeike443
3
2.9k
GitHubber@日本
ikeike443
6
12k
GitHub Business Seminar
ikeike443
1
160
How we ship GitHub with GitHub -- ChatOps
ikeike443
0
400
How People Build Software
ikeike443
0
270
Other Decks in Technology
See All in Technology
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
260
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
140
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
930
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
320
シンガポールで登壇してきます
yama3133
0
340
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
730
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
730
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
450
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
330
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
440
データエンジニアリングとドメイン駆動設計
masuda220
PRO
14
2.5k
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.2k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.2k
Code Reviewing Like a Champion
maltzj
528
40k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Leo the Paperboy
mayatellez
8
1.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Faster Mobile Websites
deanohume
310
32k
Transcript
Where software is built ޮՌతʹGitHubΛ͏ͨΊʹ @ikeike443
! Where software is built Who am I? 2 a
ikeike443
# Where software is built # $ 3 TAKAFUMI IKEDA
SOLUTIONS ENGINEER Who am I?
Where software is built % Agenda 4 •͓٬༷ʹڞ௨͢Δ՝ •։ൃϑϩʔߏஙͷͨΊͷιϦϡʔγϣϯ •ҙ֎ͱΒΕ͍ͯͳ͍Tips
•·ͱΊ %
How people build software % ڞ௨͢Δ՝ 5 • OrgΛ͚͗͢ɺϓϩδΣΫτຖɺ෦ॺຖʹαΠϩԽ͍ͯ͠Δ •
CI·Ͱख͕ճΒͳ͍ɺϏϧυखॱ͕ҰఆͰͳ͍ • Pull RequestΛ͏·͑͘ͳ͍ɺϚʔδʹۤ࿑͢Δ • νʔϜͷशख़ʹΒ͖͕ͭ͋Δ • Φʔϓϯʹ͍͕ͨ͠ɺಉ࣌ʹ҆શੑ୲อ͍ͨ͠
How people build software % ຊ 6 • Org/Teamͷਖ਼͍͍͜͠ͳ͠ํ •
GitHub FlowͷԠ༻ɺपลػೳͷ͍ํ • ͦͷଞɺϑϩʔߏஙʹཱͭҙ֎ͱΒΕ͍ͯͳ͍ػೳͷհ
How people build software OrganizationͱTeam ࠷ॳʹऔΓΉ͖͜͜ 7 %
How people build software % 8
How people build software % 9
How people build software % OrganizationΛ͚͗͢Δ 10 • Α͋͘Δࣄྫ: •
෦ॺ͝ͱʹOrgΛ͚Δʢ৫ߏͱҰகͤ͞Α͏ͱ͢Δʣ • ϓϩδΣΫτ͕࢝·ΔͨͼʹOrgΛ͚Δ • 200Ҏ্ͷOrg͕͋Δྫ
How people build software % Org͕ଟ͍ͱى͖Δ 11 • @mentionOrgΛԣஅͯ͠ಧ͔ͳ͍ͨΊɺαΠϩԽ •
ϝϯόʔ͕૿͑ΔͨͼʹOrgͷՃ࡞ۀ͕ൃੜ
How people build software % OrgΛগͳ͘ɺTeamΛଟ͘ 12 • OrgΛͰ͖ΔݶΓগͳ͘͠ɺݟ௨͠ΛΑ͘ •
TeamΛͬͯݖݶཧΛࡉ͘ઃఆ͢Δ͜ͱ • LDAP Team SyncΛ͏·͍͘ɺϝϯςΛݮ
How people build software % OrgΛগͳ͘͢Δͱෆ҆ 13 • ಁ໌ԽʹΑΔϝϦοτͱɺෆҙͷใ࿙͍͑ͷؒͰΉ
How people build software % ಁ໌Խͷ༷ʑͳྫ 14 • ͯ͢Φʔϓϯ •
GitHub.comΛͬͨOSSӡӦ • ࣾͯ͢Φʔϓϯɺࣾ֎ʹΫϩʔζ • GitHub.com Business Plan Hosted • GHEʹͯPublic Modeӡ༻ • ࣾһʹΦʔϓϯʹɺύʔτφʔʹ੍ݶΛೖΕ͍ͨ • ز͔ͭͷύλʔϯ
How people build software % GitHubͰͰ͖Δݖݶཧ 15 • GHEͷPublic/Private Mode
• GHEͷΈɺΠϯελϯεશମͷՄࢹੑΛઃఆՄೳ
How people build software % GitHubͰͰ͖Δݖݶཧ 16 • OrgͷDefault Permission
• ϝϯόʔͷσϑΥϧτݖݶʹ͍ͭͯ4ͭͷҟͳΔઃఆ͕Մೳ
How people build software % ࣾһʹΦʔϓϯɺύʔτφʔʹ੍ݶ 17 • Α͋͘Δχʔζ •
ࣾһͱύʔτφʔͰݖݶΛ͚͍ͨ • ύʔτφʔʹಛఆͷϦϙδτϦҎ֎ҰӾཡ͢Βڐͨ͘͠ͳ͍
How people build software % ࣾһʹΦʔϓϯɺύʔτφʔʹ੍ݶʢ̍ʣ 18 • OrgΛ͚Δ •
OrgΛ͚ɺશϦϙδτϦΛPrivateʹ͢Δ • ࣾһͱύʔτφʔͰ࡞ΔͷɺݟΔͷ͕શʹผͷ߹ʹ༗ޮ • ྆ऀͷίϥϘϨʔγϣϯΛॏࢹ͠ͳ͍έʔε
How people build software % ࣾһʹΦʔϓϯɺύʔτφʔʹ੍ݶʢ̎ʣ 19 • ίϥϘϨʔλΛ͏·͘׆༻͢Δ •
ࣾһ͚ͩͷOrgΛ࡞ΓɺύʔτφʔΛೖΕͳ͍ • ύʔτφʔͷڠྗ͕ඞཁͳϦϙδτϦʹରͯ͠ɺݸผʹίϥϘϨʔ λͱͯ͠Ճ
How people build software % ࣾһʹΦʔϓϯɺύʔτφʔʹ੍ݶʢ̏ʣ 20 • OrgͷσϑΥϧτઃఆΛNoneʹ͢Δ •
ࣾһύʔτφʔಉ͡Orgʹॴଐ͠ɺTeamͰ͚ΔΠϝʔδ • σϑΥϧτͰҰPrivateϦϙδτϦΛݟΔ͜ͱ͕Ͱ͖ͳ͘ͳΔ • ύʔτφʔTeamΛݸผʹϦϙδτϦʹՃ͢Δ͜ͱͰݖݶཧ • ͨͩ͠ɺࣾһTeamݸผʹՃ͢Δඞཁ͋Γɺগ͠ࡶ
How people build software % Org/Team ·ͱΊ 21 • OrgΛগͳ͘ɺTeamΛଟ͘
• @mentionOrgΛ·ͨ͛ͳ͍ • OrgͷDefault Permission, Private ModeΛ͍͜ͳ͢ • Outside Collaborator֎෦ύʔτʔφʔʹ࠷ద
How people build software % Org/Team Tips 22 • TeamΛ৫ߏͱҰகͤ͞Δඞཁͳ͍
• Java Specialists, Security, SQL, Managers, Designers, … • ઐੑؔ৺ࣄͰάϧʔϐϯά͢Δ͜ͱେม༗ޮ • See also: https://github.com/blog/2316-organize-your-experts-with-ad-hoc-teams
How people build software % Org/Team Tips 23 • OrgΛू͢Δͱ
• ϦϙδτϦͷ͕େʹͳΓ୳͢ͷ͕େมʁ
How people build software % Org/Team Tips 24 • Topics
• ϦϙδτϦͷλά͚͕Մೳɺݕࡧʹ͑Δ • GHE2.10ΑΓ
How people build software % Org/Team Tips 25 • Pinned
Repositories • දతͳϦϙδτϦઌ಄ʹషΓ͚͓͚ͯΔ
How people build software % ੜͷ Org/Team ྫ 26
How people build software GitHub Flow ͯ͢ͷجຊͰ͢ 27 %
How people build software % GitHub Flow 28
Create a Feature Branch
Add commits
Open a Pull Request
Discuss and Review Code
How people build software % ίʔυϨϏϡʔ 33
% % hubot
How people build software % Hubot 35
How people build software % CI status Λ PR ʹ͢
36
Ship
How people build software % Deployment API 38
Merge with master
How people build software % 40
How people build software % Α͋͘Δޡղ 41 • ϚʔδલʹσϓϩΠͳΜͯͰ͖ͳ͍͔Βҧ͏ϑϩʔʹ •
GitHub FlowWeb։ൃҎ֎ʹ͑ͳ͍ • Git-Flow͕େن։ൃʹ͍͍ͯΔ
How people build software % ϙΠϯτ 42 • ੜଘظؒͷ͍ϒϥϯνΛݮΒ͢͜ͱ •
ཧతʹMasterҰຊͷΈ • Pull RequestϒϥϯνͰ͖Δ͚ͩૣ͘Ϛʔδ͢Δ • ҰͭҰͭͷมߋΛখ͘͞ • ϑΟʔνϟʔϑϥάͳͲ༗ޮʹ͏ • Ϛʔδͨ͠Β͙͢ʹফ͢
How people build software % ෳͷϒϥϯν͕ඞཁ 43 • ͦΕͧΕͷϒϥϯνʹରͯ͠GitHub Flow͕Մೳ
Open a Pull Request Open a Pull Request
How people build software % ෳͷϒϥϯν͕ඞཁ 44 • ϒϥϯν͕ଟ͍΄ͲBack Portͷ͕૿͑ɺෳࡶԽ
• ϒϥϯνΛݮΒ͢Α͏ʹ͢Δ͜ͱ͕ॏཁ
How people build software % λάͰସͰ͖ͳ͍͔ߟ͑ͯΈΔ 45 • ग़ՙόʔδϣϯɺίʔυϑϦʔζɺQAظ͕ؒඞཁͰ͋ΕɺλάͰସͰ͖ͳ͍͔ •
ඞཁ͕ੜͨ͡ͱ͖ͷΈϒϥϯνΛ࡞ΓɺऴΘͬͨΒফ͢ • ͜͜Ͱෳόʔδϣϯ͕ಉ࣌ʹଘࡏ͢ΔͱෳࡶʹͳΔ͜ͱʹҙ v0.1.pre v0.1.pre.2 v0.1 v0.2.pre
How people build software % GitHub Flow·ͱΊ 46 • GitHub
FlowԠ༻Մೳ • ظؒϒϥϯνͷΛͰ͖Δ͚ͩݮΒ͢ • λάΛ༗ޮ׆༻͢Δ
How people build software Pull Requestपลͷศརͳػೳ ͞·͟·ͳϫʔΫϑϩʔΛՄೳʹ 47 %
How people build software % ศརͳػೳ 48 • Revert •
Blame • Update Branch • Conflictͷղফ • ֤छϚʔδΦϓγϣϯ • ForkઌͷฤूڐՄ • etc
How people build software % Revert 49
how software is built % Revert 50 ຊޠԽͨ͠ ςετमਖ਼ ؔͷͳ͍मਖ਼
REVERT Pull Request Pull Request͕ؔ࿈͢ΔίϛοτΛ͍ͬͯΔ
how software is built % Blame 51
the best way to build and ship software % 52
Web UI͔ΒͷConflictղফ
How people build software Protected Branches ॊೈ͔ͭηΩϡΞͳϫʔΫϑϩʔߏஙΛՄೳʹ 53 %
How people build software % Protected Branches 54 • ༷ʑͳܗͰϒϥϯνΛอޢ
• Delete, Push -f ͷېࢭ • ϨϏϡʔͷඞਢԽ • CIͳͲεςʔλενΣοΫ • ϚʔδՄೳͳਓ/TeamΛ੍ݶ
How people build software ͦͷଞͷศརػೳ ࡉ͔͗ͯ͢ΘΒͳ͍ػೳ 55 %
How people build software % ҙ֎ͱΒΕ͍ͯͳ͍ػೳ܈ 56 • Release •
Pre-Receive Hooks (GHE Only) • ͞·͟·ͳRenderingΦϓγϣϯ • SVN Bridge • git-import
How people build software % Release 57 • Tagʹؔ࿈͚ͯΞηοτςΩετΛཧͰ͖Δ
How people build software % Pre Receive Hooks 58 •
GHE only͕ͩɺαʔόαΠυͷPre Receive Hook͕ॻ͚Δ • ใ࿙͍͑νΣοΫɺPGP伴ͷνΣοΫͳͲͳͲʹ • ηΩϡϦςΟ্ͷݒ೦Λ༧తʹνΣοΫͰ͖Δ • ࣗͷ͖ͳϥΠϒϥϦɺݴޠΛΠϯετʔϧՄೳ • Chroot, DockerରԠ • جຊతʹͳΜͰͰ͖ΔͷͰӡ༻ʹҙ͕ඞཁ
How people build software % ༷ʑͳϨϯμϦϯά 59 • ը૾ •
PDF • GeoJson • Jupyternootbook • STL • CSV/TSV • Markdown • etc
How people build software % ༷ʑͳϨϯμϦϯά: STL 60
How people build software % ༷ʑͳϨϯμϦϯά: CSV/TSV 61
How people build software % SVN Bridge 62 • GitHubͷΫϥΠΞϯτͱͯ͠SVNΛར༻Մೳ
How people build software % git-import 63 • ༷ʑͳVCS͔ΒͷҠߦΛαϙʔτ
How people build software % ·ͱΊ 64 • Org/TeamΛΓɺ্खʹ͍͜ͳͦ͏ •
GitHub Flow༷ʑͳܗͰԠ༻Մೳ • Protected BranchesΛ࢝ΊɺػೳΛΓɺ։ൃϑϩʔΛߏங͠Α͏ • ࢼߦࡨޡ͠ɺࣗ͝ʹͱͬͯͷ࠷దղΛݟग़ͦ͏
How people build software Thank you!
How people build software Questions?