TORIPIYO DIARY

recent events, IoT, programming, security topics

Google SpreadSheetの選択範囲の情報からGitHub Issueを作成する

Google SpreadSheetの選択範囲の情報から、GitHub Issueを作成するApps Scriptを作りました。

  1. 以下のようにGoogle SpreadSheetを用意する。

    f:id:ha107chan:20210929223650p:plain
    Google SpreadSheet

  2. 以下↓のコードを↑で作ったSpreadSheetに紐づくようにApps Scriptにコピペする。

    • ツール -> スクリプトエディタ からApps Scriptを作成する。
    • organization_namerepository の変数の値は自分の環境に合うように修正すること。
    • 他のGoogleユーザがこのSpreadSheetにアクセスしてもパーソナルアクセストークンの値を取得できないように、User Propertiesにパーソナルアクセストークンを保存しています。しかし、スクリプトの内容を書き換えられてしまうと、パーソナルアクセストークンをどこか別のサーバに送信することも出来てしまうと思うので、出来るのであれば自分以外のユーザーはコードを書き換えられないようにしたほうが良いです。

    gist.github.com

    f:id:ha107chan:20210929224015p:plain
    Apps Scriptの作成例

  3. GitHubからパーソナルアクセストークンを取得する。

    • https://github.com/settings/tokens
      • パーソナルアクセストークンは絶対に絶対に他人と共有しないこと!!!!情報漏洩に繋がります。
      • セキュリティのためにパーソナルアクセストークンには有効期限を設定する。
      • scopeは、repoを選択する。
        f:id:ha107chan:20210929224734p:plain
        personal access token設定例
    • GitHub -> remove Token からスプレッドシートに設定したパーソナルアクセストークンを削除できるので、Issueの作成が終わったら remove Token を実行しておくとより安全です。
  4. SpreadSheetの GitHub -> set Token から取得したパーソナルアクセストークンを設定

    • 承認を求められたら、アクセスを許可するように設定する。
      f:id:ha107chan:20210929225638p:plain
      ここにパーソナルアクセストークンを入力する
  5. Issueを作成したい行を選択して GitHub -> create Issue を実行する。

    • ちなみに、複数行を選択すると、それぞれの行の内容に対応した複数のIssueが作成されます。
      f:id:ha107chan:20210929225847p:plain
      Issueを作成したい行を選択してから実行すること
  6. 目的のレポジトリでIssueが作成されたことを確認する。

    f:id:ha107chan:20210929230047p:plain
    作成されたIssue例

  7. 参考