Skip to content

Commit f9a5b4d

Browse files
authored
fix(api): hooks uservice calls getWorkflowRunHandler (#6134)
1 parent 3a70613 commit f9a5b4d

5 files changed

+45
-41
lines changed

engine/api/api_routes.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ func (api *API) InitRouter() {
270270
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/latest", Scope(sdk.AuthConsumerScopeRun), r.GET(api.getLatestWorkflowRunHandler))
271271
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/tags", Scope(sdk.AuthConsumerScopeRun), r.GET(api.getWorkflowRunTagsHandler))
272272
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/num", Scope(sdk.AuthConsumerScopeRun), r.GET(api.getWorkflowRunNumHandler), r.POST(api.postWorkflowRunNumHandler))
273-
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}", Scopes(sdk.AuthConsumerScopeRun, sdk.AuthConsumerScopeRunExecution), r.GET(api.getWorkflowRunHandler), r.DELETE(api.deleteWorkflowRunHandler))
273+
r.Handle("/project/{key}/workflows/{permWorkflowNameAdvanced}/runs/{number}", Scopes(sdk.AuthConsumerScopeRun, sdk.AuthConsumerScopeRunExecution), r.GET(api.getWorkflowRunHandler), r.DELETE(api.deleteWorkflowRunHandler))
274274
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}/stop", Scope(sdk.AuthConsumerScopeRun), r.POSTEXECUTE(api.stopWorkflowRunHandler, MaintenanceAware()))
275275
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}/vcs/resync", Scope(sdk.AuthConsumerScopeRun), r.POSTEXECUTE(api.postResyncVCSWorkflowRunHandler))
276276
r.Handle("/project/{key}/workflows/{permWorkflowNameAdvanced}/runs/{number}/artifacts/links", Scopes(sdk.AuthConsumerScopeRun, sdk.AuthConsumerScopeRunExecution), r.GET(api.getWorkflowRunArtifactLinksHandler))

engine/api/workflow.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (api *API) getWorkflowsHandler() service.Handler {
8484
}
8585

8686
func (api *API) setWorkflowURLs(w1 *sdk.Workflow) {
87-
w1.URLs.APIURL = api.Config.URL.API + api.Router.GetRoute("GET", api.getWorkflowHandler, map[string]string{"key": w1.ProjectKey, "permWorkflowName": w1.Name})
87+
w1.URLs.APIURL = api.Config.URL.API + api.Router.GetRoute("GET", api.getWorkflowHandler, map[string]string{"key": w1.ProjectKey, "permWorkflowNameAdvanced": w1.Name})
8888
w1.URLs.UIURL = api.Config.URL.UI + "/project/" + w1.ProjectKey + "/workflow/" + w1.Name
8989

9090
for j := range w1.Runs {
@@ -94,7 +94,7 @@ func (api *API) setWorkflowURLs(w1 *sdk.Workflow) {
9494
}
9595

9696
func (api *API) setWorkflowRunURLs(r1 *sdk.WorkflowRun) {
97-
r1.URLs.APIURL = api.Config.URL.API + api.Router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{"key": r1.Workflow.ProjectKey, "permWorkflowName": r1.Workflow.Name, "number": strconv.FormatInt(r1.Number, 10)})
97+
r1.URLs.APIURL = api.Config.URL.API + api.Router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{"key": r1.Workflow.ProjectKey, "permWorkflowNameAdvanced": r1.Workflow.Name, "number": strconv.FormatInt(r1.Number, 10)})
9898
r1.URLs.UIURL = api.Config.URL.UI + "/project/" + r1.Workflow.ProjectKey + "/workflow/" + r1.Workflow.Name + "/run/" + strconv.FormatInt(r1.Number, 10)
9999
}
100100

