スプレッドシートの内容を自動でGitHubにissueとして追加してみた
みなさん、お久しぶりです!
約1年半ぶりの記事投稿になります。
あの頃は学生でしたが、現在は社会人になって東京でエンジニアとして日々努力しています。
GitHubで複数のissueを作成するのは非常に手間なので、自動で作成する仕組みを作りたいと思います。
今回はGoogle App Script(GAS)を利用してスプレッドシートから作成します。
準備
まず、以下のページからトークンの発行をします。
注意としては、自分がオーナーであるリポジトリのトークンしか発行できないようです。
github.com
データ
今回は、以下のようなデータをissueとして追加します。
コーディング
変数「payload」にissueの情報を設定していますが、他にもパラメータを追加したい場合は、こちらのGitHub Developerのドキュメントを参照してください。
// GitHubの情報 var REPO = "レポジトリ名", OWNER = "オーナー名", ACCESS_TOKEN = "トークン"; function index() { var sheet = SpreadsheetApp.getActiveSheet(); values = sheet.getDataRange().getValues(); for (var i = 1; i < values.length; i++) { var payload = { "title": values[i][1], "body": values[i][2], "assignees": [ values[i][3] ], }; issueTickets(payload); } } // GitHubでチケットを発行する関数 function issueTickets(payload) { var url = "https://api.github.com/repos/"+ OWNER + "/" + REPO + "/issues"; var header = { "Authorization": "Basic " + Utilities.base64Encode(ACCESS_TOKEN), "Accept": "application/vnd.github.symmetra-preview+json", "Content-Type": "application/json", }; var options = { "method" : "post", "payload" : JSON.stringify(payload), "headers" : header, }; UrlFetchApp.fetch(url, options); }
GitHub
結果、こんな感じで正常に追加されています。
まとめ
これで、無駄な作業を減らして快適な開発をできるかと思います!