Skip to content

Commit c86a5a1

Browse files
authored
Merge pull request #20156 from abitrolly/url-from-latest-release
create: detect URL from latest release if it isn't archive
2 parents b87d288 + 3e36e98 commit c86a5a1

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

Library/Homebrew/formula_creator.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ class FormulaCreator
1414
sig { returns(Version) }
1515
attr_reader :version
1616

17+
sig { returns(String) }
18+
attr_reader :url
19+
1720
sig { returns(T::Boolean) }
1821
attr_reader :head
1922

@@ -79,6 +82,9 @@ def initialize(url:, name: nil, version: nil, tap: nil, mode: nil, license: nil,
7982
latest_release = GitHub.get_latest_release(user, repository)
8083
version = Version.new(latest_release.fetch("tag_name"))
8184
odebug "github: version from latest_release: #{version}"
85+
86+
@url = "https://github.com/#{user}/#{repository}/archive/refs/tags/#{version}.tar.gz"
87+
odebug "github: url changed to source archive #{@url}"
8288
rescue GitHub::API::HTTPNotFoundError
8389
odebug "github: latest_release lookup failed: #{url}"
8490
end

Library/Homebrew/test/formula_creator_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
github_user_repository: ["buildpacks", "pack"],
4242
latest_release: { "tag_name" => "v0.37.0" },
4343
expected_name: "pack",
44+
expected_url: "https://github.com/buildpacks/pack/archive/refs/tags/v0.37.0.tar.gz",
4445
expected_version: "v0.37.0",
4546
},
4647
"GitHub URL with name override": {
@@ -69,6 +70,9 @@
6970
else
7071
expect(formula_creator.version).to be_null
7172
end
73+
if (expected_url = test[:expected_url])
74+
expect(formula_creator.url).to eq(expected_url)
75+
end
7276
expect(formula_creator.head).to eq(test.fetch(:expected_head, false))
7377
end
7478
end

0 commit comments

Comments
 (0)