@@ -6,6 +6,7 @@ package setting
66import (
77 "errors"
88 "net/http"
9+ "net/url"
910 "strings"
1011
1112 actions_model "gitea.dev/models/actions"
@@ -64,7 +65,7 @@ func EnvironmentCreate(ctx *context.Context) {
6465 }
6566
6667 ctx .Flash .Success (ctx .Tr ("environments.creation.success" , name ))
67- ctx .Redirect (ctx .Repo .RepoLink + "/settings/environments/" + name )
68+ ctx .Redirect (ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( name ) )
6869}
6970
7071// EnvironmentEdit renders the environment edit page (secrets + variables)
@@ -101,7 +102,7 @@ func EnvironmentEdit(ctx *context.Context) {
101102 ctx .Data ["Variables" ] = variables
102103 ctx .Data ["DataMaxLength" ] = secret_model .SecretDataMaxLength
103104 ctx .Data ["DescriptionMaxLength" ] = secret_model .SecretDescriptionMaxLength
104- ctx .Data ["Link" ] = ctx .Repo .RepoLink + "/settings/environments/" + envName
105+ ctx .Data ["Link" ] = ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( envName )
105106 ctx .HTML (http .StatusOK , tplEnvironmentEdit )
106107}
107108
@@ -121,7 +122,7 @@ func EnvironmentUpdate(ctx *context.Context) {
121122 } else {
122123 ctx .Flash .Success (ctx .Tr ("environments.update.success" ))
123124 }
124- ctx .Redirect (ctx .Repo .RepoLink + "/settings/environments/" + envName )
125+ ctx .Redirect (ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( envName ) )
125126}
126127
127128// EnvironmentDelete handles POST to delete an environment
@@ -151,7 +152,7 @@ func EnvironmentSecretPost(ctx *context.Context) {
151152 return
152153 }
153154
154- redirectURL := ctx .Repo .RepoLink + "/settings/environments/" + envName
155+ redirectURL := ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( envName )
155156 form := web .GetForm (ctx ).(* forms.AddSecretForm )
156157
157158 if err := secret_service .ValidateName (form .Name ); err != nil {
@@ -195,7 +196,7 @@ func EnvironmentSecretDelete(ctx *context.Context) {
195196 }
196197
197198 ctx .Flash .Success (ctx .Tr ("secrets.deletion.success" ))
198- ctx .JSONRedirect (ctx .Repo .RepoLink + "/settings/environments/" + envName )
199+ ctx .JSONRedirect (ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( envName ) )
199200}
200201
201202// EnvironmentVariableCreate handles POST for creating an environment variable
@@ -207,7 +208,7 @@ func EnvironmentVariableCreate(ctx *context.Context) {
207208 return
208209 }
209210
210- redirectURL := ctx .Repo .RepoLink + "/settings/environments/" + envName
211+ redirectURL := ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( envName )
211212 form := web .GetForm (ctx ).(* forms.EditVariableForm )
212213
213214 _ , err = actions_service .CreateEnvVariable (ctx , ctx .Repo .Repository .ID , env .ID , form .Name , form .Data , form .Description )
@@ -228,7 +229,7 @@ func EnvironmentVariableUpdate(ctx *context.Context) {
228229 return
229230 }
230231
231- redirectURL := ctx .Repo .RepoLink + "/settings/environments/" + envName
232+ redirectURL := ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( envName )
232233 variableID := ctx .PathParamInt64 ("variable_id" )
233234 form := web .GetForm (ctx ).(* forms.EditVariableForm )
234235
@@ -257,5 +258,5 @@ func EnvironmentVariableDelete(ctx *context.Context) {
257258 }
258259
259260 ctx .Flash .Success (ctx .Tr ("actions.variables.deletion.success" ))
260- ctx .JSONRedirect (ctx .Repo .RepoLink + "/settings/environments/" + envName )
261+ ctx .JSONRedirect (ctx .Repo .RepoLink + "/settings/environments/" + url . PathEscape ( envName ) )
261262}
0 commit comments