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