Merge pull request #12304 from boblail/fix-git-download-with-revision
fix: Allow specifying `:revision` for resources downloaded from Git repos whose default branch is not named `master`
This commit is contained in:
		
						commit
						919f9d45b1
					
				@ -897,10 +897,16 @@ class GitDownloadStrategy < VCSDownloadStrategy
 | 
			
		||||
    case @ref_type
 | 
			
		||||
    when :branch then "+refs/heads/#{@ref}:refs/remotes/origin/#{@ref}"
 | 
			
		||||
    when :tag    then "+refs/tags/#{@ref}:refs/tags/#{@ref}"
 | 
			
		||||
    else              "+refs/heads/master:refs/remotes/origin/master"
 | 
			
		||||
    else              default_refspec
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { returns(String) }
 | 
			
		||||
  def default_refspec
 | 
			
		||||
    # https://git-scm.com/book/en/v2/Git-Internals-The-Refspec
 | 
			
		||||
    "+refs/heads/*:refs/remotes/origin/*"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { void }
 | 
			
		||||
  def config_repo
 | 
			
		||||
    command! "git",
 | 
			
		||||
@ -1069,6 +1075,30 @@ class GitHubGitDownloadStrategy < GitDownloadStrategy
 | 
			
		||||
      super
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { returns(String) }
 | 
			
		||||
  def default_refspec
 | 
			
		||||
    if default_branch
 | 
			
		||||
      "+refs/heads/#{default_branch}:refs/remotes/origin/#{default_branch}"
 | 
			
		||||
    else
 | 
			
		||||
      super
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { returns(String) }
 | 
			
		||||
  def default_branch
 | 
			
		||||
    return @default_branch if defined?(@default_branch)
 | 
			
		||||
 | 
			
		||||
    command! "git",
 | 
			
		||||
             args:  ["remote", "set-head", "origin", "--auto"],
 | 
			
		||||
             chdir: cached_location
 | 
			
		||||
 | 
			
		||||
    result = command! "git",
 | 
			
		||||
                      args:  ["symbolic-ref", "refs/remotes/origin/HEAD"],
 | 
			
		||||
                      chdir: cached_location
 | 
			
		||||
 | 
			
		||||
    @default_branch = result.stdout[%r{^refs/remotes/origin/(.*)$}, 1]
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
# Strategy for downloading a CVS repository.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user