Skip to content

Instantly share code, notes, and snippets.

@ota42y
Created May 31, 2017 10:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ota42y/0eddfa230e82df902c2e8b532cb453be to your computer and use it in GitHub Desktop.
Save ota42y/0eddfa230e82df902c2e8b532cb453be to your computer and use it in GitHub Desktop.
# 環境変数GITHUB_TOKENの設定が必要
# LABEL_NAMEに設定した名前のラベルをIssueに付けて作成する
# Issueの名前はrubocopのルールの名前と完全に一致する
# old_rubocop_rule.ymlの中に同じルールがあった場合はその内容をbodyに加える
require 'yaml'
require 'octokit'
LABEL_NAME = 'rubocop-auto-config'
client = Octokit::Client.new(:access_token => ENV['GITHUB_TOKEN'])
rubocop_todo = YAML.load(open('.rubocop_todo.yml').read)
old_rubocop = YAML.load(open('old_rubocop_rule.yml').read)
repo = 'username/reponame'
options = Hash.new
options[:labels] = LABEL_NAME
cops = rubocop_todo.keys
cops.each do |cop|
old = old_rubcop[cop]
now = rubocop_todo[cop]
body_ar = []
body_ar << "# now\n" + now.map{|k, v| "## #{k} \n #{v}"}.join("\n")
body_ar << "# old rubocop\n" + old.map{|k, v| "## #{k} \n #{v}"}.join("\n") if old
client.create_issue(repo, cop, body_ar.join("\n"), options)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment