Metahub for github

8,998 views

Published on

Introduction of metahub as a github utility.
TechHills #5 "Go to Git!"

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,998
On SlideShare
0
From Embeds
0
Number of Embeds
5,439
Actions
Shares
0
Downloads
13
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Metahub for github

  1. 1. metahub for github ―git移行のその先にあるもの― KLab株式会社  Engineering Manager 於保 俊Engineering Manager 牧内 大輔
  2. 2. 自己紹介於保 俊(おほ すぐる) 牧内 大輔(まきうち だいすけ)FB 於保 俊(suguruoho) FB 牧内大輔Twitter @ohomagic Twitter @makki_dgithub oho-sugu github makiuchi-d (makki_d)モバイルオンラインゲーム開発 モバイルオンラインゲーム開発PHP/Java 画像合成ライブラリ KGDBZip2途中から解凍 C/C++/PHP何でも屋 国内SNSのトラブル対策要員git抵抗勢力→gitすげぇ 社内WARUDAKUMI同盟
  3. 3. 今日のおはなし1. SVN2github  その歴史(ダイジェスト版)2. いっぱいリポジトリあって大変!3. metahubの紹介
  4. 4. metahub前夜 ―KLabでのDVCS導入―● はじまりはSVN(有史以前はCVS?) ○ intra(社内)→cloud(AWS) 置いてある場所を変えた● bazzarの普及   SVNに近い使い勝手の DVCSとして ○ 案件サーバー上にリポジトリ● リポジトリ管理体制の構築とgit+githubの導入 ○ 案件リポジトリを一箇所にまとめよう ○ git+github使いたい● bitbucketとgithubの蜜月 ←今ここから~● githubからgithub:Enterpriseへ ←ここら辺
  5. 5. 現状:増える、リポジトリ(github上)
  6. 6. 課題:増える、レビュー要請僕達=Engineering Manager=案件横断で社内の技術的なサポート・意思決定偉い人「全案件、ちゃんと”レビュー”しといてね!」github推進派「ソーシャルコーディングならレビューがちゃんとできるよ!」
  7. 7. こんだけあったら無理だろjk
  8. 8. 気を取り直して・・・
  9. 9. 分析:KLabのリポジトリの特徴● 結構案件数多い● 案件間の差異が比較的少ない● ベースとしているFWはほぼ同じ→似かよったリポジトリがいっぱい
  10. 10. 考察:なんか、自動化できないかなヤバいコードって、パターンあるよね● typoとか・・・● インジェクションされそうなSQLの組立とか● ORDER BY RAND()だったり● フレームワークのコアに手を入れてたり● 呼んじゃいけないメソッド呼んでたり
  11. 11. 考察:PullRequestをフィルタリングしようgithubのPullRequestを監視したらいいんじゃね?● PRがレビューしやすい粒度● PRのクローラ作って、パターンマッチで検出・フィルタリング● レビューによるソースコードの品質の維持         metahub
  12. 12. と、いうわけで作ってみました
  13. 13. githubにはAPIがあるらしい● APIでできること (http://developer.github.com/v3/) ○ commit, tagの取得・作成 ○ Issueの作成・取得・変更 ○ PullRequestの作成・取得・編集・マージ ○ 各種コメントの作成・取得・編集 ○ User・Organizationの管理 ○ Issue・Repository・Userなどの検索 ○ などなど→わりとなんでもできる
  14. 14. とりあえずたたいてみたHTTPSでアクセスするだけ ● Privateなリポジトリもaccess_tokenを付ければOK$ curl https://api.github.com/repos/KLab/metahub/pulls?access_token=********************[ { "url": "https://api.github.com/repos/KLab/metahub/pulls/1", "id": 4709109, "html_url": "https://github.com/KLab/metahub/pull/1", "diff_url": "https://github.com/KLab/metahub/pull/1.diff", "patch_url": "https://github.com/KLab/metahub/pull/1.patch", "issue_url": "https://github.com/KLab/metahub/issues/1", "number": 1, "state": "open", "title": "pull requestの内容表示ページ ", "user": { "login": "makiuchi-d", ......
  15. 15. あとは作るだけ1. APIでPullRequest取得2. パターンマッチして蓄積3. まとめて表示
  16. 16. こんなバグが釣れた!
  17. 17. よくあるtypo × regist ○ register
  18. 18. よくあるtypo × ture ○ true
  19. 19. よくあるtypo × peoole ○ people
  20. 20. typo以外にも......パターン: "WHERE" の後ろに変数レビュー: SQLインジェクション
  21. 21. typo以外にも......パターン: Slave DBへの接続コードレビュー: Slaveの値でMaster更新
  22. 22. 今日も続々と釣り上げ中......
  23. 23. 最後に gitもgithubも強力で便利です githubにはAPIもあります 工夫次第でもっと便利に!
  24. 24. もっと詳しくKLab若手エンジニアブログ http://young.blog.jp.klab.com/githubにて公開中 https://github.com/KLab/metahub
  25. 25. ついでに宣伝DSAS開発者の部屋 gitでバイナリファイルを 気軽に扱えるフィルターを作りました @methanehttp://dsas.blog.klab.org/archives/52105107.html
  26. 26. ご清聴ありがとうございました

×