【レポート】GitHub Constellation Conference:LINEにおけるGitHub Enterpriseの活用事例とLINE Notifyについて #githubconstellation

はじめに

本記事はGitHub Constellation Conferenceのセッション、「LINEにおけるGitHub Enterpriseの活用事例とLINE Notifyについて」のレポートです。

レポート

スピーカーはLINE株式会社の長谷部 良輔さん。

DSC00655

自己紹介

開発3センター サービス開発1室。
2013年入社、入社後しばらくはゲーム開発に関わり、最近はLINE BOT系サービスの開発をしている。

LINEにおけるGitHub Enterpriseの活用事例

LINEではGitHubをがっつり使っている。
2012年からGitHubを利用開始。
どうしてGitHub Enterpriseを導入したのか。
 Subversionから移行したかった。
  当時からエンジニアは個人ではGitHubを使っていたが、会社の資産のリポジトリとしてGitHubを難しかった。
 エンジニアなら誰でも社内のソースコードが読めるようになった。
  気になるライブラリの社内利用事例を参照するなど。
 コードレビュー大事。
  Pull Requestによってコードレビューが簡単に。
 これだけなら他のツールでも出来る。でも開発者はみんなGitHubが好き。
  好きなツールを日々使えるのはテンションが上がる。
  なのでGitHub Enterpriseを採用した。
LINEのGitHub Enterpriseのリポジトリ数は14,265(2017年5月時点)
 リポジトリの内訳は、Organizationが4850、Userが9415。
 サービスに関わるリポジトリは必ずOrganizationで作成している。
 Userが多いのは気軽にリポジトリをCloneしたりしているから。
 リポジトリの増加傾向。年々増加。
Userのアカウントが1350、Organizationのアカウントが293。
 Userも年々増加。
リポジトリで使われている言語の割合。
 一番多いのがJava。
  LINEのサーバーサイドはJavaが多い。一部Scala。
  AndroidもJavaでカウントされている。
 JavaScriptが2位。
  LINEはネイティブアプリだけでなく、Webのサービスも多くある。
 3位はPython。社内のスクリプトで良く使われている。
 SwiftよりObjective-Cが多いが、最近はSwiftが採用されており、1年くらいで逆転すると思われる。

DSC00656

LINEのアプリのサーバー側のリポジトリ。
 現在までに8000を超えるPR、15000のコミット。
GitHub Enterpriseと連携するサービスについて。
 チケット管理はJIRA。JIRAのプラグインでGithubと連携。
 CIはJenkins。GItHubにPRやpushがあればJenkinsでテストしている。
 CIの結果はLINE NotifyやHipchatで通知。
  プロジェクトによって使っているチャットツールが違う。
  GitHubのNotificationも同じように通知している。

LINE Notifyについて

LINE DEVELOPER DAY 2016で公開したサービス。
簡単に無料でLINEにメッセージを送れるサービス。
curlでサクッと送れる。
使い方は2パターン。Oauth2連携で使用するか、HTTPS APIで叩くか。
 IFTTT、MackerelなどでOauth2連携が使われている。
 HTTPS APIでは、例えば売り切れの商品の入荷を知らせるなどで使っている人がいる。
本当に簡単なのか?簡単です。
 LINEにログインしてトークンを発行。
 送信先として自分またはLINEグループを選択。
 curlでトークン付きでAPIをPOSTするとメッセージが送信される。
 テキスト以外の画像やスタンプを送信することも出来る。

LINE NotifyとGithub.comとの連携

GitHubのWebHookからLINE Notifyに投げてBOT platformのMessaging APIを呼び出しメッセージを送信。
GitHubとLINE NotifyはOauth2で連携。
IssueやPRがあるとLINEグループに通知されるので素早くアクションが出来る。
GitHub Enterpriseでも使えるのか?
 各社内で閉じた環境で動いているため、LINE Notifyにアクセスするのは難しい。
 ghe-line-notify。LINE Notifyのためのゲートウェイ。
  LINE社内サーバーに立てて、共有して使っている。

さいごに

LINE Notifyはぜひ試してみたいです。