Skip to content

Resolve GitOps comment problem with push requests #1509

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 16 additions & 15 deletions pkg/provider/github/parse_payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -393,48 +393,49 @@ func (v *Provider) handleCommitCommentEvent(ctx context.Context, event *github.C
runevent.EventType = "push"
runevent.TriggerTarget = "push"

// by default head and base branch is main
runevent.HeadBranch = "main"
runevent.BaseBranch = "main"

// Set main as default branch to runevent.HeadBranch, runevent.BaseBranch
runevent.HeadBranch, runevent.BaseBranch = "main", "main"
var (
branchName string
prName string
err error
)

// if it is a /test or /retest comment with pipelinerun name figure out the pipelinerun name
// If it is a /test or /retest comment with pipelinerun name figure out the pipelinerun name
if provider.IsTestRetestComment(event.GetComment().GetBody()) {
prName, branchName, err = provider.GetPipelineRunAndBranchNameFromTestComment(event.GetComment().GetBody())
if err != nil {
return runevent, err
}
runevent.TargetTestPipelineRun = prName
}
// Check for /cancel comment
if provider.IsCancelComment(event.GetComment().GetBody()) {
action = "cancellation"
prName, branchName, err = provider.GetPipelineRunAndBranchNameFromCancelComment(event.GetComment().GetBody())
if err != nil {
return runevent, err
}
runevent.CancelPipelineRuns = true
runevent.TargetCancelPipelineRun = prName
}

if branchName != "" {
if err = v.isBranchContainsCommit(ctx, runevent, branchName); err != nil {
return runevent, err
}
runevent.HeadBranch = branchName
runevent.BaseBranch = branchName
// If no branch is specified in GitOps comments, use runevent.HeadBranch
if branchName == "" {
branchName = runevent.HeadBranch
}

if provider.IsCancelComment(event.GetComment().GetBody()) {
if err = v.isBranchContainsCommit(ctx, runevent, runevent.HeadBranch); err != nil {
// Check if the specified branch contains the commit
if err = v.isBranchContainsCommit(ctx, runevent, branchName); err != nil {
if provider.IsCancelComment(event.GetComment().GetBody()) {
runevent.CancelPipelineRuns = false
return runevent, err
}
runevent.CancelPipelineRuns = true
return runevent, err
}
// Finally update branch information to runevent.HeadBranch and runevent.BaseBranch
runevent.HeadBranch = branchName
runevent.BaseBranch = branchName

v.Logger.Infof("commit_comment: pipelinerun %s on %s/%s#%s has been requested", action, runevent.Organization, runevent.Repository, runevent.SHA)
return runevent, nil
}