This commit is contained in:
2025-02-19 10:51:49 +01:00
parent fc2dbab782
commit a5acc1e34e
3 changed files with 20 additions and 4 deletions

View File

@@ -173,16 +173,19 @@ func (rs *PRSet) AssignReviewers(gitea common.GiteaReviewFetcherAndRequester, ma
return nil
}
func (rs *PRSet) IsReviewed(gitea common.GiteaPRChecker, maintainers MaintainershipData) bool {
func (rs *PRSet) IsApproved(gitea common.GiteaPRChecker, maintainers MaintainershipData) bool {
configReviewers := ParseReviewers(rs.config.Reviewers)
is_reviewed := false
for _, pr := range rs.prs {
var reviewers []string
var pkg string
if rs.IsPrjGitPR(pr.pr) {
reviewers = configReviewers.Prj
pkg = ""
} else {
reviewers = configReviewers.Pkg
pkg = pr.pr.Base.Repo.Name
}
r, err := FetchGiteaReviews(gitea, reviewers, pr.pr.Base.Repo.Owner.UserName, pr.pr.Base.Repo.Name, pr.pr.Index)
@@ -193,6 +196,10 @@ func (rs *PRSet) IsReviewed(gitea common.GiteaPRChecker, maintainers Maintainers
if !is_reviewed {
return false
}
if is_reviewed = maintainers.IsApproved(pkg, r.reviews); !is_reviewed {
return false
}
}
return is_reviewed
}

View File

@@ -12,7 +12,12 @@ func (o *PullRequestReviewed) Process(req *common.PullRequestWebhookEvent, git c
return err
}
if prset.IsReviewed(o.gitea) {
maintainers, err := FetchProjectMaintainershipData(o.gitea, prset.config.Organization, prset.config.GitProjectName, prset.config.Branch)
if err != nil {
return err
}
if prset.IsApproved(o.gitea, maintainers) {
prset.Merge()
}

View File

@@ -221,8 +221,12 @@ func TestPR(t *testing.T) {
t.Error("expected no errors assigning reviewers:", err)
}
*/
if isReviewed := res.IsReviewed(review_mock); isReviewed != test.reviewed {
t.Error("expected reviewed to be NOT", isReviewed)
maintainers := mock_main.NewMockMaintainershipData(ctl)
maintainers.EXPECT().IsApproved(gomock.Any(), gomock.Any()).Return(true).AnyTimes()
if isApproved := res.IsApproved(review_mock, maintainers); isApproved != test.reviewed {
t.Error("expected reviewed to be NOT", isApproved)
}
})
}