@@ -105,6 +105,23 @@ type PipelineBuildNumber struct {
105
105
Next int
106
106
}
107
107
108
+ type BranchingModel struct {
109
+ Type string
110
+ Branch_Types []BranchType
111
+ Development BranchDevelopment
112
+ }
113
+
114
+ type BranchType struct {
115
+ Kind string
116
+ Prefix string
117
+ }
118
+
119
+ type BranchDevelopment struct {
120
+ Name string
121
+ Branch RepositoryBranch
122
+ Use_Mainbranch bool
123
+ }
124
+
108
125
func (r * Repository ) Create (ro * RepositoryOptions ) (* Repository , error ) {
109
126
data := r .buildRepositoryBody (ro )
110
127
urlStr := r .c .requestUrl ("/repositories/%s/%s" , ro .Owner , ro .RepoSlug )
@@ -276,6 +293,15 @@ func (r *Repository) UpdatePipelineBuildNumber(rpbno *RepositoryPipelineBuildNum
276
293
return decodePipelineBuildNumberRepository (response )
277
294
}
278
295
296
+ func (r * Repository ) BranchingModel (rbmo * RepositoryBranchingModelOptions ) (* BranchingModel , error ) {
297
+ urlStr := r .c .requestUrl ("/repositories/%s/%s/branching-model" , rbmo .Owner , rbmo .RepoSlug )
298
+ response , err := r .c .execute ("GET" , urlStr , "" )
299
+ if err != nil {
300
+ return nil , err
301
+ }
302
+ return decodeBranchingModel (response )
303
+ }
304
+
279
305
func (r * Repository ) buildJsonBody (body map [string ]interface {}) string {
280
306
281
307
data , err := json .Marshal (body )
@@ -570,6 +596,22 @@ func decodePipelineBuildNumberRepository(repoResponse interface{}) (*PipelineBui
570
596
return pipelineBuildNumber , nil
571
597
}
572
598
599
+ func decodeBranchingModel (branchingModelResponse interface {}) (* BranchingModel , error ) {
600
+ branchingModelMap := branchingModelResponse .(map [string ]interface {})
601
+
602
+ if branchingModelMap ["type" ] == "error" {
603
+ return nil , DecodeError (branchingModelMap )
604
+ }
605
+
606
+ var branchingModel = new (BranchingModel )
607
+ err := mapstructure .Decode (branchingModelMap , branchingModel )
608
+ if err != nil {
609
+ return nil , err
610
+ }
611
+
612
+ return branchingModel , nil
613
+ }
614
+
573
615
func (rf RepositoryFile ) String () string {
574
616
return rf .Path
575
617
}
0 commit comments