Skip to content

Commit

Permalink
feat: add prevent_self_approve option
Browse files Browse the repository at this point in the history
  • Loading branch information
lee2sh committed Aug 7, 2024
1 parent a30225d commit d376934
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 35 deletions.
14 changes: 7 additions & 7 deletions server/core/config/raw/policies.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ func (o PolicyOwners) ToValid() valid.PolicyOwners {
}

type PolicySet struct {
Path string `yaml:"path" json:"path"`
Source string `yaml:"source" json:"source"`
Name string `yaml:"name" json:"name"`
Owners PolicyOwners `yaml:"owners,omitempty" json:"owners,omitempty"`
ApproveCount int `yaml:"approve_count,omitempty" json:"approve_count,omitempty"`
SelfApprove bool `yaml:"self_approve,omitempty" json:"self_approve,omitempty"`
Path string `yaml:"path" json:"path"`
Source string `yaml:"source" json:"source"`
Name string `yaml:"name" json:"name"`
Owners PolicyOwners `yaml:"owners,omitempty" json:"owners,omitempty"`
ApproveCount int `yaml:"approve_count,omitempty" json:"approve_count,omitempty"`
PreventSelfApprove bool `yaml:"self_approve,omitempty" json:"prevent_self_approve,omitempty"`
}

func (p PolicySet) Validate() error {
Expand All @@ -95,7 +95,7 @@ func (p PolicySet) ToValid() valid.PolicySet {
policySet.Path = p.Path
policySet.Source = p.Source
policySet.ApproveCount = p.ApproveCount
policySet.SelfApprove = p.SelfApprove
policySet.PreventSelfApprove = p.PreventSelfApprove
policySet.Owners = p.Owners.ToValid()

return policySet
Expand Down
12 changes: 6 additions & 6 deletions server/core/config/valid/policies.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ type PolicyOwners struct {
}

type PolicySet struct {
Source string
Path string
Name string
ApproveCount int
Owners PolicyOwners
SelfApprove bool
Source string
Path string
Name string
ApproveCount int
Owners PolicyOwners
PreventSelfApprove bool
}

func (p *PolicySets) HasPolicies() bool {
Expand Down
2 changes: 1 addition & 1 deletion server/events/project_command_runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ func (p *DefaultProjectCommandRunner) doApprovePolicies(ctx command.ProjectConte
ignorePolicy = true
}
// Increment approval if user is owner.
if isOwner && !ignorePolicy && (ctx.User.Username != ctx.Pull.Author || policySet.SelfApprove) {
if isOwner && !ignorePolicy && (ctx.User.Username != ctx.Pull.Author || !policySet.PreventSelfApprove) {
if !ctx.ClearPolicyApproval {
prjPolicyStatus[i].Approvals = policyStatus.Approvals + 1
} else {
Expand Down
24 changes: 3 additions & 21 deletions server/events/project_command_runner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -791,12 +791,10 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
{
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Name: "policy2",
ApproveCount: 2,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -825,12 +823,10 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Name: "policy2",
ApproveCount: 2,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -859,12 +855,10 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
{
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Name: "policy2",
ApproveCount: 1,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -894,12 +888,10 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Name: "policy2",
ApproveCount: 1,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -928,7 +920,6 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 2,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -959,7 +950,6 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 2,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -993,15 +983,13 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Owners: valid.PolicyOwners{
Teams: []string{"someuserteam"},
},
Name: "policy2",
ApproveCount: 1,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -1044,15 +1032,13 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Owners: valid.PolicyOwners{
Teams: []string{"someuserteam"},
},
Name: "policy2",
ApproveCount: 2,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -1095,15 +1081,13 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Owners: valid.PolicyOwners{
Teams: []string{"someotheruserteam"},
},
Name: "policy2",
ApproveCount: 2,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -1147,15 +1131,13 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Owners: valid.PolicyOwners{
Teams: []string{"someuserteam"},
},
Name: "policy2",
ApproveCount: 2,
SelfApprove: true,
},
},
},
Expand Down Expand Up @@ -1198,14 +1180,14 @@ func TestDefaultProjectCommandRunner_ApprovePolicies(t *testing.T) {
},
Name: "policy1",
ApproveCount: 1,
SelfApprove: true,
},
{
Owners: valid.PolicyOwners{
Users: []string{"lkysow"},
},
Name: "policy2",
ApproveCount: 1,
Name: "policy2",
ApproveCount: 1,
PreventSelfApprove: true,
},
},
},
Expand Down

0 comments on commit d376934

Please sign in to comment.