build-support/fetchgitlab: remove throwIfNot usage
This commit is contained in:
@@ -64,43 +64,46 @@ lib.makeOverridable (
|
||||
fetcher = if useFetchGit then fetchgit else fetchzip;
|
||||
|
||||
privateAttrs = lib.optionalAttrs private (
|
||||
lib.throwIfNot (protocol == "https") "private token login is only supported for https" {
|
||||
netrcPhase = ''
|
||||
if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then
|
||||
echo "Error: Private fetchFromGitLab requires the nix building process (nix-daemon in multi user mode) to have the ${varBase}USERNAME and ${varBase}PASSWORD env vars set." >&2
|
||||
exit 1
|
||||
fi
|
||||
''
|
||||
+ (
|
||||
if useFetchGit then
|
||||
# GitLab supports HTTP Basic Authentication only when Git is used:
|
||||
# https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#project-access-tokens
|
||||
''
|
||||
cat > netrc <<EOF
|
||||
machine ${domain}
|
||||
login ''$${varBase}USERNAME
|
||||
password ''$${varBase}PASSWORD
|
||||
EOF
|
||||
''
|
||||
else
|
||||
# Access via the GitLab API requires a custom header and does not work
|
||||
# with HTTP Basic Authentication:
|
||||
# https://docs.gitlab.com/ee/api/#personalprojectgroup-access-tokens
|
||||
''
|
||||
# needed because fetchurl always sets --netrc-file if a netrcPhase is present
|
||||
touch netrc
|
||||
if protocol != "https" then
|
||||
throw "private token login is only supported for https"
|
||||
else
|
||||
{
|
||||
netrcPhase = ''
|
||||
if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then
|
||||
echo "Error: Private fetchFromGitLab requires the nix building process (nix-daemon in multi user mode) to have the ${varBase}USERNAME and ${varBase}PASSWORD env vars set." >&2
|
||||
exit 1
|
||||
fi
|
||||
''
|
||||
+ (
|
||||
if useFetchGit then
|
||||
# GitLab supports HTTP Basic Authentication only when Git is used:
|
||||
# https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#project-access-tokens
|
||||
''
|
||||
cat > netrc <<EOF
|
||||
machine ${domain}
|
||||
login ''$${varBase}USERNAME
|
||||
password ''$${varBase}PASSWORD
|
||||
EOF
|
||||
''
|
||||
else
|
||||
# Access via the GitLab API requires a custom header and does not work
|
||||
# with HTTP Basic Authentication:
|
||||
# https://docs.gitlab.com/ee/api/#personalprojectgroup-access-tokens
|
||||
''
|
||||
# needed because fetchurl always sets --netrc-file if a netrcPhase is present
|
||||
touch netrc
|
||||
|
||||
cat > private-token <<EOF
|
||||
PRIVATE-TOKEN: ''$${varBase}PASSWORD
|
||||
EOF
|
||||
curlOpts="$curlOpts --header @./private-token"
|
||||
''
|
||||
);
|
||||
netrcImpureEnvVars = [
|
||||
"${varBase}USERNAME"
|
||||
"${varBase}PASSWORD"
|
||||
];
|
||||
}
|
||||
cat > private-token <<EOF
|
||||
PRIVATE-TOKEN: ''$${varBase}PASSWORD
|
||||
EOF
|
||||
curlOpts="$curlOpts --header @./private-token"
|
||||
''
|
||||
);
|
||||
netrcImpureEnvVars = [
|
||||
"${varBase}USERNAME"
|
||||
"${varBase}PASSWORD"
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
gitRepoUrl = "${protocol}://${domain}/${slug}.git";
|
||||
|
||||
Reference in New Issue
Block a user