カテゴリー内の他の記事

GitHubリポジトリの訪問数をkintoneに記録しよう

フォローする

(著者:サイボウズ 竹内 能彦)

はじめに

cybozu developer network でも GitHub の活用シーンが増えてきました。

リポジトリを公開すると気になるのは訪問数です。GitHub ではリポジトリの訪問数を取得できますが、直近2週間しか取得できません。
そこで kintone と AWS Lambda を使って、GitHub リポジトリの訪問数を kintone に定期的に記録するサンプルを作りました。

定期的に実行するために AWS Lambda を利用します。
また、Lambda 関数の作成に Node.js 環境が必要ですのでご注意ください。

大きな処理の流れは以下の通りです。

overall.png

 

では早速準備に取り掛かりましょう。

1. kintone 設定

kintone アプリの作成

フィールド名

フィールドタイプ フィールドコード 備考
プロジェクト 文字列(1行) project  
年月日 日付 date  
訪問数 数値 count  
ユニーク訪問数 数値 uniques  

 

APIトークンの発行

「アプリの設定 > APIトークン」で、レコード閲覧、レコード追加が可能なAPIトークンを発行します。
kintone に追加するデータが重複しないようにレコード閲覧権限も必要です。

 

2. GitHub 設定

GitHub アカウントの作成

下記URLから、GitHub アカウントを作成します。GitHub アカウントを取得済みの方はログインしてください。
https://github.com/

 

Personal access tokenの作成

AWS Lambda から GitHub API を利用するために必要な作業になります。
下記URLにアクセスして新しい Personal access token を作成します。
https://github.com/settings/tokens

Token description には適当な値を、Select scopes には public_repo を設定します。
Token となるキーは作成時にしか確認できませんので忘れずにメモしてください。

GitHub1.png

 

 

3. Lambda 関数の実行ファイル作成

Node.js をインストールした環境での作業になります。

以下のサンプルコードをファイル名「index.js」で保存します。

9~11行目に kintone のドメイン、アプリID、API トークンを設定します。

14~16行目に訪問数を取得したいリポジトリのオーナー名、リポジトリ名、先ほど作成した Personal access token を設定します。
(訪問数を取得するにはそのリポジトリの管理者権限が必要になります)
https://github.com/kintone/kintoneUtility の場合、オーナー名は「kintone」、リポジトリ名は「kintoneUtility」になります。

以下のコマンドを実行して、モジュールのインストール、ZIPファイル(Lambda 関数の実行ファイル)を作成します。
ZIPコマンドでエラーが発生した場合は、階層にファイル「index.js」とディレクトリ「node_modules」が存在するか確認してください。

 

4. AWS 設定

AWS アカウントの作成

下記URLを参考に AWS アカウントと管理者ユーザーを作成します。AWS アカウントを取得済みの方はログインしてください。
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/setting-up.html

 

実行ロールの作成

下記URLを参考に Lambda を実行するロールを作成します。
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/with-s3-example-create-iam-role.html

今回はロール名は「AWSLambdaExecute(例)」で作成しました。

lambda1.png

 

Lambda の設定

新規関数を作成します。
設計図はブランク関数を選択します。

lambda2.png

 

トリガーには CloudWatch を設定します。
「ルール名」、「ルールの説明」適当な値を、「スケジュール式」には「rate(1 day)」を設定します。

lambda3.png

 

「名前」は適当な値を設定します。
「ランタイム」はNode.js 6.10を選択します。
「関数パッケージ」には先ほど作成したGitHub-to-kintone.zip(Lambda 関数の実行ファイル)をアップロードします。

lambda4.png

 

「ハンドラ」はindex.handlerを、「ロール」は先ほど作成したロールを設定します。
詳細設定の「タイムアウト」には少し余裕をみて20秒を設定します。

lambda5.png

 

実行

実行すると kintone にデータが登録されました。
また、AWS Lambda の機能で毎日データが登録されるので過去の訪問数も確認できますね。

result1.png result2.png

 

終わりに

GitHub 非常に楽しいですね。
訪問数の増加が確認できればコード更新のモチベーションにも繋がりそうです。減少したら・・・Orz

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

ログインしてコメントを残してください。
Powered by Zendesk