@@ -200,6 +200,7 @@ type DefaultReviewer struct {
200200 Links map [string ]map [string ]string
201201}
202202
203+
203204type DefaultReviewers struct {
204205 Page int
205206 Pagelen int
@@ -208,6 +209,20 @@ type DefaultReviewers struct {
208209 Next string
209210 DefaultReviewers []DefaultReviewer
210211}
212+ type EffectiveDefaultReviewer struct {
213+ User DefaultReviewer
214+ Type string
215+ ReviewerType string `mapstructure:"reviewer_type"`
216+ }
217+
218+ type EffectiveDefaultReviewers struct {
219+ Page int
220+ Pagelen int
221+ MaxDepth int
222+ Size int
223+ Next string
224+ EffectiveDefaultReviewers []EffectiveDefaultReviewer
225+ }
211226
212227type Group struct {
213228 AccountPrivilege string `mapstructure:"account_privilege"`
@@ -626,6 +641,16 @@ func (r *Repository) DeleteDefaultReviewer(rdro *RepositoryDefaultReviewerOption
626641 return r .c .execute ("DELETE" , urlStr , "" )
627642}
628643
644+ func (r * Repository ) ListEffectiveDefaultReviewers (ro * RepositoryOptions ) (* EffectiveDefaultReviewers , error ) {
645+ urlStr := r .c .requestUrl ("/repositories/%s/%s/effective-default-reviewers" , ro .Owner , ro .RepoSlug )
646+
647+ res , err := r .c .executePaginated ("GET" , urlStr , "" , nil )
648+ if err != nil {
649+ return nil , err
650+ }
651+ return decodeEffectiveDefaultReviewers (res )
652+ }
653+
629654func (r * Repository ) GetPipelineConfig (rpo * RepositoryPipelineOptions ) (* Pipeline , error ) {
630655 urlStr := r .c .requestUrl ("/repositories/%s/%s/pipelines_config" , rpo .Owner , rpo .RepoSlug )
631656 response , err := r .c .execute ("GET" , urlStr , "" )
@@ -1761,6 +1786,53 @@ func decodeDefaultReviewers(response interface{}) (*DefaultReviewers, error) {
17611786 return & defaultReviewerVariables , nil
17621787}
17631788
1789+
1790+ func decodeEffectiveDefaultReviewers (response interface {}) (* EffectiveDefaultReviewers , error ) {
1791+ responseMap := response .(map [string ]interface {})
1792+ values := responseMap ["values" ].([]interface {})
1793+ var variables []EffectiveDefaultReviewer
1794+ for _ , variable := range values {
1795+ var defaultReviewerVariable EffectiveDefaultReviewer
1796+ err := mapstructure .Decode (variable , & defaultReviewerVariable )
1797+ if err == nil {
1798+ variables = append (variables , defaultReviewerVariable )
1799+ }
1800+ }
1801+
1802+ page , ok := responseMap ["page" ].(float64 )
1803+ if ! ok {
1804+ page = 0
1805+ }
1806+
1807+ pagelen , ok := responseMap ["pagelen" ].(float64 )
1808+ if ! ok {
1809+ pagelen = 0
1810+ }
1811+ max_depth , ok := responseMap ["max_depth" ].(float64 )
1812+ if ! ok {
1813+ max_depth = 0
1814+ }
1815+ size , ok := responseMap ["size" ].(float64 )
1816+ if ! ok {
1817+ size = 0
1818+ }
1819+
1820+ next , ok := responseMap ["next" ].(string )
1821+ if ! ok {
1822+ next = ""
1823+ }
1824+
1825+ defaultReviewerVariables := EffectiveDefaultReviewers {
1826+ Page : int (page ),
1827+ Pagelen : int (pagelen ),
1828+ MaxDepth : int (max_depth ),
1829+ Size : int (size ),
1830+ Next : next ,
1831+ EffectiveDefaultReviewers : variables ,
1832+ }
1833+ return & defaultReviewerVariables , nil
1834+ }
1835+
17641836func decodeGroupPermissions (response interface {}) (* GroupPermission , error ) {
17651837 var groupPermission GroupPermission
17661838 err := mapstructure .Decode (response , & groupPermission )
0 commit comments