Top View


Author uchida

Probot GithubAppsでリポジトリごとの設定ファイルを取得する

2018/11/13

やること・つかうもの

やること

  • GithubAppsでリポジトリ固有の設定ファイルをロードする

つかうもの

やってみる

  • /.github/xxxx.yml に設定ファイルを設置する
  • Probot側でアプリ実行時に設定ファイルをロードする

設定ファイルの設置

GithubAppsから参照可能な設定ファイルとして、/.github にyamlファイルを設置します
今回は例として、githubユーザ名とSlackユーザ名の対応表だとします。

/.github/fusic.yml

slack_names:
    tutida : uchida

設定ファイルをロードしてみる

index.js

module.exports = app => {
  app.on('issues.opened', async context => {
    const config = await context.config('fusic.yml', {slack_names: []})
    console.log(config)
  })
}

読み込んたyamlファイルがjson形式で利用できるようになります。

{
  "slack_names": {
    "tutida": "uchida"
  }
}

Probotのconfig()メソッドを利用して/.githubにあるファイルをロードすることが可能です。
また、第二引数にデフォルト値を設定できるので、ファイルがない場合、必要な設定値がない場合の挙動も制御可能です。
Probotのドキュメント

おわりに

GithubAppsで設定ファイルをロードするための小さなチップスでした。
リポジトリごとに挙動や値を変えたいことは多々あると思うので、設定ファイルがあることを前提をした挙動であることが望ましいなーと最近作ってて思います。

開発効率化委員会の現場からは以上です。

uchida

uchida

福岡でWebエンジニアやってます。PHP, クラウド, インフラあたりが好き。