// createAssignedReviewRequest can be used to create a new review issue // for the given commits that is associated with the story passed in. func createAssignedReviewRequest( config *moduleConfig, owner string, repo string, story common.Story, commits []*git.Commit, opts map[string]interface{}, ) (*github.Issue, error) { task := fmt.Sprintf("Create review issue for story %v", story.ReadableId()) // Prepare the issue object. reviewIssue := ghissues.NewStoryReviewIssue( story.ReadableId(), story.URL(), story.Title(), story.IssueTracker().ServiceName(), story.Tag()) for _, commit := range commits { reviewIssue.AddCommit(false, commit.SHA, commit.MessageTitle) } // Get the right review milestone to add the issue into. milestone, err := getOrCreateMilestoneForCommit( config, owner, repo, commits[len(commits)-1].SHA) if err != nil { return nil, errs.NewError(task, err) } // Create a new review issue. var implemented bool implementedOpt, ok := opts["implemented"] if ok { implemented = implementedOpt.(bool) } issue, err := createIssue( task, config, owner, repo, reviewIssue.FormatTitle(), reviewIssue.FormatBody(), optValueString(opts["reviewer"]), milestone, implemented) if err != nil { return nil, errs.NewError(task, err) } return issue, nil }
// createAssignedReviewRequest can be used to create a new review issue // for the given commits that is associated with the story passed in. func createAssignedReviewRequest( config Config, owner string, repo string, story common.Story, commits []*git.Commit, opts map[string]interface{}, ) error { var ( task = fmt.Sprintf("Create review issue for story %v", story.ReadableId()) issueTitle = fmt.Sprintf("Review story %v: %v", story.ReadableId(), story.Title()) ) // Generate the issue body. var issueBody bytes.Buffer fmt.Fprintf(&issueBody, "Story being reviewed: [%v](%v)\n\n", story.ReadableId(), story.URL()) fmt.Fprintf(&issueBody, "SF-Issue-Tracker: %v\n", story.IssueTracker().ServiceName()) fmt.Fprintf(&issueBody, "SF-Story-Key: %v\n\n", story.Tag()) fmt.Fprintf(&issueBody, "The associated commits are following:") for _, commit := range commits { fmt.Fprintf(&issueBody, "\n- [ ] %v: %v", commit.SHA, commit.MessageTitle) } // Get the right review milestone to add the issue into. milestone, err := getOrCreateMilestoneForCommit( config, owner, repo, commits[len(commits)-1].SHA) if err != nil { return err } // Create a new review issue. issue, err := createIssue(task, config, owner, repo, issueTitle, issueBody.String(), milestone) if err != nil { return err } // Open the issue if requested. if _, open := opts["open"]; open { return openIssue(issue) } return nil }