Skip to content

Show review labels in the pull request lists #9274

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
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
d9f1bbf
Show reviews labels - Review required, Approved and Changes requested…
oscarcosta Dec 7, 2019
4ff5406
Removing non translated labels
oscarcosta Dec 7, 2019
46b9e29
Checking rejected reviews before enough approvals.
oscarcosta Dec 7, 2019
8236a04
Showing number of reviews required, approvals and changes requests
oscarcosta Dec 7, 2019
6686bd7
Removing translations as they are addressed through Crowdin.
oscarcosta Dec 7, 2019
3761e06
Setting Issue's reference in PullRequest when loading PullRequests.
oscarcosta Dec 7, 2019
582d7ef
Fix runtime error: invalid memory address or nil pointer dereference.
oscarcosta Dec 7, 2019
d723929
Simplifying conditional expressions.
oscarcosta Dec 8, 2019
9a6f4a8
Revert "Simplifying conditional expressions."
oscarcosta Dec 8, 2019
f670132
Merge branch 'master' into review_labels_in_pull_lists
oscarcosta Feb 3, 2020
3c16eea
Merge branch 'master' into review_labels_in_pull_lists
oscarcosta Feb 3, 2020
3f93cfe
Calling pr.LoadIssue() to load issue info from database.
oscarcosta Feb 3, 2020
d3657fd
suggestions
6543 Feb 3, 2020
deca4a8
Merge pull request #1 from 6543/pull_9274
oscarcosta Feb 3, 2020
4f792ec
Getting labels and counters of reviews from two methods, thus removin…
oscarcosta Feb 3, 2020
fbd4c09
Moved methods GetRejectedReviewsCount, HasEnoughApprovals and GetGran…
oscarcosta Feb 3, 2020
64b47d5
Fix comment
oscarcosta Feb 3, 2020
b3ef97e
Merge branch 'master' of github.com:go-gitea/gitea into review_labels…
oscarcosta Feb 12, 2020
01bd93c
Returning status for reviews
oscarcosta Feb 12, 2020
f84ce89
Merge branch 'master' of github.com:go-gitea/gitea into review_labels…
oscarcosta Feb 23, 2020
eea70d5
Merge branch 'master' of github.com:go-gitea/gitea into review_labels…
oscarcosta Feb 23, 2020
6577c95
Refactor: extracting code that load issues in PulRequestList to a method
oscarcosta Feb 23, 2020
d97dc25
Batch loading protected branch objects in pull_list.go
oscarcosta Feb 23, 2020
c63d0a9
Loading pull request attributes
oscarcosta Feb 24, 2020
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
14 changes: 14 additions & 0 deletions models/branches.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,20 @@ func (protectBranch *ProtectedBranch) GetGrantedApprovalsCount(pr *PullRequest)
return approvals
}

// GetRejectedReviewsCount returns the number of rejected reviews for pr.
func (protectBranch *ProtectedBranch) GetRejectedReviewsCount(pr *PullRequest) int64 {
rejects, err := x.Where("issue_id = ?", pr.Issue.ID).
And("type = ?", ReviewTypeReject).
And("official = ?", true).
Count(new(Review))
if err != nil {
log.Error("GetRejectedReviewsCount: %v", err)
return 0
}

return rejects
}

// GetProtectedBranchByRepoID getting protected branch by repo ID
func GetProtectedBranchByRepoID(repoID int64) ([]*ProtectedBranch, error) {
protectedBranches := make([]*ProtectedBranch, 0)
Expand Down
3 changes: 3 additions & 0 deletions models/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,9 @@ func (issue *Issue) loadPullRequest(e Engine) (err error) {
}
issue.PullRequest.Issue = issue
}
if issue.PullRequest != nil && issue.PullRequest.Issue == nil {
issue.PullRequest.Issue = issue
}
return nil
}

Expand Down
31 changes: 31 additions & 0 deletions models/pull.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,37 @@ func (pr *PullRequest) loadProtectedBranch(e Engine) (err error) {
return
}

