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

Override url when getting paginated results in octokit-js

我们必须通过代理访问我们的 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 企业当然不知道代理使用的是哪个端口。

是否有某种方式来传达端口(或完整的基础 URL),这将 return 一个有效的 link header 包括端口?或者我们只需要诉诸手动分页,parsing/modifying link header 根据需要?

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