RubyでGitHubをちょっと便利にする
2014年7月26日
第16回 岡山Ruby, Ruby on Rails勉強会
乃村研究室
乃村研の紹介
• 乃村研究室の岡田卓也と北垣千拡です
• 複数のプロジェクトを開発
• LastNote: 文書管理Webアプリケーション – Rails
• Encal: 未来予測カレンダ – Rails
• nomnichi: 研究室ブログ – Yesod (Haskell)
• コード管理・タスク管理ツールとしてGitHubを利用
してます!
2
僕らの使っているツール
3
議事録作成:Redmine
タスク管理:Redmine
コード管理:GitHub
議事録作成:GitHub wiki
タスク管理:GitHub
僕らの理想
4
コード管理:GitHub
就職後の現実(?)
5
議事録作成:Excel
タスク管理:Excel
コード管理:Excel
ここがダメだよ!GitHub
• Wikiの議事録にIssueと同じ事を書くのが苦痛
(Issue だけでは,見返しにくい)
• Issueの優先順位の管理が出来ない
(Product Backlog(PBL) 作成で問題)
• 議論の対象となるIssueの検索がしづらい
(Redmineは強力なチケット検索機能があった)
6
octaccord つくってみた
デモをご覧ください
7
octaccord
• octaccord
• oct君 (GitHub) と accord (調和)する
• 検索トップに出ます!
• 機能
• Itr議事録自動生成
• 注目すべきIssueに自動でラベル付け
• PBL管理
8
GitHubでの開発を支援!!
Itr議事録の自動生成
• create_iteration: 議事録のひな形を出力
• erbを利用して時刻等を埋め込み
• filter: Issueのコメントから議事録を自動生成
9
# Create Template
$ octaccord create_iteration nomlab/LastNote Itr0095 
--team="nomlab/GN" 
--start="2014-07-03T16:30:00+09:00" 
--due="2014-07-16T13:00:00+09:00" 
--manager="okada-takuya" 
--template=../octaccord/examples/Itr0095-sample0.md.erb 
> Itr0095-sample1.md
# Update Itr Record
$ octaccord filter < Itr0095-sample1.md > Itr0095-sample2.md
自動生成の仕組み
10
filterコマンド実行
• コメントアウトされたコマンドを実行
自動でIssueにラベル付け
• update_issues: ラベル付け
• scan で取得した該当Issueに対してラベル付け
11
# Labeling
$ octaccord update_issues nomlab/LastNote --add-label=incoming 
$(octaccord scan nomlab/LastNote 
--search=“created:>2014:07-03T15:00:00+09:00 --format=number)
PBL管理
• 「PBL」ラベルをIssueに付けておくと;
• Issue 中のStory, Demo, Cost の項目からPBL
(Wiki のテーブル)を自動作成
• 優先順序変更 = テーブルの行を入れ替えるだけ
12
# Update Product Backlog
$ octaccord filter < Product-Backlog.md > new-Product-Backlog.md
おわりに
• https://github.com/nomlab/octaccord で公開中!
• ぜひご利用を!
• そしてぜひPull requestを!
13

RubyでGitHubをちょっと便利にする

Editor's Notes

  • #4 Redmineやgithubでうちらがやってた管理方法 一般的なExcelでのPBL管理,進捗管理 議事録
  • #5 Redmineやgithubでうちらがやってた管理方法 一般的なExcelでのPBL管理,進捗管理 議事録
  • #6 Redmineやgithubでうちらがやってた管理方法 一般的なExcelでのPBL管理,進捗管理 議事録
  • #7 僕たちは打合せのとき,Issueをひとつひとつ見ていって議論内容をその都度Issueにコメントしていくんですけどー,という前置き
  • #8 デモ1 生成したWikiページを見せここがこのように変化するという話をする デモ2 ラベルの自動貼付けのテストをする. 例えば,確認すべきIssueを分類するためにincomingを付与とか. 時間があれば剥がしても良い. デモ3 PBLの表を見せる. 一番上のIssueにジャンプし,ここに書いてあるStory,Demo,Costが自動で反映されるので, PBLのテーブルでは優先順位だけを変更して管理すれば良い事を述べる.
  • #10 ここで何も埋めてないTemplateと,埋めたテンプレートを見せると良い.