github.com/google/go-github/v66@v66.0.0/github/orgs_rules.go (about) 1 // Copyright 2023 The go-github AUTHORS. All rights reserved. 2 // 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 6 package github 7 8 import ( 9 "context" 10 "fmt" 11 ) 12 13 // GetAllOrganizationRulesets gets all the rulesets for the specified organization. 14 // 15 // GitHub API docs: https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets 16 // 17 //meta:operation GET /orgs/{org}/rulesets 18 func (s *OrganizationsService) GetAllOrganizationRulesets(ctx context.Context, org string) ([]*Ruleset, *Response, error) { 19 u := fmt.Sprintf("orgs/%v/rulesets", org) 20 21 req, err := s.client.NewRequest("GET", u, nil) 22 if err != nil { 23 return nil, nil, err 24 } 25 26 var rulesets []*Ruleset 27 resp, err := s.client.Do(ctx, req, &rulesets) 28 if err != nil { 29 return nil, resp, err 30 } 31 32 return rulesets, resp, nil 33 } 34 35 // CreateOrganizationRuleset creates a ruleset for the specified organization. 36 // 37 // GitHub API docs: https://docs.github.com/rest/orgs/rules#create-an-organization-repository-ruleset 38 // 39 //meta:operation POST /orgs/{org}/rulesets 40 func (s *OrganizationsService) CreateOrganizationRuleset(ctx context.Context, org string, rs *Ruleset) (*Ruleset, *Response, error) { 41 u := fmt.Sprintf("orgs/%v/rulesets", org) 42 43 req, err := s.client.NewRequest("POST", u, rs) 44 if err != nil { 45 return nil, nil, err 46 } 47 48 var ruleset *Ruleset 49 resp, err := s.client.Do(ctx, req, &ruleset) 50 if err != nil { 51 return nil, resp, err 52 } 53 54 return ruleset, resp, nil 55 } 56 57 // GetOrganizationRuleset gets a ruleset from the specified organization. 58 // 59 // GitHub API docs: https://docs.github.com/rest/orgs/rules#get-an-organization-repository-ruleset 60 // 61 //meta:operation GET /orgs/{org}/rulesets/{ruleset_id} 62 func (s *OrganizationsService) GetOrganizationRuleset(ctx context.Context, org string, rulesetID int64) (*Ruleset, *Response, error) { 63 u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID) 64 65 req, err := s.client.NewRequest("GET", u, nil) 66 if err != nil { 67 return nil, nil, err 68 } 69 70 var ruleset *Ruleset 71 resp, err := s.client.Do(ctx, req, &ruleset) 72 if err != nil { 73 return nil, resp, err 74 } 75 76 return ruleset, resp, nil 77 } 78 79 // UpdateOrganizationRuleset updates a ruleset from the specified organization. 80 // 81 // GitHub API docs: https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset 82 // 83 //meta:operation PUT /orgs/{org}/rulesets/{ruleset_id} 84 func (s *OrganizationsService) UpdateOrganizationRuleset(ctx context.Context, org string, rulesetID int64, rs *Ruleset) (*Ruleset, *Response, error) { 85 u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID) 86 87 req, err := s.client.NewRequest("PUT", u, rs) 88 if err != nil { 89 return nil, nil, err 90 } 91 92 var ruleset *Ruleset 93 resp, err := s.client.Do(ctx, req, &ruleset) 94 if err != nil { 95 return nil, resp, err 96 } 97 98 return ruleset, resp, nil 99 } 100 101 // DeleteOrganizationRuleset deletes a ruleset from the specified organization. 102 // 103 // GitHub API docs: https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset 104 // 105 //meta:operation DELETE /orgs/{org}/rulesets/{ruleset_id} 106 func (s *OrganizationsService) DeleteOrganizationRuleset(ctx context.Context, org string, rulesetID int64) (*Response, error) { 107 u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID) 108 109 req, err := s.client.NewRequest("DELETE", u, nil) 110 if err != nil { 111 return nil, err 112 } 113 114 return s.client.Do(ctx, req, nil) 115 }