Skip to content

Commit 896a9d8

Browse files
github: use omitzero for RepositoryRuleset.BypassActors
1 parent e85e1dc commit 896a9d8

File tree

7 files changed

+7
-367
lines changed

7 files changed

+7
-367
lines changed

github/enterprise_rules.go

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -76,38 +76,14 @@ func (s *EnterpriseService) UpdateRepositoryRuleset(ctx context.Context, enterpr
7676
return rs, resp, nil
7777
}
7878

79-
// UpdateRepositoryRulesetClearBypassActor clears the bypass actors for a repository ruleset for the specified enterprise.
80-
//
81-
// This function is necessary as the UpdateRepositoryRuleset function does not marshal ByPassActor if passed as an empty array.
82-
//
83-
// GitHub API docs: https://docs.github.com/enterprise-cloud@latest/rest/enterprise-admin/rules#update-an-enterprise-repository-ruleset
84-
//
85-
//meta:operation PUT /enterprises/{enterprise}/rulesets/{ruleset_id}
86-
func (s *EnterpriseService) UpdateRepositoryRulesetClearBypassActor(ctx context.Context, enterprise string, rulesetID int64) (*Response, error) {
87-
u := fmt.Sprintf("enterprises/%v/rulesets/%v", enterprise, rulesetID)
88-
89-
rsClearBypassActor := rulesetClearBypassActors{
90-
BypassActors: []*BypassActor{},
91-
}
92-
93-
req, err := s.client.NewRequest("PUT", u, rsClearBypassActor)
94-
if err != nil {
95-
return nil, err
96-
}
97-
98-
resp, err := s.client.Do(ctx, req, nil)
99-
if err != nil {
100-
return resp, err
101-
}
102-
103-
return resp, nil
104-
}
105-
10679
// DeleteRepositoryRuleset deletes a repository ruleset from the specified enterprise.
10780
//
10881
// GitHub API docs: https://docs.github.com/enterprise-cloud@latest/rest/enterprise-admin/rules#delete-an-enterprise-repository-ruleset
10982
//
83+
// GitHub API docs: https://docs.github.com/enterprise-cloud@latest/rest/enterprise-admin/rules#update-an-enterprise-repository-ruleset
84+
//
11085
//meta:operation DELETE /enterprises/{enterprise}/rulesets/{ruleset_id}
86+
//meta:operation PUT /enterprises/{enterprise}/rulesets/{ruleset_id}
11187
func (s *EnterpriseService) DeleteRepositoryRuleset(ctx context.Context, enterprise string, rulesetID int64) (*Response, error) {
11288
u := fmt.Sprintf("enterprises/%v/rulesets/%v", enterprise, rulesetID)
11389

github/enterprise_rules_test.go

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1769,73 +1769,6 @@ func TestEnterpriseService_UpdateRepositoryRuleset(t *testing.T) {
17691769
})
17701770
}
17711771

