Merge "fix(libfetchers): set GitHub API version header, closes #255" into main
This commit is contained in:
commit
72292671a9
|
@ -78,6 +78,9 @@ jade:
|
|||
forgejo: jade
|
||||
github: lf-
|
||||
|
||||
kiara:
|
||||
github: KiaraGrouwstra
|
||||
|
||||
kjeremy:
|
||||
github: kjeremy
|
||||
|
||||
|
|
23
doc/manual/rl-next/x-github-api-header.md
Normal file
23
doc/manual/rl-next/x-github-api-header.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
synopsis: "Set `X-GitHub-Api-Version` header"
|
||||
issues: [fj#255]
|
||||
cls: [1925]
|
||||
category: Development
|
||||
credits: kiara
|
||||
---
|
||||
|
||||
Sets the `X-GitHub-Api-Version` header to `2022-11-28` for calls to the
|
||||
GitHub API.
|
||||
This follows the later version as per
|
||||
https://docs.github.com/en/rest/about-the-rest-api/api-versions?apiVersion=2022-11-28.
|
||||
|
||||
This affected the check on whether to use the API versus unauthenticated
|
||||
calls as well, given the headers would no longer be empty if the
|
||||
authentication token were missing.
|
||||
The workaround to this used here is to use a check similar to an existing
|
||||
check for the token.
|
||||
|
||||
In the current implementation, headers are (still) similarly sent to
|
||||
non-authenticated as well as GitHub on-prem calls.
|
||||
For what it's worth, manual curl calls with such a header seemed to
|
||||
break nor unauthenticated calls nor ones to the github.com API.
|
|
@ -289,10 +289,10 @@ struct GitHubInputScheme : GitArchiveInputScheme
|
|||
// urls so we do not run into rate limits.
|
||||
const auto urlFmt =
|
||||
host != "github.com"
|
||||
? "https://%s/api/v3/repos/%s/%s/tarball/%s"
|
||||
: headers.empty()
|
||||
? "https://%s/%s/%s/archive/%s.tar.gz"
|
||||
: "https://api.%s/repos/%s/%s/tarball/%s";
|
||||
? "https://%s/api/v3/repos/%s/%s/tarball/%s"
|
||||
: !getAccessToken(host)
|
||||
? "https://%s/%s/%s/archive/%s.tar.gz"
|
||||
: "https://api.%s/repos/%s/%s/tarball/%s";
|
||||
|
||||
const auto url = fmt(urlFmt, host, getOwner(input), getRepo(input),
|
||||
input.getRev()->to_string(Base::Base16, false));
|
||||
|
@ -308,6 +308,13 @@ struct GitHubInputScheme : GitArchiveInputScheme
|
|||
.applyOverrides(input.getRef(), input.getRev())
|
||||
.clone(destDir);
|
||||
}
|
||||
|
||||
Headers makeHeadersWithAuthTokens(const std::string & host) const
|
||||
{
|
||||
Headers headers = GitArchiveInputScheme::makeHeadersWithAuthTokens(host);
|
||||
headers.emplace_back("X-GitHub-Api-Version", "2022-11-28");
|
||||
return headers;
|
||||
}
|
||||
};
|
||||
|
||||
struct GitLabInputScheme : GitArchiveInputScheme
|
||||
|
|
Loading…
Reference in a new issue