1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GASとGitHubAPIで誰もアサインされていないissue一覧を出力する

Posted at

やりたいこと

誰もアサインされていないissueが溜まっていくので整理しようぜ。
GAS(GoogleAppsScript)でGitHubAPIを叩き、該当のissueをスプレッドシートに出力する。

GitHubAPIを使う準備

  • GitHubでアクセストークンを作成
  • settings > Developer settings > Personal access tokens
  • 「Generate new token」 ボタン押下
    • Note: 好きな名前
    • Select scopes: repoにチェック
  • 作成後、表示されたアクセストークンを保存

APIのURLを確認

APIのURL
GET /repos/:owner/:repo/issues

Parameters

  • assignee: none
  • state: open

GASを作成

issue.gs
function issue() {
  // GitHub アクセストークン
  var GITHUB_ACCESS_TOKEN = 'xxxxxx';
 // GitHub 組織名
  var GITHUB_OWNER = 'xxxxxx';
 // GitHub リポジトリ
  var GITHUB_REPO = 'xxxxxx';
  // API URL
  var GITHUB_API_URL = 'https://api.github.com/repos/' + GITHUB_OWNER + '/' + GITHUB_REPO + '/issues?assignee=none&state=open';
  // 出力するシートID
  var SHEET_ID = 'xxxxxxx';
  // 1pageのissue数
  var page_num = 30;
  var max_page = 100;
  
  var ss = SpreadsheetApp.openById(SHEET_ID);
  var sheet = ss.getSheets()[0];
  
  for(var page_cnt = 0; page_cnt < max_page; page_cnt++) {
    // APIアクセス
    var header = {
      "Authorization" : "token " + GITHUB_ACCESS_TOKEN
    };  
    var options = {
      "headers" : header,
    }
    var url = GITHUB_API_URL + "&page=" + (page_cnt+1);
    
    var response = UrlFetchApp.fetch(url, options);
    var issues = JSON.parse(response.getContentText());
    if (issues.length == 0) {
      break;
    }
    
    for(var index = 0; index < issues.length; index++) {
      var rows = index + 2 + page_cnt * page_num;
      // ID,件名,登録日
      sheet.getRange(rows, 1).setValue(issues[index]['number']);
      sheet.getRange(rows, 2).setValue(issues[index]['title']);
      sheet.getRange(rows, 3).setValue(issues[index]['created_at']);
      
    }
  }
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?