在 octokit-js 中获取分页结果时覆盖 url

问题描述

我们必须通过代理访问我们的 GHE 实例,这需要将端口号添加到 URL。我们创建一个 Octokit 实例,如

new Octokit({
    baseUrl: 'https://api.github.mycompany.com:5000',...
}

然后我们得到页面迭代器

Octokit.paginate.iterator(
  Octokit.rest.repos.listCommits,{ ...options,per_page: 100 }
)

第一页正常,但后续页面失败。

HttpError: request to https://api.github.mycompany.com/repositories/1/commits?sha=HEAD&per_page=100&page=2 Failed

注意缺少端口。这并不让我感到惊讶,因为 GitHub Enterprise 当然不知道代理使用的是哪个端口。

是否有某种方式来传达端口(或完整的基本 URL),它将返回一个包括端口在内的有效链接标头?还是我们只需要手动分页,根据需要解析/修改链接头?

解决方法

我们找到的解决方案是在 request.fetch 构造函数选项上覆盖 Octokit,以便可以根据需要重写 URL。