Skip to content

Commit a0a5611

Browse files
Merge branch 'main' into release/v0.1
2 parents 481ce34 + 9e849ed commit a0a5611

File tree

941 files changed

+113392
-5707
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

941 files changed

+113392
-5707
lines changed

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ Once you've configured your database, providers and github credentials, you'll n
120120

121121
At this point, you should be done. Have a look at the [running garm document](/doc/running_garm.md) for usage instructions and available features.
122122

123-
If you would like to use ```garm``` with a different IaaS than the ones already available, have a loot at the [writing an external provider](/doc/external_provider.md) page.
123+
If you would like to use ```garm``` with a different IaaS than the ones already available, have a look at the [writing an external provider](/doc/external_provider.md) page.
124+
125+
If you like to optimize the startup time of new instance, take a look at the [performance considerations](/doc/performance_considerations.md) page.
124126

125127
## Security considerations
126128

apiserver/controllers/controllers.go

+14
Original file line numberDiff line numberDiff line change
@@ -306,3 +306,17 @@ func (a *APIController) ListProviders(w http.ResponseWriter, r *http.Request) {
306306
log.Printf("failed to encode response: %q", err)
307307
}
308308
}
309+
310+
func (a *APIController) ListAllJobs(w http.ResponseWriter, r *http.Request) {
311+
ctx := r.Context()
312+
jobs, err := a.r.ListAllJobs(ctx)
313+
if err != nil {
314+
handleError(w, err)
315+
return
316+
}
317+
318+
w.Header().Set("Content-Type", "application/json")
319+
if err := json.NewEncoder(w).Encode(jobs); err != nil {
320+
log.Printf("failed to encode response: %q", err)
321+
}
322+
}

apiserver/controllers/enterprises.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func (a *APIController) UpdateEnterpriseHandler(w http.ResponseWriter, r *http.R
136136
return
137137
}
138138

139-
var updatePayload runnerParams.UpdateRepositoryParams
139+
var updatePayload runnerParams.UpdateEntityParams
140140
if err := json.NewDecoder(r.Body).Decode(&updatePayload); err != nil {
141141
handleError(w, gErrors.ErrBadRequest)
142142
return

apiserver/controllers/instances.go

+48
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,20 @@ func (a *APIController) ListPoolInstancesHandler(w http.ResponseWriter, r *http.
5454
}
5555
}
5656

57+
// swagger:route GET /instances/{instanceName} instances GetInstance
58+
//
59+
// Get runner instance by name.
60+
//
61+
// Parameters:
62+
// + name: instanceName
63+
// description: Runner instance name.
64+
// type: string
65+
// in: path
66+
// required: true
67+
//
68+
// Responses:
69+
// 200: Instance
70+
// default: APIErrorResponse
5771
func (a *APIController) GetInstanceHandler(w http.ResponseWriter, r *http.Request) {
5872
ctx := r.Context()
5973
vars := mux.Vars(r)
@@ -82,6 +96,19 @@ func (a *APIController) GetInstanceHandler(w http.ResponseWriter, r *http.Reques
8296
}
8397
}
8498

