Module: Dependabot::Utils::Go::PathConverter
- Defined in:
- lib/dependabot/utils/go/path_converter.rb
Class Method Summary collapse
- .git_url_for_path(path) ⇒ Object
-
.git_url_for_path_without_go_helper(path) ⇒ Object
Used in dependabot-backend, which doesn’t have access to any Go helpers.
Class Method Details
.git_url_for_path(path) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/dependabot/utils/go/path_converter.rb', line 14 def self.git_url_for_path(path) # Save a query by manually converting golang.org/x names import_path = path.gsub(%r{^golang\.org/x}, "github.com/golang") SharedHelpers.run_helper_subprocess( command: Go::SharedHelper.path, function: "getVcsRemoteForImport", args: { import: import_path } ) end |
.git_url_for_path_without_go_helper(path) ⇒ Object
Used in dependabot-backend, which doesn’t have access to any Go helpers. TODO: remove the need for this.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dependabot/utils/go/path_converter.rb', line 28 def self.git_url_for_path_without_go_helper(path) # Save a query by manually converting golang.org/x names tmp_path = path.gsub(%r{^golang\.org/x}, "github.com/golang") # Currently, Dependabot::Source.new will return `nil` if it can't # find a git SCH associated with a path. If it is ever extended to # handle non-git sources we'll need to add an additional check here. return Source.from_url(tmp_path).url if Source.from_url(tmp_path) return "https://#{tmp_path}" if tmp_path.end_with?(".git") return unless ( = (path)) # Look for a GitHub, Bitbucket or GitLab URL in the response .scan(Dependabot::Source::SOURCE_REGEX) do source_url = Regexp.last_match.to_s return Source.from_url(source_url).url end # If none are found, parse the response and return the go-import path doc = Nokogiri::XML() doc.remove_namespaces! import_details = doc.xpath("//meta"). find { |n| n.attributes["name"]&.value == "go-import" }&. attributes&.fetch("content")&.value&.split(/\s+/) return unless import_details && import_details[1] == "git" import_details[2] end |