func (pr *PullRequest) requiredApprovals() int64 {
if pr.ProtectedBranch == nil {
if err := pr.loadProtectedBranch(x); err != nil {
log.Error("Error loading ProtectedBranch", err)
}
}
if pr.ProtectedBranch != nil {
return pr.ProtectedBranch.RequiredApprovals
}
return 0
}

// RequiresApproval returns true if this pull request requires approval, otherwise returns false
func (pr *PullRequest) RequiresApproval() bool {
return pr.requiredApprovals() > 0
}

// GetReviewLabel returns the localization label for the review of this pull request
func (pr *PullRequest) GetReviewLabel() string {
if pr.RequiresApproval() {
if pr.ProtectedBranch.HasEnoughApprovals(pr) {
return "repo.pulls.review_approved"
}
if pr.ProtectedBranch.GetRejectedReviewsCount(pr) > 0 {
return "repo.pulls.review_rejected"
}
return "repo.pulls.review_required"
}
return "repo.pulls.review_approved" // by default
}

// GetDefaultMergeMessage returns default message used when merging pull request
func (pr *PullRequest) GetDefaultMergeMessage() string {
if pr.HeadRepo == nil {
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_cs-CZ.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1047,6 +1047,9 @@ pulls.open_unmerged_pull_exists=`Nemůžete provést operaci znovuotevření pro
pulls.status_checking=Některé kontroly jsou nedořešeny
pulls.status_checks_success=Všechny kontroly byly úspěšné
pulls.status_checks_error=Některé kontroly selhaly
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Nový milník
milestones.open_tab=%d otevřených
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_de-DE.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1055,6 +1055,9 @@ pulls.open_unmerged_pull_exists=`Du kannst diesen Pull-Request nicht erneut öff
pulls.status_checking=Einige Prüfungen sind noch ausstehend
pulls.status_checks_success=Alle Prüfungen waren erfolgreich
pulls.status_checks_error=Einige Prüfungen sind fehlgeschlagen
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Neuer Meilenstein
milestones.open_tab=%d offen
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_en-US.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1070,6 +1070,9 @@ pulls.open_unmerged_pull_exists = `You cannot perform a reopen operation because
pulls.status_checking = Some checks are pending
pulls.status_checks_success = All checks were successful
pulls.status_checks_error = Some checks failed
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new = New Milestone
milestones.open_tab = %d Open
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_es-ES.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1041,6 +1041,9 @@ pulls.open_unmerged_pull_exists=`No puede realizar la reapertura porque hay un p
pulls.status_checking=Algunas comprobaciones están pendientes
pulls.status_checks_success=Todas las comprobaciones han sido exitosas
pulls.status_checks_error=Algunas comprobaciones han fallado
pulls.review_required = Revisión requerida
pulls.review_approved = Aprobada
pulls.review_rejected = Cambios solicitados

milestones.new=Nuevo hito
milestones.open_tab=%d abiertas
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_fa-IR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1022,6 +1022,9 @@ pulls.open_unmerged_pull_exists=`شما نمی‌توانید یک عملیات
pulls.status_checking=برخی از بررسی‎ها در حال تعلیق هستند
pulls.status_checks_success=تمامی بررسی‎ها موفق بودند
pulls.status_checks_error=برخی بررسی‎ها با مشکل مواجه شد
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=نقطه عطف جدید
milestones.open_tab=%d باز شد
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_fr-FR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@ pulls.open_unmerged_pull_exists=`Vous ne pouvez pas ré-ouvrir cette demande de
pulls.status_checking=Certains contrôles sont en attente
pulls.status_checks_success=Tous les contrôles ont réussi
pulls.status_checks_error=Certains contrôles ont échoué
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Nouveau jalon
milestones.open_tab=%d Ouvert
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_ja-JP.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,9 @@ pulls.open_unmerged_pull_exists=`同じ条件のプルリクエスト (#%d) が
pulls.status_checking=いくつかの検証が待機中です
pulls.status_checks_success=検証はすべて成功しました
pulls.status_checks_error=検証がいくつか失敗しました
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=新しいマイルストーン
milestones.open_tab=%d件 オープン中
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_lv-LV.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1006,6 +1006,9 @@ pulls.open_unmerged_pull_exists=`Jūs nevarat veikt atkārtotas atvēršanas dar
pulls.status_checking=Dažas pārbaudes vēl tiek veiktas
pulls.status_checks_success=Visas pārbaudes ir veiksmīgas
pulls.status_checks_error=Dažas pārbaudes bija neveiksmīgas
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Jauns atskaites punkts
milestones.open_tab=%d atvērti
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_pl-PL.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1003,6 +1003,9 @@ pulls.open_unmerged_pull_exists=`Nie możesz wykonać operacji ponownego otwarci
pulls.status_checking=Niektóre etapy są w toku
pulls.status_checks_success=Wszystkie etapy powiodły się
pulls.status_checks_error=Niektóre etapy nie powiodły się
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Nowy kamień milowy
milestones.open_tab=Otwarte %d
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_pt-BR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,9 @@ pulls.open_unmerged_pull_exists=`Não é possível executar uma operação de re
pulls.status_checking=Algumas verificações estão pendentes
pulls.status_checks_success=Todas as verificações foram bem sucedidas
pulls.status_checks_error=Algumas verificações falharam
pulls.review_required = Revisão requerida
pulls.review_approved = Aprovado
pulls.review_rejected = Alterações solicitadas

milestones.new=Novo marco
milestones.open_tab=%d Aberto
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_tr-TR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,9 @@ pulls.open_unmerged_pull_exists=`Aynı özelliklere sahip bekleyen bir çekme is
pulls.status_checking=Bazı denetlemeler beklemede
pulls.status_checks_success=Tüm denetlemeler başarılı oldu
pulls.status_checks_error=Bazı denetlemeler başarısız oldu
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Yeni Kilometre Taşı
milestones.open_tab=%d Açık
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_zh-CN.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,9 @@ pulls.open_unmerged_pull_exists=`您不能执行重新打开操作, 因为已经
pulls.status_checking=一些检测仍在等待运行
pulls.status_checks_success=所有检测均成功
pulls.status_checks_error=一些检测失败
pulls.review_required = Review Required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=新的里程碑
milestones.open_tab=%d 开启中
Expand Down
4 changes: 4 additions & 0 deletions routers/user/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,10 @@ func Issues(ctx *context.Context) {
issue.Repo = showReposMap[issue.RepoID]

if isPullList {
if err := issue.LoadPullRequest(); err != nil {
ctx.ServerError("LoadPullRequest", err)
return
}
commitStatus[issue.PullRequest.ID], _ = issue.PullRequest.GetLastCommitStatus()
}
}
Expand Down
4 changes: 3 additions & 1 deletion templates/repo/issue/list.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,9 @@
{{else}}
{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName | Escape) | Safe}}
{{end}}

