ctx.Redirect(ctxUser.HomeLink() + "/" + url.PathEscape(repo.Name))
}
-func checkPullInfo(ctx *context.Context) *issues_model.Issue {
+func getPullInfo(ctx *context.Context) (issue *issues_model.Issue, ok bool) {
issue, err := issues_model.GetIssueByIndex(ctx, ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if issues_model.IsErrIssueNotExist(err) {
} else {
ctx.ServerError("GetIssueByIndex", err)
}
- return nil
+ return nil, false
}
if err = issue.LoadPoster(ctx); err != nil {
ctx.ServerError("LoadPoster", err)
- return nil
+ return nil, false
}
if err := issue.LoadRepo(ctx); err != nil {
ctx.ServerError("LoadRepo", err)
- return nil
+ return nil, false
}
ctx.Data["Title"] = fmt.Sprintf("#%d - %s", issue.Index, issue.Title)
ctx.Data["Issue"] = issue
if !issue.IsPull {
ctx.NotFound("ViewPullCommits", nil)
- return nil
+ return nil, false
}
if err = issue.LoadPullRequest(ctx); err != nil {
ctx.ServerError("LoadPullRequest", err)
- return nil
+ return nil, false
}
if err = issue.PullRequest.LoadHeadRepo(ctx); err != nil {
ctx.ServerError("LoadHeadRepo", err)
- return nil
+ return nil, false
}
if ctx.IsSigned {
// Update issue-user.
if err = activities_model.SetIssueReadBy(ctx, issue.ID, ctx.Doer.ID); err != nil {
ctx.ServerError("ReadBy", err)
- return nil
+ return nil, false
}
}
- return issue
+ return issue, true
}
func setMergeTarget(ctx *context.Context, pull *issues_model.PullRequest) {
// GetPullDiffStats get Pull Requests diff stats
func GetPullDiffStats(ctx *context.Context) {
- issue := checkPullInfo(ctx)
+ issue, ok := getPullInfo(ctx)
+ if !ok {
+ return
+ }
pull := issue.PullRequest
mergeBaseCommitID := GetMergedBaseCommitID(ctx, issue)
- if ctx.Written() {
- return
- } else if mergeBaseCommitID == "" {
+ if mergeBaseCommitID == "" {
ctx.NotFound("PullFiles", nil)
return
}
// GetPullCommits get all commits for given pull request
func GetPullCommits(ctx *context.Context) {
- issue := checkPullInfo(ctx)
- if ctx.Written() {
+ issue, ok := getPullInfo(ctx)
+ if !ok {
return
}
resp := &pullCommitList{}
ctx.Data["PageIsPullList"] = true
ctx.Data["PageIsPullCommits"] = true
- issue := checkPullInfo(ctx)
- if ctx.Written() {
+ issue, ok := getPullInfo(ctx)
+ if !ok {
return
}
pull := issue.PullRequest
ctx.Data["PageIsPullList"] = true
ctx.Data["PageIsPullFiles"] = true
- issue := checkPullInfo(ctx)
- if ctx.Written() {
+ issue, ok := getPullInfo(ctx)
+ if !ok {
return
}
pull := issue.PullRequest
// UpdatePullRequest merge PR's baseBranch into headBranch
func UpdatePullRequest(ctx *context.Context) {
- issue := checkPullInfo(ctx)
- if ctx.Written() {
+ issue, ok := getPullInfo(ctx)
+ if !ok {
return
}
if issue.IsClosed {
// MergePullRequest response for merging pull request
func MergePullRequest(ctx *context.Context) {
form := web.GetForm(ctx).(*forms.MergePullRequestForm)
- issue := checkPullInfo(ctx)
- if ctx.Written() {
+ issue, ok := getPullInfo(ctx)
+ if !ok {
return
}
// CancelAutoMergePullRequest cancels a scheduled pr
func CancelAutoMergePullRequest(ctx *context.Context) {
- issue := checkPullInfo(ctx)
- if ctx.Written() {
+ issue, ok := getPullInfo(ctx)
+ if !ok {
return
}
// CleanUpPullRequest responses for delete merged branch when PR has been merged
func CleanUpPullRequest(ctx *context.Context) {
- issue := checkPullInfo(ctx)
- if ctx.Written() {
+ issue, ok := getPullInfo(ctx)
+ if !ok {
return
}