$30 off During Our Annual Pro Sale. View Details »

ぺろぺろ - Github pull request bot framework -

mzp
February 11, 2017
2.8k

ぺろぺろ - Github pull request bot framework -

名古屋Ruby会議 03

mzp

February 11, 2017
Tweet

Transcript

  1. ΃Ζ΃Ζ
    N[Q
    (JUIVCQVMMSFRVFTUCPUGSBNFXPSL

    View Slide

  2. View Slide

  3. View Slide

  4. w ίϯϑϦΫτʹؾ෇͍ͨΒڭ͑ͯ͋͛Α͏
    w ίϝϯτͨ͠Β4MBDLͰ΋఻͑Α͏
    w ϨϏϡʔΛґཔ͢Δͱ͖͸4MBDLͰ΋఻͑Α͏
    w

    View Slide

  5. ӡ༻ϧʔϧͷCPUԽ

    " ➡
    ࠓ೔ͷςʔϚ

    View Slide

  6. ࢖͍ํ

    View Slide

  7. %FQMPZUPIFSPLV

    View Slide

  8. 8FCIPPLͷઃఆ

    View Slide

  9. ΧελϚΠζ
    source 'https://rubygems.org'
    gem 'prpr'
    gem 'prpr-slack'
    gem 'prpr-mention_comment'
    gem 'prpr-checklist'
    gem 'prpr-conflict_label' # <= ௥ه

    View Slide

  10. طଘϓϥάΠϯͷ঺հ

    View Slide

  11. QSQSDIFDLMJTU

    View Slide

  12. View Slide

  13. QSQSNFOUJPO@DPNNFOU

    View Slide

  14. View Slide

  15. QSQSHFNpMF

    View Slide

  16. QSQSDPOqJDU@MBCFM

    View Slide

  17. ·ͱΊ
    طଘϓϥάΠϯͷ঺հ
    w QSQSDIFDLMJTUνΣοΫϦετͷ౤ߘ
    w QSQSNFOUJPO@DPNNFOU4MBDL΁ͷίϝϯτసૹ
    w QSQSHFNpMF(FNpMFMPDLͷEJ⒎දࣔ
    w QSQSDPOqJDU@MBCFMDPOqJDUͷՄࢹԽ

    View Slide

  18. .JTPDB։ൃϑϩʔͱͷ
    ౷߹

    View Slide

  19. 8*1
    ϨϏϡʔ
    Ϛʔδ
    σϓϩΠ

    View Slide

  20. w ૬ޓʹϨϏϡʔ͢Δ
    w جຊతʹ͸4MBDLͰ΍ΓͱΓΛ͢Δ
    IUUQTSFDSVJUNJTPDBKQ
    ৄࡉ͸ͪ͜Β

    View Slide

  21. QSQSSFWJFX@MBCFM

    View Slide

  22. QSQSMHUN

    View Slide

  23. View Slide

  24. QSQSNFSHFE

    View Slide

  25. σϓϩΠ
    CPUʹσϓϩΠΛґཔ͢Δ
    σϓϩΠ༻ͷϓϧϦΫΤετ͕࡞੒͞ΕΔ
    Ϛʔδ͢ΔͱɺσϓϩΠ͞ΕΔ

    View Slide

  26. QSQSDPEF@EFQMPZ
    DPNNJUJE

    View Slide

  27. ·ͱΊ
    .JTPDB։ൃϑϩʔͱͷ౷߹
    w QSQSSFWJFX@MBCFMϨϏϡʔґཔ
    w QSQSMHUN-(5.਺ͷՄࢹԽ
    w QSQSNFSHFEϚʔδ௨஌
    w QSQSDPEF@EFQMPZσϓϩΠ

    View Slide

  28. ઌߦࣄྫ

    View Slide

  29. View Slide

  30. View Slide

  31. ϓϥάΠϯͰ֦ுͰ͖ΔCPU
    w IVCPU
    w 3VCPUZ
    w

    View Slide

  32. ઃܭ

    View Slide

  33. ໨ඪ
    w HFNʹΑΔ֦ு
    w ؅ཧऀҎ֎΋ઃఆมߋͰ͖ΔΑ͏ʹ͢Δ
    w IFSPLVͰಈ࡞͢Δ
    w ͬ͞͞ͱಈ͔͢

    View Slide

  34. ߏ੒
    http
    CLI
    Handler Action Publisher
    GithubAPI
    ઃఆ
    ϓϥάΠϯ
    ίΞ

    View Slide

  35. ྫ)BOEMFS
    class Prpr::Handler::Merged < Prpr::Handler::Base
    handle Event::PullRequest, action: /closed/ do
    Prpr::Action::Merged::Merged.new(event).call
    end
    end

    View Slide

  36. ྫ"DUJPO

    class Prpr::Action::Merged < Prpr::Action::Base
    def call
    if merged?
    Publisher::Adapter::Base.broadcast message
    end
    end
    private
    def merged?
    !!event.pull_request.merged_at
    end
    .....

    View Slide

  37. ྫ"DUJPO

    def message
    Prpr::Publisher::Message.new(body: body, from:
    from, room: room)
    end
    def body
    env.format(:merged_body, event.pull_request)
    end
    def from
    event.sender
    end
    def room
    env[:merged_room]
    end

    View Slide

  38. ΍Βͳ͔ͬͨ͜ͱ
    w 8FC6*Λ࡞Βͳ͍
    w #JUCVDLFU(JU-BCͷ͜ͱ͸๨ΕΔ

    View Slide

  39. ໋໊

    View Slide

  40. Α͔ͬͨͱ͜Ζ
    w HFNԽͨ͠ͷͰɺϓϥάΠϯͱͷڥ໨͕໌֬ʹͳͬ
    ͨ
    w $-*Ͱಈ࡞͢ΔΑ͏ʹͨ͠ͷͰςετָ͕
    w ֎෦"1*Λୟ͘෦෼͕ϓϥάΠϯͳͷͰɺຊମͷς
    ετָ͕

    View Slide

  41. ۤ࿑ͨ͠఺
    w (JUIVCͷ৽ػೳ͕ͳ͔ͳ͔"1*ʹͳΒͳ͍
    w PDUPLJUʹ΋͸͍Βͳ͍
    w େྔͷHFNTQFDΛॻ͘ͷ͕μϧ͍

    View Slide

  42. ·ͱΊ
    w ϓϧϦΫΤετ༻CPUϑϨʔϜϫʔΫΛ࡞ͬͨ
    w .JTPDBͷ։ൃϑϩʔʹ૊ࠐ·Ε͍ͯΔ
    w ֦ு͠΍͍͢Α͏ʹίϯϙʔωϯτ෼ׂ͞Ε͍ͯΔ

    View Slide