github.com/google/go-github/v53@v53.2.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/en/rest/orgs/rules#get-all-organization-repository-rulesets 16 func (s *OrganizationsService) GetAllOrganizationRulesets(ctx context.Context, org string) ([]*Ruleset, *Response, error) { 17 u := fmt.Sprintf("orgs/%v/rulesets", org) 18 19 req, err := s.client.NewRequest("GET", u, nil) 20 if err != nil { 21 return nil, nil, err 22 } 23 24 var rulesets []*Ruleset 25 resp, err := s.client.Do(ctx, req, &rulesets) 26 if err != nil { 27 return nil, resp, err 28 } 29 30 return rulesets, resp, nil 31 } 32 33 // CreateOrganizationRuleset creates a ruleset for the specified organization. 34 // 35 // GitHub API docs: https://docs.github.com/en/rest/orgs/rules#create-an-organization-repository-ruleset 36 func (s *OrganizationsService) CreateOrganizationRuleset(ctx context.Context, org string, rs *Ruleset) (*Ruleset, *Response, error) { 37 u := fmt.Sprintf("orgs/%v/rulesets", org) 38 39 req, err := s.client.NewRequest("POST", u, rs) 40 if err != nil { 41 return nil, nil, err 42 } 43 44 var ruleset *Ruleset 45 resp, err := s.client.Do(ctx, req, &ruleset) 46 if err != nil { 47 return nil, resp, err 48 } 49 50 return ruleset, resp, nil 51 } 52 53 // GetOrganizationRuleset gets a ruleset from the specified organization. 54 // 55 // GitHub API docs: https://docs.github.com/en/rest/orgs/rules#get-an-organization-repository-ruleset 56 func (s *OrganizationsService) GetOrganizationRuleset(ctx context.Context, org string, rulesetID int64) (*Ruleset, *Response, error) { 57 u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID) 58 59 req, err := s.client.NewRequest("GET", u, nil) 60 if err != nil { 61 return nil, nil, err 62 } 63 64 var ruleset *Ruleset 65 resp, err := s.client.Do(ctx, req, &ruleset) 66 if err != nil { 67 return nil, resp, err 68 } 69 70 return ruleset, resp, nil 71 } 72 73 // UpdateOrganizationRuleset updates a ruleset from the specified organization. 74 // 75 // GitHub API docs: https://docs.github.com/en/rest/orgs/rules#update-an-organization-repository-ruleset 76 func (s *OrganizationsService) UpdateOrganizationRuleset(ctx context.Context, org string, rulesetID int64, rs *Ruleset) (*Ruleset, *Response, error) { 77 u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID) 78 79 req, err := s.client.NewRequest("PUT", u, rs) 80 if err != nil { 81 return nil, nil, err 82 } 83 84 var ruleset *Ruleset 85 resp, err := s.client.Do(ctx, req, &ruleset) 86 if err != nil { 87 return nil, resp, err 88 } 89 90 return ruleset, resp, nil 91 } 92 93 // DeleteOrganizationRuleset deletes a ruleset from the specified organization. 94 // 95 // GitHub API docs: https://docs.github.com/en/rest/orgs/rules#delete-an-organization-repository-ruleset 96 func (s *OrganizationsService) DeleteOrganizationRuleset(ctx context.Context, org string, rulesetID int64) (*Response, error) { 97 u := fmt.Sprintf("orgs/%v/rulesets/%v", org, rulesetID) 98 99 req, err := s.client.NewRequest("DELETE", u, nil) 100 if err != nil { 101 return nil, err 102 } 103 104 return s.client.Do(ctx, req, nil) 105 }