1772-
func TestEnterpriseService_UpdateRepositoryRulesetClearBypassActor(t *testing.T) {
1773-
t.Parallel()
1774-
client, mux, _ := setup(t)
1775-
1776-
mux.HandleFunc("/enterprises/e/rulesets/84", func(w http.ResponseWriter, r *http.Request) {
1777-
testMethod(t, r, "PUT")
1778-
testBody(t, r, `{"bypass_actors":[]}`+"\n")
1779-
fmt.Fprint(w, `{
1780-
"id": 84,
1781-
"name": "test ruleset",
1782-
"target": "branch",
1783-
"source_type": "Enterprise",
1784-
"source": "e",
1785-
"enforcement": "active",
1786-
"bypass_mode": "none",
1787-
"conditions": {
1788-
"organization_name": {
1789-
"include": [
1790-
"important_organization",
1791-
"another_important_organization"
1792-
],
1793-
"exclude": [
1794-
"unimportant_organization"
1795-
]
1796-
},
1797-
"repository_name": {
1798-
"include": [
1799-
"important_repository",
1800-
"another_important_repository"
1801-
],
1802-
"exclude": [
1803-
"unimportant_repository"
1804-
],
1805-
"protected": true
1806-
},
1807-
"ref_name": {
1808-
"include": [
1809-
"refs/heads/main",
1810-
"refs/heads/master"
1811-
],
1812-
"exclude": [
1813-
"refs/heads/dev*"
1814-
]
1815-
}
1816-
},
1817-
"rules": [
1818-
{
1819-
"type": "creation"
1820-
}
1821-
]
1822-
}`)
1823-
})
1824-
1825-
ctx := t.Context()
1826-
1827-
_, err := client.Enterprise.UpdateRepositoryRulesetClearBypassActor(ctx, "e", 84)
1828-
if err != nil {
1829-
t.Errorf("Enterprise.UpdateRepositoryRulesetClearBypassActor returned error: %v \n", err)
1830-
}
1831-
1832-
const methodName = "UpdateRepositoryRulesetClearBypassActor"
1833-
1834-
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
1835-
return client.Enterprise.UpdateRepositoryRulesetClearBypassActor(ctx, "e", 84)
1836-
})
1837-
}
1838-
18391772
func TestEnterpriseService_DeleteRepositoryRuleset(t *testing.T) {
18401773
t.Parallel()
18411774
client, mux, _ := setup(t)

github/orgs_rules.go

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -103,38 +103,14 @@ func (s *OrganizationsService) UpdateRepositoryRuleset(ctx context.Context, org
103103
return rs, resp, nil
104104
}
105105

106-
// UpdateRepositoryRulesetClearBypassActor clears the bypass actors for a repository ruleset for the specified organization.
107-
//
108-
// This function is necessary as the UpdateRepositoryRuleset function does not marshal ByPassActor if passed as an empty array.
109-
//
110-
// GitHub API docs: https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset
111-
//
112-
//meta:operation PUT /orgs/{org}/rulesets/{ruleset_id}
113-
func (s *OrganizationsService) UpdateRepositoryRulesetClearBypassActor(ctx context.Context, org string, rulesetID int64) (*Response, error) {
114-
u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID)
115-
116-
rsClearBypassActor := rulesetClearBypassActors{
117-
BypassActors: []*BypassActor{},
118-
}
119-
120-
req, err := s.client.NewRequest("PUT", u, rsClearBypassActor)
121-
if err != nil {
122-
return nil, err
123-
}
124-
125-
resp, err := s.client.Do(ctx, req, nil)
126-
if err != nil {
127-
return resp, err
128-
}
129-
130-
return resp, nil
131-
}
132-
133106
// DeleteRepositoryRuleset deletes a repository ruleset from the specified organization.
134107
//
135108
// GitHub API docs: https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset
136109
//
110+
// GitHub API docs: https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset
111+
//
137112
//meta:operation DELETE /orgs/{org}/rulesets/{ruleset_id}
113+
//meta:operation PUT /orgs/{org}/rulesets/{ruleset_id}
138114
func (s *OrganizationsService) DeleteRepositoryRuleset(ctx context.Context, org string, rulesetID int64) (*Response, error) {
139115
u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID)
140116

github/orgs_rules_test.go

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1587,64 +1587,6 @@ func TestOrganizationsService_UpdateRepositoryRulesetWithRepoProp(t *testing.T)
15871587
})
15881588
}
15891589

