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

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

6/1 github kaigi

0ac642c69b7f699a69e3ae3372244dc6?s=128

shibayu36

June 01, 2014
Tweet

Transcript

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

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

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

  4. ͸ͯͳϒϩάνʔϜ

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

  6. 5 engineers 2 designers

  7. 170 pull requests 1,281 commits per month

  8. 45 releases per month

  9. PO

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

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

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

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

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

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

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

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

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

  19. GitHubͱ λεΫ؅ཧ

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

  21. ϝΠϯͷ࣌୅

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

  23. Pull Request

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

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

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

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

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

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

  30. a few months later…

  31. ໰୊ൃੜ!!

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

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

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

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

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

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

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

  39. x Χϯόϯ

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

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

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

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

  45. None
  46. 0%~100% ਓ

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

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

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

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

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

  52. GitHubͱ ϨϏϡʔ

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

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

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

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

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

  58. ී௨ͷPRϨϏϡʔ

  59. ໰୊ൃੜ!!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  74. ϨϏϡʔλΠϜ͸ IRCʹ௨஌ 14:01 ikachan01 : Ξο 14:01 ikachan03 : ϨϏϡʔλΠϜ͡ΌΜ

    14:01 ikachan02 : ϫʔΦʂ ϨϏϡʔґཔ ͕9݅΋͋ΔΑʂ ࠓ͙͢νΣοΫνΣοΫʙ http:// **** > cockscomb funnelbit hitode909 shibayu36 ntakanashi
  75. None
  76. ϨϏϡʔͷ͖͔͚͕ͬग़དྷͯ ຖ೔ΈΜͳͰ ϨϏϡʔ͢ΔΑ͏ʹ

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

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

  79. GitHubͱ ϦϦʔε

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

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

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

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

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

  85. ໰୊ൃੜ!!

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

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

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

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

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

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

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

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

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

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

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

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

  99. ֬ೝͯ͠ νΣοΫ

  100. ΈΜͳͰνΣοΫ

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

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

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

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

  105. ·ͱΊ

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

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

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

  109. 13

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

  111. None