1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package gitlab
18
19 import (
20 "fmt"
21 "net/http"
22 "time"
23 )
24
25
26
27
28
29
30 type ProjectRepositoryStorageMoveService struct {
31 client *Client
32 }
33
34
35
36
37
38 type ProjectRepositoryStorageMove struct {
39 ID int `json:"id"`
40 CreatedAt *time.Time `json:"created_at"`
41 State string `json:"state"`
42 SourceStorageName string `json:"source_storage_name"`
43 DestinationStorageName string `json:"destination_storage_name"`
44 Project *RepositoryProject `json:"project"`
45 }
46
47 type RepositoryProject struct {
48 ID int `json:"id"`
49 Description string `json:"description"`
50 Name string `json:"name"`
51 NameWithNamespace string `json:"name_with_namespace"`
52 Path string `json:"path"`
53 PathWithNamespace string `json:"path_with_namespace"`
54 CreatedAt *time.Time `json:"created_at"`
55 }
56
57
58
59
60
61
62 type RetrieveAllProjectStorageMovesOptions ListOptions
63
64
65
66
67
68
69 func (p ProjectRepositoryStorageMoveService) RetrieveAllStorageMoves(opts RetrieveAllProjectStorageMovesOptions, options ...RequestOptionFunc) ([]*ProjectRepositoryStorageMove, *Response, error) {
70 req, err := p.client.NewRequest(http.MethodGet, "project_repository_storage_moves", opts, options)
71 if err != nil {
72 return nil, nil, err
73 }
74
75 var psms []*ProjectRepositoryStorageMove
76 resp, err := p.client.Do(req, &psms)
77 if err != nil {
78 return nil, resp, err
79 }
80
81 return psms, resp, err
82 }
83
84
85
86
87
88
89 func (p ProjectRepositoryStorageMoveService) RetrieveAllStorageMovesForProject(project int, opts RetrieveAllProjectStorageMovesOptions, options ...RequestOptionFunc) ([]*ProjectRepositoryStorageMove, *Response, error) {
90 u := fmt.Sprintf("projects/%d/repository_storage_moves", project)
91
92 req, err := p.client.NewRequest(http.MethodGet, u, opts, options)
93 if err != nil {
94 return nil, nil, err
95 }
96
97 var psms []*ProjectRepositoryStorageMove
98 resp, err := p.client.Do(req, &psms)
99 if err != nil {
100 return nil, resp, err
101 }
102
103 return psms, resp, err
104 }
105
106
107
108
109
110 func (p ProjectRepositoryStorageMoveService) GetStorageMove(repositoryStorage int, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error) {
111 u := fmt.Sprintf("project_repository_storage_moves/%d", repositoryStorage)
112
113 req, err := p.client.NewRequest(http.MethodGet, u, nil, options)
114 if err != nil {
115 return nil, nil, err
116 }
117
118 psm := new(ProjectRepositoryStorageMove)
119 resp, err := p.client.Do(req, psm)
120 if err != nil {
121 return nil, resp, err
122 }
123
124 return psm, resp, err
125 }
126
127
128
129
130
131 func (p ProjectRepositoryStorageMoveService) GetStorageMoveForProject(project int, repositoryStorage int, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error) {
132 u := fmt.Sprintf("projects/%d/repository_storage_moves/%d", project, repositoryStorage)
133
134 req, err := p.client.NewRequest(http.MethodGet, u, nil, options)
135 if err != nil {
136 return nil, nil, err
137 }
138
139 psm := new(ProjectRepositoryStorageMove)
140 resp, err := p.client.Do(req, psm)
141 if err != nil {
142 return nil, resp, err
143 }
144
145 return psm, resp, err
146 }
147
148
149
150
151
152
153 type ScheduleStorageMoveForProjectOptions struct {
154 DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
155 }
156
157
158
159
160
161 func (p ProjectRepositoryStorageMoveService) ScheduleStorageMoveForProject(project int, opts ScheduleStorageMoveForProjectOptions, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error) {
162 u := fmt.Sprintf("projects/%d/repository_storage_moves", project)
163
164 req, err := p.client.NewRequest(http.MethodPost, u, opts, options)
165 if err != nil {
166 return nil, nil, err
167 }
168
169 psm := new(ProjectRepositoryStorageMove)
170 resp, err := p.client.Do(req, psm)
171 if err != nil {
172 return nil, resp, err
173 }
174
175 return psm, resp, err
176 }
177
178
179
180
181
182
183 type ScheduleAllProjectStorageMovesOptions struct {
184 SourceStorageName *string `url:"source_storage_name,omitempty" json:"source_storage_name,omitempty"`
185 DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
186 }
187
188
189
190
191
192 func (p ProjectRepositoryStorageMoveService) ScheduleAllStorageMoves(opts ScheduleAllProjectStorageMovesOptions, options ...RequestOptionFunc) (*Response, error) {
193 req, err := p.client.NewRequest(http.MethodPost, "project_repository_storage_moves", opts, options)
194 if err != nil {
195 return nil, err
196 }
197
198 return p.client.Do(req, nil)
199 }
200
View as plain text