チャットからPull Request & Merge

Ellen::GitHubという、 ChatterBotフレームワークのEllenに、チャット経由でGitHubを操作できる機能を加えるためのプラグインをつくった。 今のところこういう機能がある。

  • Access Tokenを登録する
  • Issueを作成する
  • IssueをCloseする
  • Pull Requestを作成する
  • Pull RequestをMergeする

Access Token

GitHub上で操作を行うにはアクセストークンが必要。 Ellenは命令を発した発言主によって別々のアクセストークンを利用するようになっている。 「@ellen remember my github token XXX」と発言すれば、発言主のアクセストークンを覚えておいてくれる。 アクセストークンは https://github.com/settings/applications からGenerate new tokenをクリックすると作成できる。 みんなが見ているチャットでアクセストークンを発言するのはリスクが高いので、Ellenと1対1チャットを開いて教えるのが良いだろう。 Ellenの記憶は標準ではメモリ上に載っているだけなので友達との思い出のように揮発してしまうが、Ellen::Redisを使えばRedisに永続化しておいてくれる。

Pull Request

「@ellen pull request "Support Windows" from r7kamura/ellen:windows to r7kamura/ellen:master」 と発言すれば、r7kamura/ellenレポジトリのwindowsブランチからmasterブランチに対してPull Requestが作成される。 加えて「@ellen merge r7kamura/ellen#20」と発言すれば、20番のPull RequestをMergeできる。

様子