1. Qiita
  2. 投稿
  3. GitHub

特定のラベルのついたPR一覧をとってくる

  • 3
    いいね
  • 0
    コメント

Rake でつくる

hoge/fuga リポジトリの 'レビュー中' の PRリストを取得してみます。

lib/tasks/review_pr.rake
namespace :review_pr do
  desc 'レビュー中ラベルのPRとってくる'
  task notify: :environment do

    message = ""
    github_client.pull_requests('hoge/fuga').each do |pr|
      pr.rels[:issue].get.data.rels[:labels].get.data.each do |label|
        if label[:name] == 'レビュー中'
          message += "#{pr[:title]} : #{pr[:html_url]}\n"
        end
      end
    end

    if message.present?
      # お使いのチャットに通知する処理
      Api::Chatwork.new.post("[info][title]レビュー中ラベル (beer) 拾ってきたよー[/title]#{message}[/info]", ENV['HOGE_ROOM'])
    end

  end

  private

  def github_client
    Octokit::Client.new(:access_token => ENV['GITHUB_TOKEN'])
  end
end

あとは、2時間おきとかに動かして、お使いのチャットへ通知させておくとヨサソウです。

$ crontab -l

0 10,12,14,16,18 * * 1-5 /bin/bash -l -c 'cd /hoge_repo && RAILS_ENV=production bundle exec rake review_pr:notify --silent >> log/crontab.log 2>> log/crontab_error.log'

REF