TORIPIYO DIARY

recent events, IoT, programming, security topics

Ruby Gemのoctokitを利用してGitHub Issueを作成する

仕事でGitHub Issueを作成するRubyプログラムを書く機会があったので、必要最小限の要素だけ取り出したものをまとめてみます。

GitHub用のアクセストークンの発行

RubyプログラムからGitHub Issueを作成するには、まずGitHubのサイトから、アクセストークンを取得する必要があります。アクセストークンの取得方法は、いろんなサイトで公開されているので、適当なものを参照してください。

help.github.com

アクセストークンに付与する権限ですが、Issueを発行する権限がどれになるのかいまいちよく分からなかったのですが、repo Full control of private repositories にチェックを入れてアクセストークンを発行すれば、プライベートレポジトリでもIssueを作成することが出来ました。特定のレポジトリだけにこの権限を絞り込む方法も調べてみたのですが、調べた限りではよくわかりませんでした。

f:id:ha107chan:20200329112918p:plain
access token authorization sample

このアクセストークンは、GitHubの操作のための鍵となる情報なので、秘密にしておかないといけません。外部への公開は絶対してはいけません。

octokit gemのインストール

octokit gemをインストールします。octokitは、GitHub APIに繋ぐためのクライアントツールです。

gem install octokit

github.com

GitHub Issueを発行するプログラムを作成

以下は、jsonファイル(data.json)からデータを読み込んで、その読み込んだデータを利用してGitHub Issueを発行するスクリプトの例です。

  • access_token には、自分のアクセストークン値を代入
  • repo_name には、Issueを紐づけたいレポジトリ名を代入
  • ヒアドキュメントを利用して、チケットのbody(本文)に挿入する文字列を作成
  • "Greeting Message"というラベルを挿入

Rubyスクリプトの実行

これで、以下のように作成したRubyスクリプトを実行すれば、

ruby create_github_issue_sample.rb

自分の好きなレポジトリに、GitHubチケットを作成できます。

f:id:ha107chan:20200329113009p:plain
ticket sample