engine/api/workflow_queue_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -243,9 +243,9 @@ func testRunWorkflowForProject(t *testing.T, api *API, router *Router, proj *sdk
243243
cpt := 0
244244
for {
245245
varsGet := map[string]string{
246-
"key": proj.Key,
247-
"permWorkflowName": w1.Name,
248-
"number": fmt.Sprintf("%d", wr.Number),
246+
"key": proj.Key,
247+
"permWorkflowNameAdvanced": w1.Name,
248+
"number": fmt.Sprintf("%d", wr.Number),
249249
}
250250
uriGet := router.GetRoute("GET", api.getWorkflowRunHandler, varsGet)
251251
require.NotEmpty(t, uriGet)
@@ -765,9 +765,9 @@ func Test_postWorkflowJobResultHandler(t *testing.T) {
765765
require.Equal(t, 204, rec.Code)
766766

767767
uri = router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{
768-
"key": ctx.project.Key,
769-
"permWorkflowName": ctx.workflow.Name,
770-
"number": fmt.Sprintf("%d", ctx.run.Number),
768+
"key": ctx.project.Key,
769+
"permWorkflowNameAdvanced": ctx.workflow.Name,
770+
"number": fmt.Sprintf("%d", ctx.run.Number),
771771
})
772772
req = assets.NewJWTAuthentifiedRequest(t, ctx.userToken, "GET", uri+"?withDetails=true", res)
773773

engine/api/workflow_run.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ func (api *API) getWorkflowRunHandler() service.Handler {
265265
return func(ctx context.Context, w http.ResponseWriter, r *http.Request) error {
266266
vars := mux.Vars(r)
267267
key := vars["key"]
268-
name := vars["permWorkflowName"]
268+
name := vars["permWorkflowNameAdvanced"]
269269
number, err := requestVarInt(r, "number")
270270
if err != nil {
271271
return err
@@ -311,9 +311,13 @@ func (api *API) getWorkflowRunHandler() service.Handler {
311311

312312
func (api *API) deleteWorkflowRunHandler() service.Handler {
313313
return func(ctx context.Context, w http.ResponseWriter, r *http.Request) error {
314+
if isHooks(ctx) {
315+
return sdk.WithStack(sdk.ErrForbidden)
316+
}
317+
314318
vars := mux.Vars(r)
315319
key := vars["key"]
316-
name := vars["permWorkflowName"]
320+
name := vars["permWorkflowNameAdvanced"]
317321
number, err := requestVarInt(r, "number")
318322
if err != nil {
319323
return err

engine/api/workflow_run_test.go

+30-30
Original file line numberDiff line numberDiff line change
@@ -667,9 +667,9 @@ func Test_getWorkflowRunHandler(t *testing.T) {
667667

668668
//Prepare request
669669
vars := map[string]string{
670-
"key": proj.Key,
671-
"permWorkflowName": w1.Name,
672-
"number": "9",
670+
"key": proj.Key,
671+
"permWorkflowNameAdvanced": w1.Name,
672+
"number": "9",
673673
}
674674
uri := router.GetRoute("GET", api.getWorkflowRunHandler, vars)
675675
test.NotEmpty(t, uri)
@@ -1429,9 +1429,9 @@ func Test_postWorkflowRunAsyncFailedHandler(t *testing.T) {
14291429
for {
14301430
t.Logf("Attempt getWorkflowRunHandler #%d", cpt)
14311431
varsGet := map[string]string{
1432-
"key": proj.Key,
1433-
"permWorkflowName": w1.Name,
1434-
"number": "1",
1432+
"key": proj.Key,
1433+
"permWorkflowNameAdvanced": w1.Name,
1434+
"number": "1",
14351435
}
14361436
uriGet := router.GetRoute("GET", api.getWorkflowRunHandler, varsGet)
14371437
reqGet := assets.NewAuthentifiedRequest(t, u, pass, "GET", uriGet, nil)
@@ -1969,9 +1969,9 @@ func Test_postWorkflowRunHandlerMutexRelease(t *testing.T) {
19691969
try++
19701970
t.Logf("Attempt #%d on getWorkflowRunHandler for run 1", try)
19711971
uri := router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{
1972-
"key": proj.Key,
1973-
"permWorkflowName": wkf.Name,
1974-
"number": "1",
1972+
"key": proj.Key,
1973+
"permWorkflowNameAdvanced": wkf.Name,
1974+
"number": "1",
19751975
})
19761976
req := assets.NewAuthentifiedRequest(t, u, jwt, "GET", uri, nil)
19771977
rec := httptest.NewRecorder()
@@ -2015,9 +2015,9 @@ func Test_postWorkflowRunHandlerMutexRelease(t *testing.T) {
20152015
try++
20162016
t.Logf("Attempt #%d on getWorkflowRunHandler for run 2", try)
20172017
uri := router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{
2018-
"key": proj.Key,
2019-
"permWorkflowName": wkf.Name,
2020-
"number": "2",
2018+
"key": proj.Key,
2019+
"permWorkflowNameAdvanced": wkf.Name,
2020+
"number": "2",
20212021
})
20222022
req := assets.NewAuthentifiedRequest(t, u, jwt, "GET", uri, nil)
20232023
rec := httptest.NewRecorder()
@@ -2064,9 +2064,9 @@ func Test_postWorkflowRunHandlerMutexRelease(t *testing.T) {
20642064
try++
20652065
t.Logf("Attempt #%d on getWorkflowRunHandler for run 3", try)
20662066
uri := router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{
2067-
"key": proj.Key,
2068-
"permWorkflowName": wkf.Name,
2069-
"number": "3",
2067+
"key": proj.Key,
2068+
"permWorkflowNameAdvanced": wkf.Name,
2069+
"number": "3",
20702070
})
20712071
req := assets.NewAuthentifiedRequest(t, u, jwt, "GET", uri, nil)
20722072
rec := httptest.NewRecorder()
@@ -2110,9 +2110,9 @@ func Test_postWorkflowRunHandlerMutexRelease(t *testing.T) {
21102110
try++
21112111
t.Logf("Attempt #%d on getWorkflowRunHandler for run 1", try)
21122112
uri := router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{
2113-
"key": proj.Key,
2114-
"permWorkflowName": wkf.Name,
2115-
"number": "1",
2113+
"key": proj.Key,
2114+
"permWorkflowNameAdvanced": wkf.Name,
2115+
"number": "1",
21162116
})
21172117
req := assets.NewAuthentifiedRequest(t, u, jwt, "GET", uri, nil)
21182118
rec := httptest.NewRecorder()
@@ -2142,9 +2142,9 @@ func Test_postWorkflowRunHandlerMutexRelease(t *testing.T) {
21422142
try++
21432143
t.Logf("Attempt #%d on getWorkflowRunHandler for run 2", try)
21442144
uri := router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{
2145-
"key": proj.Key,
2146-
"permWorkflowName": wkf.Name,
2147-
"number": "2",
2145+
"key": proj.Key,
2146+
"permWorkflowNameAdvanced": wkf.Name,
2147+
"number": "2",
21482148
})
21492149
req := assets.NewAuthentifiedRequest(t, u, jwt, "GET", uri, nil)
21502150
rec := httptest.NewRecorder()
@@ -2174,9 +2174,9 @@ func Test_postWorkflowRunHandlerMutexRelease(t *testing.T) {
21742174
try++
21752175
t.Logf("Attempt #%d on getWorkflowRunHandler for run 3", try)
21762176
uri := router.GetRoute("GET", api.getWorkflowRunHandler, map[string]string{
2177-
"key": proj.Key,
2178-
"permWorkflowName": wkf.Name,
2179-
"number": "3",
2177+
"key": proj.Key,
2178+
"permWorkflowNameAdvanced": wkf.Name,
2179+
"number": "3",
21802180
})
21812181
req := assets.NewAuthentifiedRequest(t, u, jwt, "GET", uri, nil)
21822182
rec := httptest.NewRecorder()
@@ -2812,9 +2812,9 @@ func Test_deleteWorkflowRunHandler(t *testing.T) {
28122812
assert.NoError(t, err)
28132813
//Prepare request
28142814
vars := map[string]string{
2815-
"key": proj.Key,
2816-
"permWorkflowName": w1.Name,
2817-
"number": fmt.Sprintf("%d", wr.Number),
2815+
"key": proj.Key,
2816+
"permWorkflowNameAdvanced": w1.Name,
2817+
"number": fmt.Sprintf("%d", wr.Number),
28182818
}
28192819
uri := router.GetRoute("DELETE", api.deleteWorkflowRunHandler, vars)
28202820
test.NotEmpty(t, uri)
@@ -2827,9 +2827,9 @@ func Test_deleteWorkflowRunHandler(t *testing.T) {
28272827

28282828
//Prepare request
28292829
vars = map[string]string{
2830-
"key": proj.Key,
2831-
"permWorkflowName": w1.Name,
2832-
"number": fmt.Sprintf("%d", wr.Number),
2830+
"key": proj.Key,
2831+
"permWorkflowNameAdvanced": w1.Name,
2832+
"number": fmt.Sprintf("%d", wr.Number),
28332833
}
28342834
uri = router.GetRoute("GET", api.getWorkflowRunHandler, vars)
28352835
test.NotEmpty(t, uri)

0 commit comments

Comments
 (0)