99+
// swagger:route DELETE /instances/{instanceName} instances DeleteInstance
100+
//
101+
// Delete runner instance by name.
102+
//
103+
// Parameters:
104+
// + name: instanceName
105+
// description: Runner instance name.
106+
// type: string
107+
// in: path
108+
// required: true
109+
//
110+
// Responses:
111+
// default: APIErrorResponse
85112
func (a *APIController) DeleteInstanceHandler(w http.ResponseWriter, r *http.Request) {
86113
ctx := r.Context()
87114
vars := mux.Vars(r)
@@ -107,6 +134,20 @@ func (a *APIController) DeleteInstanceHandler(w http.ResponseWriter, r *http.Req
107134
w.WriteHeader(http.StatusOK)
108135
}
109136

137+
// swagger:route GET /repositories/{repoID}/instances repositories instances ListRepoInstances
138+
//
139+
// List repository instances.
140+
//
141+
// Parameters:
142+
// + name: repoID
143+
// description: Repository ID.
144+
// type: string
145+
// in: path
146+
// required: true
147+
//
148+
// Responses:
149+
// 200: Instances
150+
// default: APIErrorResponse
110151
func (a *APIController) ListRepoInstancesHandler(w http.ResponseWriter, r *http.Request) {
111152
ctx := r.Context()
112153
vars := mux.Vars(r)
@@ -191,6 +232,13 @@ func (a *APIController) ListEnterpriseInstancesHandler(w http.ResponseWriter, r
191232
}
192233
}
193234

235+
// swagger:route GET /instances instances ListInstances
236+
//
237+
// Get all runners' instances.
238+
//
239+
// Responses:
240+
// 200: Instances
241+
// default: APIErrorResponse
194242
func (a *APIController) ListAllInstancesHandler(w http.ResponseWriter, r *http.Request) {
195243
ctx := r.Context()
196244

apiserver/controllers/organizations.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func (a *APIController) UpdateOrgHandler(w http.ResponseWriter, r *http.Request)
136136
return
137137
}
138138

139-
var updatePayload runnerParams.UpdateRepositoryParams
139+
var updatePayload runnerParams.UpdateEntityParams
140140
if err := json.NewDecoder(r.Body).Decode(&updatePayload); err != nil {
141141
handleError(w, gErrors.ErrBadRequest)
142142
return

apiserver/controllers/repositories.go

+168-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,20 @@ import (
2626
"github.com/gorilla/mux"
2727
)
2828

29+
// swagger:route POST /repositories repositories CreateRepo
30+
//
31+
// Create repository with the parameters given.
32+
//
33+
// Parameters:
34+
// + name: Body
35+
// description: Parameters used when creating the repository.
36+
// type: CreateRepoParams
37+
// in: body
38+
// required: true
39+
//
40+
// Responses:
41+
// 200: Repository
42+
// default: APIErrorResponse
2943
func (a *APIController) CreateRepoHandler(w http.ResponseWriter, r *http.Request) {
3044
ctx := r.Context()
3145

@@ -48,6 +62,13 @@ func (a *APIController) CreateRepoHandler(w http.ResponseWriter, r *http.Request
4862
}
4963
}
5064

65+
// swagger:route GET /repositories repositories ListRepos
66+
//
67+
// List repositories.
68+
//
69+
// Responses:
70+
// 200: Repositories
71+
// default: APIErrorResponse
5172
func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request) {
5273
ctx := r.Context()
5374

@@ -64,6 +85,20 @@ func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request)
6485
}
6586
}
6687

88+
// swagger:route GET /repositories/{repoID} repositories GetRepo
89+
//
90+
// Get repository by ID.
91+
//
92+
// Parameters:
93+
// + name: repoID
94+
// description: ID of the repository to fetch.
95+
// type: string
96+
// in: path
97+
// required: true
98+
//
99+
// Responses:
100+
// 200: Repository
101+
// default: APIErrorResponse
67102
func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Request) {
68103
ctx := r.Context()
69104

@@ -93,6 +128,19 @@ func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Reques
93128
}
94129
}
95130