1590-
func TestOrganizationsService_UpdateRepositoryRulesetClearBypassActor(t *testing.T) {
1591-
t.Parallel()
1592-
client, mux, _ := setup(t)
1593-
1594-
mux.HandleFunc("/orgs/o/rulesets/21", func(w http.ResponseWriter, r *http.Request) {
1595-
testMethod(t, r, "PUT")
1596-
testBody(t, r, `{"bypass_actors":[]}`+"\n")
1597-
fmt.Fprint(w, `{
1598-
"id": 21,
1599-
"name": "test ruleset",
1600-
"target": "branch",
1601-
"source_type": "Organization",
1602-
"source": "o",
1603-
"enforcement": "active",
1604-
"bypass_mode": "none",
1605-
"conditions": {
1606-
"repository_name": {
1607-
"include": [
1608-
"important_repository",
1609-
"another_important_repository"
1610-
],
1611-
"exclude": [
1612-
"unimportant_repository"
1613-
],
1614-
"protected": true
1615-
},
1616-
"ref_name": {
1617-
"include": [
1618-
"refs/heads/main",
1619-
"refs/heads/master"
1620-
],
1621-
"exclude": [
1622-
"refs/heads/dev*"
1623-
]
1624-
}
1625-
},
1626-
"rules": [
1627-
{
1628-
"type": "creation"
1629-
}
1630-
]
1631-
}`)
1632-
})
1633-
1634-
ctx := t.Context()
1635-
1636-
_, err := client.Organizations.UpdateRepositoryRulesetClearBypassActor(ctx, "o", 21)
1637-
if err != nil {
1638-
t.Errorf("Organizations.UpdateRepositoryRulesetClearBypassActor returned error: %v \n", err)
1639-
}
1640-
1641-
const methodName = "UpdateRepositoryRulesetClearBypassActor"
1642-
1643-
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
1644-
return client.Organizations.UpdateRepositoryRulesetClearBypassActor(ctx, "o", 21)
1645-
})
1646-
}
1647-
16481590
func TestOrganizationsService_DeleteRepositoryRuleset(t *testing.T) {
16491591
t.Parallel()
16501592
client, mux, _ := setup(t)

github/repos_rules.go

Lines changed: 0 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,6 @@ import (
1010
"fmt"
1111
)
1212

13-
// rulesetNoOmitBypassActors represents a GitHub ruleset object. The struct does not omit bypassActors if the field is nil or an empty array is passed.
14-
type rulesetNoOmitBypassActors struct {
15-
ID *int64 `json:"id,omitempty"`
16-
Name string `json:"name"`
17-
Target *RulesetTarget `json:"target,omitempty"`
18-
SourceType *RulesetSourceType `json:"source_type,omitempty"`
19-
Source string `json:"source"`
20-
Enforcement RulesetEnforcement `json:"enforcement"`
21-
BypassActors []*BypassActor `json:"bypass_actors"`
22-
CurrentUserCanBypass *BypassMode `json:"current_user_can_bypass,omitempty"`
23-
NodeID *string `json:"node_id,omitempty"`
24-
Links *RepositoryRulesetLinks `json:"_links,omitempty"`
25-
Conditions *RepositoryRulesetConditions `json:"conditions,omitempty"`
26-
Rules *RepositoryRulesetRules `json:"rules,omitempty"`
27-
UpdatedAt *Timestamp `json:"updated_at,omitempty"`
28-
CreatedAt *Timestamp `json:"created_at,omitempty"`
29-
}
30-
31-
// rulesetClearBypassActors is used to clear the bypass actors when modifying a GitHub ruleset object.
32-
type rulesetClearBypassActors struct {
33-
BypassActors []*BypassActor `json:"bypass_actors"`
34-
}
35-
3613
// GetRulesForBranch gets all the repository rules that apply to the specified branch.
3714
//
3815
// GitHub API docs: https://docs.github.com/rest/repos/rules#get-rules-for-a-branch
@@ -164,73 +141,6 @@ func (s *RepositoriesService) UpdateRuleset(ctx context.Context, owner, repo str
164141
return rs, resp, nil
165142
}
166143

167-
// UpdateRulesetClearBypassActor clears the bypass actors for a repository ruleset for the specified repository.
168-
//
169-
// This function is necessary as the UpdateRuleset function does not marshal ByPassActor if passed as an empty array.
170-
//
171-
// GitHub API docs: https://docs.github.com/rest/repos/rules#update-a-repository-ruleset
172-
//
173-
//meta:operation PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}
174-
func (s *RepositoriesService) UpdateRulesetClearBypassActor(ctx context.Context, owner, repo string, rulesetID int64) (*Response, error) {
175-
u := fmt.Sprintf("repos/%v/%v/rulesets/%v", owner, repo, rulesetID)
176-
177-
rsClearBypassActor := rulesetClearBypassActors{
178-
BypassActors: []*BypassActor{},
179-
}
180-
181-
req, err := s.client.NewRequest("PUT", u, rsClearBypassActor)
182-
if err != nil {
183-
return nil, err
184-
}
185-
186-
resp, err := s.client.Do(ctx, req, nil)
187-
if err != nil {
188-
return resp, err
189-
}
190-
191-
return resp, nil
192-
}
193-
194-
// UpdateRulesetNoBypassActor updates a repository ruleset for the specified repository.
195-
//
196-
// This function is necessary as the UpdateRuleset function does not marshal ByPassActor if passed as an empty array.
197-
//
198-
// Deprecated: Use UpdateRulesetClearBypassActor instead.
199-
//
200-
// GitHub API docs: https://docs.github.com/rest/repos/rules#update-a-repository-ruleset
201-
//
202-
//meta:operation PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}
203-
func (s *RepositoriesService) UpdateRulesetNoBypassActor(ctx context.Context, owner, repo string, rulesetID int64, ruleset RepositoryRuleset) (*RepositoryRuleset, *Response, error) {
204-
u := fmt.Sprintf("repos/%v/%v/rulesets/%v", owner, repo, rulesetID)
205-
206-
rsNoBypassActor := rulesetNoOmitBypassActors{
207-
ID: ruleset.ID,
208-
Name: ruleset.Name,
209-
Target: ruleset.Target,
210-
SourceType: ruleset.SourceType,
211-
Source: ruleset.Source,
212-
Enforcement: ruleset.Enforcement,
213-
BypassActors: ruleset.BypassActors,
214-
NodeID: ruleset.NodeID,
215-
Links: ruleset.Links,
216-
Conditions: ruleset.Conditions,
217-
Rules: ruleset.Rules,
218-
}
219-
220-
req, err := s.client.NewRequest("PUT", u, rsNoBypassActor)
221-
if err != nil {
222-
return nil, nil, err
223-
}
224-
225-
var rs *RepositoryRuleset
226-
resp, err := s.client.Do(ctx, req, &rs)
227-
if err != nil {
228-
return nil, resp, err
229-
}
230-
231-
return rs, resp, nil
232-
}
233-
234144
// DeleteRuleset deletes a repository ruleset for the specified repository.
235145
//
236146
// GitHub API docs: https://docs.github.com/rest/repos/rules#delete-a-repository-ruleset

0 commit comments

Comments
 (0)