resolve issue with reference a branch on a github action

This commit is contained in:
Casey Lee 2019-01-15 09:05:27 -08:00
parent c668a410c3
commit 44e21b102e
No known key found for this signature in database
GPG key ID: 4CC378651BF9C168
2 changed files with 10 additions and 4 deletions

View file

@ -73,6 +73,7 @@ func TestParseImageGithub(t *testing.T) {
{"nektos/act/foo", "https://github.com/nektos/act", "master", "foo", true}, {"nektos/act/foo", "https://github.com/nektos/act", "master", "foo", true},
{"nektos/act@xxxxx", "https://github.com/nektos/act", "xxxxx", ".", true}, {"nektos/act@xxxxx", "https://github.com/nektos/act", "xxxxx", ".", true},
{"nektos/act/bar/baz@zzzzz", "https://github.com/nektos/act", "zzzzz", "bar/baz", true}, {"nektos/act/bar/baz@zzzzz", "https://github.com/nektos/act", "zzzzz", "bar/baz", true},
{"assimovt/actions-github-deploy/github-deploy@deployment-status-metadata", "https://github.com/assimovt/actions-github-deploy", "deployment-status-metadata", "github-deploy", true},
{"nektos/zzzzundefinedzzzz", "", "", "", false}, {"nektos/zzzzundefinedzzzz", "", "", "", false},
} }

View file

@ -185,11 +185,14 @@ func NewGitCloneExecutor(input NewGitCloneExecutorInput) Executor {
cloneLock.Lock() cloneLock.Lock()
defer cloneLock.Unlock() defer cloneLock.Unlock()
refName := plumbing.ReferenceName(fmt.Sprintf("refs/heads/%s", input.Ref))
r, err := git.PlainOpen(input.Dir) r, err := git.PlainOpen(input.Dir)
if err != nil { if err != nil {
r, err = git.PlainClone(input.Dir, false, &git.CloneOptions{ r, err = git.PlainClone(input.Dir, false, &git.CloneOptions{
URL: input.URL.String(), URL: input.URL.String(),
Progress: input.Logger.WriterLevel(log.DebugLevel), Progress: input.Logger.WriterLevel(log.DebugLevel),
ReferenceName: refName,
}) })
if err != nil { if err != nil {
return err return err
@ -206,10 +209,12 @@ func NewGitCloneExecutor(input NewGitCloneExecutorInput) Executor {
err = w.Checkout(&git.CheckoutOptions{ err = w.Checkout(&git.CheckoutOptions{
//Branch: plumbing.NewHash(ref), //Branch: plumbing.NewHash(ref),
Hash: plumbing.NewHash(input.Ref), Branch: refName,
//Hash: plumbing.NewHash(input.Ref),
Force: true,
}) })
if err != nil { if err != nil {
input.Logger.Error(err) input.Logger.Errorf("Unable to checkout %s: %v", refName, err)
return err return err
} }