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
10
3.9k
効果的にGitHubを使うために
GitHub Constellation Tokyo
https://githubuniverse.com/constellation/
Takafumi Ikeda
June 07, 2017
Tweet
Share
More Decks by Takafumi Ikeda
See All by Takafumi Ikeda
APIゲートウェイとサービスメッシュ
ikeike443
0
290
はじめてのKong Konnect
ikeike443
0
170
Kuma
ikeike443
2
3.4k
10分で分るGitHub Actions
ikeike443
3
1.9k
GitHub Actionsはどのような未来を描くのか
ikeike443
3
2.7k
GitHubber@日本
ikeike443
6
12k
GitHub Business Seminar
ikeike443
1
130
How we ship GitHub with GitHub -- ChatOps
ikeike443
0
310
How People Build Software
ikeike443
0
220
Other Decks in Technology
See All in Technology
2024年にチャレンジしたことを振り返るぞ
mitchan
0
140
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
840
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
390
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
270
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
270
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
3
310
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
190
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
Featured
See All Featured
Bash Introduction
62gerente
608
210k
Statistics for Hackers
jakevdp
796
220k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Six Lessons from altMBA
skipperchong
27
3.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Optimising Largest Contentful Paint
csswizardry
33
3k
Side Projects
sachag
452
42k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
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?