{{if .IsPull }}{{if .PullRequest.RequiresApproval }}
&bull; <a class="milestone" href="{{$.Link}}/{{.Index}}">{{$.i18n.Tr .PullRequest.GetReviewLabel }}</a>
{{end}}{{end}}
{{if .Milestone}}
<a class="milestone" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
<span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
Expand Down
3 changes: 3 additions & 0 deletions templates/repo/issue/milestone_issues.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,9 @@
{{else}}
{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName|Escape) | Safe}}
{{end}}
{{if .IsPull }}{{if .PullRequest.RequiresApproval }}
&bull; <a class="milestone" href="{{$.RepoLink}}/issues/{{.Index}}">{{$.i18n.Tr .PullRequest.GetReviewLabel }}</a>
{{end}}{{end}}
{{if .Ref}}
<a class="ref" href="{{$.RepoLink}}/src/branch/{{.Ref}}">
<span class="octicon octicon-git-branch"></span> {{.Ref}}
Expand Down
3 changes: 3 additions & 0 deletions templates/user/dashboard/issues.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@
{{else}}
{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName|Escape) | Safe}}
{{end}}
{{if .IsPull }}{{if .PullRequest.RequiresApproval }}
&bull; <a class="milestone" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}/issues/{{.Index}}">{{$.i18n.Tr .PullRequest.GetReviewLabel }}</a>
{{end}}{{end}}
{{if .Milestone}}
<a class="milestone" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
<span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
Expand Down