131+
// swagger:route DELETE /repositories/{repoID} repositories DeleteRepo
132+
//
133+
// Delete repository by ID.
134+
//
135+
// Parameters:
136+
// + name: repoID
137+
// description: ID of the repository to delete.
138+
// type: string
139+
// in: path
140+
// required: true
141+
//
142+
// Responses:
143+
// default: APIErrorResponse
96144
func (a *APIController) DeleteRepoHandler(w http.ResponseWriter, r *http.Request) {
97145
ctx := r.Context()
98146

@@ -120,6 +168,26 @@ func (a *APIController) DeleteRepoHandler(w http.ResponseWriter, r *http.Request
120168

121169
}
122170

171+
// swagger:route PUT /repositories/{repoID} repositories UpdateRepo
172+
//
173+
// Update repository with the parameters given.
174+
//
175+
// Parameters:
176+
// + name: repoID
177+
// description: ID of the repository to update.
178+
// type: string
179+
// in: path
180+
// required: true
181+
//
182+
// + name: Body
183+
// description: Parameters used when updating the repository.
184+
// type: UpdateEntityParams
185+
// in: body
186+
// required: true
187+
//
188+
// Responses:
189+
// 200: Repository
190+
// default: APIErrorResponse
123191
func (a *APIController) UpdateRepoHandler(w http.ResponseWriter, r *http.Request) {
124192
ctx := r.Context()
125193

@@ -136,7 +204,7 @@ func (a *APIController) UpdateRepoHandler(w http.ResponseWriter, r *http.Request
136204
return
137205
}
138206

139-
var updatePayload runnerParams.UpdateRepositoryParams
207+
var updatePayload runnerParams.UpdateEntityParams
140208
if err := json.NewDecoder(r.Body).Decode(&updatePayload); err != nil {
141209
handleError(w, gErrors.ErrBadRequest)
142210
return
@@ -155,6 +223,26 @@ func (a *APIController) UpdateRepoHandler(w http.ResponseWriter, r *http.Request
155223
}
156224
}
157225

226+
// swagger:route POST /repositories/{repoID}/pools repositories pools CreateRepoPool
227+
//
228+
// Create repository pool with the parameters given.
229+
//
230+
// Parameters:
231+
// + name: repoID
232+
// description: Repository ID.
233+
// type: string
234+
// in: path
235+
// required: true
236+
//
237+
// + name: Body
238+
// description: Parameters used when creating the repository pool.
239+
// type: CreatePoolParams
240+
// in: body
241+
// required: true
242+
//
243+
// Responses:
244+
// 200: Pool
245+
// default: APIErrorResponse
158246
func (a *APIController) CreateRepoPoolHandler(w http.ResponseWriter, r *http.Request) {
159247
ctx := r.Context()
160248

@@ -191,6 +279,20 @@ func (a *APIController) CreateRepoPoolHandler(w http.ResponseWriter, r *http.Req
191279
}
192280
}
193281

282+
// swagger:route GET /repositories/{repoID}/pools repositories pools ListRepoPools
283+
//
284+
// List repository pools.
285+
//
286+
// Parameters:
287+
// + name: repoID
288+
// description: Repository ID.
289+
// type: string
290+
// in: path
291+
// required: true
292+
//
293+
// Responses:
294+
// 200: Pools
295+
// default: APIErrorResponse
194296
func (a *APIController) ListRepoPoolsHandler(w http.ResponseWriter, r *http.Request) {
195297
ctx := r.Context()
196298
vars := mux.Vars(r)
@@ -219,6 +321,26 @@ func (a *APIController) ListRepoPoolsHandler(w http.ResponseWriter, r *http.Requ
219321
}
220322
}
221323

324+
// swagger:route GET /repositories/{repoID}/pools/{poolID} repositories pools GetRepoPool
325+
//
326+
// Get repository pool by ID.
327+
//
328+
// Parameters:
329+
// + name: repoID
330+
// description: Repository ID.
331+
// type: string
332+
// in: path
333+
// required: true
334+
//
335+
// + name: poolID
336+
// description: Pool ID.
337+
// type: string
338+
// in: path
339+
// required: true
340+
//
341+
// Responses:
342+
// 200: Pool
343+
// default: APIErrorResponse
222344
func (a *APIController) GetRepoPoolHandler(w http.ResponseWriter, r *http.Request) {
223345
ctx := r.Context()
224346
vars := mux.Vars(r)
@@ -248,6 +370,25 @@ func (a *APIController) GetRepoPoolHandler(w http.ResponseWriter, r *http.Reques
248370
}
249371
}
250372

373+
// swagger:route DELETE /repositories/{repoID}/pools/{poolID} repositories pools DeleteRepoPool
374+
//
375+
// Delete repository pool by ID.
376+
//
377+
// Parameters:
378+
// + name: repoID
379+
// description: Repository ID.
380+
// type: string
381+
// in: path
382+
// required: true
383+
//
384+
// + name: poolID
385+
// description: ID of the repository pool to delete.
386+
// type: string
387+
// in: path
388+
// required: true
389+
//
390+
// Responses:
391+
// default: APIErrorResponse
251392
func (a *APIController) DeleteRepoPoolHandler(w http.ResponseWriter, r *http.Request) {
252393
ctx := r.Context()
253394

@@ -276,6 +417,32 @@ func (a *APIController) DeleteRepoPoolHandler(w http.ResponseWriter, r *http.Req
276417

277418
}
278419

420+
// swagger:route PUT /repositories/{repoID}/pools/{poolID} repositories pools UpdateRepoPool
421+
//
422+
// Update repository pool with the parameters given.
423+
//
424+
// Parameters:
425+
// + name: repoID
426+
// description: Repository ID.
427+
// type: string
428+
// in: path
429+
// required: true
430+
//
431+
// + name: poolID
432+
// description: ID of the repository pool to update.
433+
// type: string
434+
// in: path
435+
// required: true
436+
//
437+
// + name: Body
438+
// description: Parameters used when updating the repository pool.
439+
// type: UpdatePoolParams
440+
// in: body
441+
// required: true
442+
//
443+
// Responses:
444+
// 200: Pool
445+
// default: APIErrorResponse
279446
func (a *APIController) UpdateRepoPoolHandler(w http.ResponseWriter, r *http.Request) {
280447
ctx := r.Context()
281448

0 commit comments

Comments
 (0)