• ..

Shell

    GitHub API からあるリポジトリのファイル内容取得

    コード

    以下はとあるリポジトリのfoo.txtを取得しています。
    取得した内はbase64でエンコードされてるのでデコードが必要です。

    /**
     * `yarn add dotenv got`
     */
    
    require('dotenv').config();
    const got = require('got');
    
    (async () => {
      const {body} = await got(
        'https://api.github.com/repos/:owner/:repo/contents/foo.csv',
        {
          json: true,
          headers: {
            accept: 'application/vnd.github.v3+json',
            authorization: `token ${process.env.TOKEN}`
          }
        }
      );
    
      const decodedContent = Buffer.from(body.content, 'base64').toString();
      console.log(decodedContent);
    })().catch(err => {
      console.log(err);
    });

    .envにはTOKENを定義しておきます。

    TOKEN=xxx

    日本語ファイルを取得

    ファイルというか URL の日本語部分はパーセントエンコーディングします。テスト.csvを取得したいならこんな感じです。

    `https://api.github.com/repos/geekcojp/directory-maps/contents/${encodeURIComponent(
      'テスト'
    )}.csv`;

    過去の状態のファイルを取得

    URLの後ろにref={COMMIT_HASH || BRANCH || TAG}なParamをつけます。

    `https://api.github.com/repos/geekcojp/directory-maps/contents/${encodeURIComponent(
      'テスト'
    )}.csv?ref=fdbb18abe52965420c9c96b9502ddf14ba28dd7d`;

    Github から Personal Access Token の取得

    Settings -> 'Developer settings' -> 'Personal access tokens' から 'repository' にチェックを入れて生成