enable to resolve commit hash in `uses` (#530)

Co-authored-by: sinozu <sinozu@users.noreply.github.com>
Co-authored-by: Casey Lee <cplee@nektos.com>
This commit is contained in:
Shin Uozumi 2021-02-24 02:50:28 +09:00 committed by GitHub
parent 34dc2dc15c
commit 14c06ee5e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -244,8 +244,14 @@ func NewGitCloneExecutor(input NewGitCloneExecutorInput) Executor {
refType := "tag"
rev := plumbing.Revision(path.Join("refs", "tags", input.Ref))
if _, err := r.Tag(input.Ref); errors.Is(err, git.ErrTagNotFound) {
refType = "branch"
rev = plumbing.Revision(path.Join("refs", "remotes", "origin", input.Ref))
rName := plumbing.ReferenceName(path.Join("refs", "remotes", "origin", input.Ref))
if _, err := r.Reference(rName, false); errors.Is(err, plumbing.ErrReferenceNotFound) {
refType = "sha"
rev = plumbing.Revision(input.Ref)
} else {
refType = "branch"
rev = plumbing.Revision(rName)
}
}
hash, err := r.ResolveRevision(rev)
if err != nil {

View File

@ -186,6 +186,11 @@ func TestGitCloneExecutor(t *testing.T) {
Ref: "act-fails",
Err: nil,
},
"sha": {
URL: "https://github.com/actions/checkout",
Ref: "5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f", // v2
Err: nil,
},
} {
tt := tt
name := name