Merge pull request #13313 from UiP9AV6Y/feature_decouply_auth_info

decouple authentication information from HOMEBREW_ARTIFACT_DOMAIN
This commit is contained in:
Mike McQuaid 2022-05-23 07:26:12 -04:00 committed by GitHub
commit 0667aa6aa6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 2 deletions

View File

@ -820,10 +820,10 @@ then
export GIT_SSH_COMMAND="ssh -F${HOMEBREW_SSH_CONFIG_PATH}" export GIT_SSH_COMMAND="ssh -F${HOMEBREW_SSH_CONFIG_PATH}"
fi fi
if [[ -n "${HOMEBREW_ARTIFACT_DOMAIN}" && -n "${HOMEBREW_DOCKER_REGISTRY_TOKEN}" ]] if [[ -n "${HOMEBREW_DOCKER_REGISTRY_TOKEN}" ]]
then then
export HOMEBREW_GITHUB_PACKAGES_AUTH="Bearer ${HOMEBREW_DOCKER_REGISTRY_TOKEN}" export HOMEBREW_GITHUB_PACKAGES_AUTH="Bearer ${HOMEBREW_DOCKER_REGISTRY_TOKEN}"
elif [[ -n "${HOMEBREW_ARTIFACT_DOMAIN}" && -n "${HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN}" ]] elif [[ -n "${HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN}" ]]
then then
export HOMEBREW_GITHUB_PACKAGES_AUTH="Basic ${HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN}" export HOMEBREW_GITHUB_PACKAGES_AUTH="Basic ${HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN}"
else else

View File

@ -0,0 +1,50 @@
# typed: false
# frozen_string_literal: true
require "download_strategy"
describe CurlGitHubPackagesDownloadStrategy do
subject(:strategy) { described_class.new(url, name, version, **specs) }
let(:name) { "foo" }
let(:url) { "https://#{GitHubPackages::URL_DOMAIN}/v2/homebrew/core/spec_test/manifests/1.2.3" }
let(:version) { "1.2.3" }
let(:specs) { {} }
describe "#fetch" do
before do
strategy.temporary_path.dirname.mkpath
FileUtils.touch strategy.temporary_path
end
it "calls curl with anonymous authentication headers" do
expect(strategy).to receive(:system_command).with(
/curl/,
hash_including(args: array_including_cons("--header", "Authorization: Bearer QQ==")),
)
.at_least(:once)
.and_return(instance_double(SystemCommand::Result, success?: true, stdout: "", assert_success!: nil))
strategy.fetch
end
context "with Github Packages authentication defined" do
let(:authorization) { "Bearer dead-beef-cafe" }
before do
HOMEBREW_GITHUB_PACKAGES_AUTH = authorization.freeze
end
it "calls curl with the provided header value" do
expect(strategy).to receive(:system_command).with(
/curl/,
hash_including(args: array_including_cons("--header", "Authorization: #{authorization}")),
)
.at_least(:once)
.and_return(instance_double(SystemCommand::Result, success?: true, stdout: "", assert_success!: nil))
strategy.fetch
end
end
end
end