コード
以下はとあるリポジトリの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' にチェックを入れて生成