问题描述
我们必须通过代理访问我们的 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。