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:
parent
34dc2dc15c
commit
14c06ee5e4
|
@ -244,8 +244,14 @@ func NewGitCloneExecutor(input NewGitCloneExecutorInput) Executor {
|
||||||
refType := "tag"
|
refType := "tag"
|
||||||
rev := plumbing.Revision(path.Join("refs", "tags", input.Ref))
|
rev := plumbing.Revision(path.Join("refs", "tags", input.Ref))
|
||||||
if _, err := r.Tag(input.Ref); errors.Is(err, git.ErrTagNotFound) {
|
if _, err := r.Tag(input.Ref); errors.Is(err, git.ErrTagNotFound) {
|
||||||
refType = "branch"
|
rName := plumbing.ReferenceName(path.Join("refs", "remotes", "origin", input.Ref))
|
||||||
rev = plumbing.Revision(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)
|
hash, err := r.ResolveRevision(rev)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -186,6 +186,11 @@ func TestGitCloneExecutor(t *testing.T) {
|
||||||
Ref: "act-fails",
|
Ref: "act-fails",
|
||||||
Err: nil,
|
Err: nil,
|
||||||
},
|
},
|
||||||
|
"sha": {
|
||||||
|
URL: "https://github.com/actions/checkout",
|
||||||
|
Ref: "5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f", // v2
|
||||||
|
Err: nil,
|
||||||
|
},
|
||||||
} {
|
} {
|
||||||
tt := tt
|
tt := tt
|
||||||
name := name
|
name := name
|
||||||
|
|
Loading…
Reference in New Issue