Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はてなブログチームの開発フローとGitHub

 はてなブログチームの開発フローとGitHub

6/1 github kaigi

shibayu36

June 01, 2014
Tweet

More Decks by shibayu36

Other Decks in Programming

Transcript

  1. ͸ͯͳϒϩάνʔϜͷ
    ։ൃϑϩʔͱGitHub
    2014/06/01 GitHub Kaigi
    גࣜձࣾ͸ͯͳ
    @shiba_yu36

    View Slide

  2. @shiba_yu36
    ͸ͯͳϒϩά
    גࣜձࣾ͸ͯͳ

    View Slide

  3. ࠓ೔ͷ࿩
    ͸ͯͳϒϩάνʔϜʹ͍ͭͯ
    ։ൃϑϩʔͷ՝୊ͱͦͷղܾ

    View Slide

  4. ͸ͯͳϒϩάνʔϜ

    View Slide

  5. ͸ͯͳϒϩά
    http://hatenablog.com/

    View Slide

  6. 5 engineers
    2 designers

    View Slide

  7. 170 pull requests
    1,281 commits
    per month

    View Slide

  8. 45 releases
    per month

    View Slide

  9. PO

    View Slide

  10. ։ൃ଎౓Λอ͍ͯͯΔ

    View Slide

  11. ։ൃϑϩʔͷ໰୊ൃੜ
    ։ൃϑϩʔͷվળ
    on GHE

    View Slide

  12. λεΫ؅ཧ
    ϨϏϡʔ
    ϦϦʔε

    View Slide

  13. ϒϩάνʔϜͰͷ
    ։ൃͷྲྀΕ

    View Slide

  14. ։ൃͷྲྀΕ
    • issueΛొ࿥ɾΞαΠϯ
    • issueʹରԠ͢Δbranch࡞੒
    • ։ൃɾϨϏϡʔɾmerge
    • merge͕ཷ·ͬͨΒϦϦʔε

    View Slide

  15. wNBTUFS
    wຊ൪ͱಉҰ
    wEFWFMPQ
    w։ൃCSBODIɻϦϦʔεՄೳͳ
    ΋ͷ͸NFSHF
    wGFBUVSFCSBODI
    wػೳ͝ͱͷ։ൃϒϥϯν
    ϒϥϯνӡ༻

    View Slide

  16. ϒϥϯνӡ༻
    NBTUFS
    EFWFMPQ
    GFBUVSFCSBODI
    GFBUVSFCSBODI
    SFMFBTF

    View Slide

  17. ϒϥϯνӡ༻
    NBTUFS
    EFWFMPQ
    GFBUVSFCSBODI
    GFBUVSFCSBODI
    SFMFBTF
    HJUqPXͷ؆қ൛

    View Slide

  18. λεΫ؅ཧ
    ϨϏϡʔ
    ϦϦʔε

    View Slide

  19. GitHubͱ
    λεΫ؅ཧ

    View Slide

  20. ҎલͷλεΫ؅ཧ
    ϝΠϯͷ࣌୅ IssuesͷΈͷ࣌୅
    1. 2.

    View Slide

  21. ϝΠϯͷ࣌୅

    View Slide

  22. RedmineϝΠϯ
    • λεΫ͸RedmineͰ
    • ίʔυϨϏϡʔ͸GitHubͰ

    View Slide

  23. Pull Request

    View Slide

  24. Pull Request
    ։ൃऀ͕྆πʔϧݟΔඞཁ͕͋Δ
    ίʔυͱͷ࿈ܞ΋ศརͰͳ͍

    View Slide

  25. ։ൃऀͷޮ཰্͕͕Βͳ͍

    View Slide

  26. πʔϧΛҰͭʹ
    Issuesͱίʔυͷ࿈ܞ

    View Slide

  27. πʔϧΛҰͭʹ
    Issuesͱίʔυͷ࿈ܞ
    IssuesͷΈͷ࣌୅

    View Slide

  28. IssuesϝΠϯ
    • λεΫ؅ཧ͸IssuesͷΈ
    • ίʔυϨϏϡʔ͸Pull Request

    View Slide

  29. ։ൃऀͷݟΔπʔϧ͕ݮΔ
    ίʔυͱͷ࿈ܞ͕ศར
    ։ൃऀͷޮ཰Ξοϓ

    View Slide

  30. a few months later…

    View Slide

  31. ໰୊ൃੜ!!

    View Slide

  32. νʔϜͷॏཁͳ΋ͷԿ?
    ໰୊ͦͷ1

    View Slide

  33. νʔϜͷॏཁͳ΋ͷԿ?
    ໰୊ͦͷ1
    Issuesʹ͸༏ઌ౓ɾకΊ੾Γ
    ͷ࢓૊Έগͳ͍

    View Slide

  34. ࠓ୭͕ԿΛ΍ͬͯΔͷ?
    ໰୊ͦͷ2

    View Slide

  35. ࠓ୭͕ԿΛ΍ͬͯΔͷ?
    ໰୊ͦͷ2
    IssuesͰ͸ਐߦதͷλεΫΛ
    ၆ᛌͰ͖ͳ͍

    View Slide

  36. ։ൃऀͷޮ཰͸ྑ͍
    !
    Ϛωʔδϟ͕νʔϜͷ
    ၆ᛌΛग़དྷͳ͍

    View Slide

  37. IssuesϝΠϯʹ։ൃऀޮ཰͸อͭ
    νʔϜͷॏཁͳ΋ͷ
    ਐߦத͚ͩ͸ଞͰαϙʔτ
    +

    View Slide

  38. IssuesϝΠϯʹ։ൃऀޮ཰͸อͭ
    νʔϜͷॏཁͳ΋ͷ
    ਐߦத͚ͩ͸ଞͰαϙʔτ
    +
    ΧϯόϯͰิॿ

    View Slide

  39. x Χϯόϯ

    View Slide

  40. Issuesͷ໾ׂ
    • શͯͷλεΫ͸͜͜ʹೖͬͯΔ
    • ୭Ͱ΋͜͜ʹ͸௥Ճ͍͍ͯ͠
    • ௥Ճ͞ΕͨλεΫ͸ຖேݕ౼

    View Slide

  41. Χϯόϯͷ໾ׂ
    • IssuesͷதͰॏཁͳ΋ͷ͚ͩɹɹ
    Ϛωʔδϟ͕બ୒
    • ॏཁͳ΋ͷ͔͠௥Ճ͠ͳ͍
    • ேձͰ͔͠ݟͳ͍

    View Slide

  42. Χϯόϯ͸ೋຕ
    • ॏཁͳ΋ͷλεΫϦετ
    • ॏཁͳ΋ͷਐḿ

    View Slide

  43. View Slide

  44. ॏཁͳ΋ͷ͚ͩϚωʔδϟ͕෇ᝦ௥Ճ

    View Slide

  45. View Slide

  46. 0%~100%

    View Slide

  47. ։ൃऀ
    ॏཁ
    • Ϛωʔδϟ
    • ேձ

    View Slide

  48. ։ൃऀ͸ேձҎ֎͸
    GitHub͚ͩ
    Ϛωʔδϟ͸ॏཁͳ΋ͷ͚ͩ
    ϗϫΠτϘʔυͰঢ়گ೺Ѳ

    View Slide

  49. ॏཁͳ΋ͷ͸೺Ѳͭͭ͠
    ։ൃऀޮ཰ͷྑ͍؅ཧʹ


    View Slide

  50. GitHubͱλεΫ؅ཧ
    • ։ൃऀʹͱͬͯҰ൪ޮ཰ͷྑ͍ɹɹ
    IssuesΛϝΠϯ
    • ϗϫΠτϘʔυͰॏཁͳ΋ͷΛ؅ཧ
    • εΫϥϜ·Ͱ͍͔ͳ͍ΏΔ͍λεΫ
    ؅ཧ

    View Slide

  51. λεΫ؅ཧ
    ϨϏϡʔ
    ϦϦʔε

    View Slide

  52. GitHubͱ
    ϨϏϡʔ

    View Slide

  53. ҎલͷϨϏϡʔͷྲྀΕ

    View Slide

  54. @hitode909 PR͠·ͨ͠
    ϨϏϡʔΑΖ͓͘͠ئ͍͠·͢
    ͸͍΍Γ·͢

    View Slide

  55. @hitode909 PR͠·ͨ͠
    ϨϏϡʔΑΖ͓͘͠ئ͍͠·͢
    ͸͍΍Γ·͢
    ݸผʹ͓ئ͍

    View Slide

  56. ͳΜ͔ϨϏϡʔ͠Α͏
    Pull Request͔Β
    ͦΕͬΆ͍΍ͭ୳ͯ͠ϨϏϡʔ

    View Slide

  57. ͳΜ͔ϨϏϡʔ͠Α͏
    Pull Request͔Β
    ͦΕͬΆ͍΍ͭ୳ͯ͠ϨϏϡʔ
    Pull Request͔Β୳͢

    View Slide

  58. ී௨ͷPRϨϏϡʔ

    View Slide

  59. ໰୊ൃੜ!!

    View Slide

  60. ໰୊ͦͷ1
    Pull Requestͷঢ়ଶ͕෼͔Βͳ͍!
    (ͷͰϨϏϡʔΛͨΊΒ͏)
    • ϨϏϡʔґཔத?
    • ϨϏϡʔҰ౓ͯ͠मਖ਼த?
    • ϨϏϡʔ΋͏ऴΘͬͯΔ?

    View Slide

  61. ໰୊ͦͷ2
    ϨϏϡʔ͕ফԽ͞Εͣ!
    Pull Request͕͍͢͝ྔʹ
    37݅…

    View Slide

  62. ໰୊ͦͷ3
    ϕςϥϯ͚͕ͩͻͨ͢Β!
    ϨϏϡʔ͠ଓ͚Δ͸Ίʹ

    View Slide

  63. GitHubͷ
    ϨϏϡʔπʔϧ͸࠷ߴ
    !
    ͔͠͠ଅਐ͸গͳ͍

    View Slide

  64. ղܾҊ
    • ϨϏϡʔঢ়ଶΛ͸͖ͬΓ
    • ϨϏϡʔґཔҰཡΛ෼͔Γ΍͘͢
    • ΈΜͳͰϨϏϡʔ͢Δงғؾ࡞Γ

    View Slide

  65. ϨϏϡʔঢ়ଶϥϕϧ
    ϨϏϡʔλΠϜ

    View Slide

  66. ϨϏϡʔঢ়ଶϥϕϧ
    ϨϏϡʔঢ়ଶΛ͸͖ͬΓ
    ϨϏϡʔґཔҰཡ෼͔Γ΍͘͢

    View Slide

  67. ϨϏϡʔঢ়ଶϥϕϧ
    • Pull RequestʹϥϕϧΛ
    • ࠓͷϨϏϡʔঢ়ଶΛ෼͔Γ΍
    ͘͢

    View Slide

  68. ࠶ϨϏϡʔ
    ґཔ
    WIP Pull Request

    View Slide

  69. ϨϏϡʔґཔҰཡΛݟͨΒ
    ࠓϨϏϡʔ͢΂͖΋ͷ͕෼͔Δ

    View Slide

  70. ࣗ෼ͷΞαΠϯ͔Β
    ϨϏϡʔ׬ྃ΋ݟ΍͘͢

    View Slide

  71. https://github.com/shimobayashi/pull-req-label
    QVMMSFRMBCFM

    View Slide

  72. ϨϏϡʔλΠϜ
    ΈΜͳͰϨϏϡʔ͢Δงғؾ࡞Γ

    View Slide

  73. ϨϏϡʔλΠϜ
    • ຖ೔ϥϯνޙ14:00ʙ
    • ʮϨϏϡʔґཔʯϥϕϧλεΫΛ
    ยͬ୺͔ΒΈΜͳͰݟΔ

    View Slide

  74. ϨϏϡʔλΠϜ͸
    IRCʹ௨஌
    14:01 ikachan01 : Ξο
    14:01 ikachan03 : ϨϏϡʔλΠϜ͡ΌΜ
    14:01 ikachan02 : ϫʔΦʂ ϨϏϡʔґཔ
    ͕9݅΋͋ΔΑʂ ࠓ͙͢νΣοΫνΣοΫʙ http://
    **** > cockscomb funnelbit hitode909
    shibayu36 ntakanashi

    View Slide

  75. View Slide

  76. ϨϏϡʔͷ͖͔͚͕ͬग़དྷͯ
    ຖ೔ΈΜͳͰ
    ϨϏϡʔ͢ΔΑ͏ʹ


    View Slide

  77. GitHubͱϨϏϡʔ
    • PR͚ͩͩͱϨϏϡʔͷଅਐ͕͏·
    ͘ߦ͔ͳ͔ͬͨ
    • ϨϏϡʔϥϕϧɾϨϏϡʔλΠϜ
    ͰɺΈΜͳͰϨϏϡʔ͢Δงғؾ
    ʹ

    View Slide

  78. λεΫ؅ཧ
    ϨϏϡʔ
    ϦϦʔε

    View Slide

  79. GitHubͱ
    ϦϦʔε

    View Slide

  80. ϦϦʔεͷྲྀΕ
    Pull Request͕ͲΜͲΜmerge͞ΕΔ
    Ͳ͔͜ͰϦϦʔε

    View Slide

  81. σϓϩΠࣗମ͸
    ίϚϯυҰൃʹ͍ͯͨ͠

    View Slide

  82. σϓϩΠ࡞ۀͦͷ΋ͷҎ֎ʹ
    ϦϦʔεʹඞཁͳ΋ͷ͕͋Δ
    @onishi ͜ͷϦϦʔεΛ
    ͯ͠΋ྑ͍Ͱ͔͢
    ϦϦʔεલʹݕূ؀ڥͰ
    ࠷ऴ֬ೝ͠·͠ΐ͏

    View Slide

  83. ϦϦʔεͷྲྀΕ
    1. ϚωʔδϟʹϦϦʔεͯ͠Α͍͔
    ֬ೝ
    2. ΈΜͳͰݕূ؀ڥͰ࠷ऴ֬ೝ
    3. σϓϩΠίϚϯυͰσϓϩΠ!

    View Slide

  84. શ෦ࣗಈԽ͖͠Εͳ͍

    View Slide

  85. ໰୊ൃੜ!!

    View Slide

  86. ໰୊ͦͷ1
    Ϛωʔδϟ֬ೝͤͣʹ!
    ϦϦʔεͯ͠͠·ͬͨ

    View Slide

  87. ໰୊ͦͷ1
    Ϛωʔδϟ֬ೝͤͣʹ!
    ϦϦʔεͯ͠͠·ͬͨ
    ࣗಈԽ͖͠Εͳ͍खॱͰͷϛε

    View Slide

  88. ໰୊ͦͷ2
    ࣗಈԽ͖͠Εͳ͍෦෼Λ!
    ڭ͑ͳ͍ͱ৽ਓ͕ϦϦʔεͰ͖ͳ͍

    View Slide

  89. σϓϩΠͦͷ΋ͷҎ֎Λ
    ্ख͘αϙʔτͰ͖ͳ͍͔

    View Slide

  90. σϓϩΠͦͷ΋ͷҎ֎Λ
    ্ख͘αϙʔτͰ͖ͳ͍͔
    ϦϦʔε༻Pull Requestʹ
    खॱॻΛ·ͱΊΔ

    View Slide

  91. ϦϦʔε༻Pull Request
    • develop͔Βmaster΁ͷPRΛɹɹɹ
    ϦϦʔεखॱαϙʔτπʔϧʹ͢Δ
    ͜Ε

    View Slide

  92. View Slide

  93. λΠτϧʹ֓ཁ
    ·ͱ·Δ

    View Slide

  94. ϦϦʔε͞ΕΔϦετΛूΊΔ

    View Slide

  95. ֬ೝ͢Δ߲໨͕
    νΣοΫϘοΫεͰ·ͱ·Δ

    View Slide

  96. ϦϦʔεલݕূ؀ڥͰ
    ֬ೝ͢Δ΋ͷ΋·ͱ·Δ

    View Slide

  97. ίϚϯυҰൃͰ
    શࣗಈ࡞੒

    View Slide

  98. ͋ͱ͸͜ΕΛ࢖ͬͯ
    ϦϦʔε࡞ۀΛߦ͏

    View Slide

  99. ֬ೝͯ͠
    νΣοΫ

    View Slide

  100. ΈΜͳͰνΣοΫ

    View Slide

  101. શνΣοΫͯ͠
    ϦϦʔε!!

    View Slide

  102. ϦϦʔεϛε͕ݮΓ
    ୭Ͱ΋ϦϦʔεͰ͖ΔΑ͏ʹ


    View Slide

  103. HJUQSSFMFBTF
    https://github.com/motemen/git-pr-release
    • ϦϦʔε଴ͪͷissueΛूΊΔ
    • ಠࣗʹ࡞ۀखॱॻͷςϯϓϨʔτΛ࡞ΕΔ

    View Slide

  104. GitHubͱϦϦʔε
    • σϓϩΠ͸ग़དྷΔ͚ͩࣗಈԽ
    • શ෦ࣗಈԽ͸೉͍͠
    • Pull RequestΛ͏·͘࢖͍ɺ࡞ۀ
    खॱͰαϙʔτ

    View Slide

  105. ·ͱΊ

    View Slide

  106. λεΫ؅ཧ
    ϨϏϡʔ
    ϦϦʔε
    Issues x Χϯόϯ
    ϨϏϡʔϥϕϧ
    ϨϏϡʔλΠϜ
    ϦϦʔεPR
    git-pr-release

    View Slide

  107. • GitHubΛϝΠϯʹ࠷େݶ׆༻
    • ͍ΖΜͳ໰୊ => ͦͷͨͼղܾ๏
    Λݕ౼
    • ͪΐͬͱͨ͠޻෉

    View Slide

  108. ϫʔΫϑϩʔ͸
    վળ͠ଓ͚Δ͜ͱ͕େࣄ

    View Slide

  109. 13

    View Slide

  110. ͸ͯͳΠϯλʔϯ
    wࣾһͱಉ͡։ൃϑϩʔΛܦݧͰ͖·͢
    wֶੜͷํͥͻ
    http://developer.hatenastaff.com/
    entry/2014/05/23/145719

    View Slide

  111. View Slide