Skip to content

Commit c752cce

Browse files
authored
Improve error feedback for duplicate deploy keys (#13112)
Instead of a generic HTTP 500 error page, a flash message is rendered with the deploy key page template to inform the user that a key with the intended title already exists. Fixes #13110
1 parent 0e4f663 commit c752cce

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

models/error.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ func IsErrDeployKeyNameAlreadyUsed(err error) bool {
547547
}
548548

549549
func (err ErrDeployKeyNameAlreadyUsed) Error() string {
550-
return fmt.Sprintf("public key already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
550+
return fmt.Sprintf("public key with name already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
551551
}
552552

553553
// _____ ___________ __

routers/api/v1/repo/key.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,8 @@ func HandleAddKeyError(ctx *context.APIContext, err error) {
177177
ctx.Error(http.StatusUnprocessableEntity, "", "Key content has been used as non-deploy key")
178178
case models.IsErrKeyNameAlreadyUsed(err):
179179
ctx.Error(http.StatusUnprocessableEntity, "", "Key title has been used")
180+
case models.IsErrDeployKeyNameAlreadyUsed(err):
181+
ctx.Error(http.StatusUnprocessableEntity, "", "A key with the same name already exists")
180182
default:
181183
ctx.Error(http.StatusInternalServerError, "AddKey", err)
182184
}

routers/repo/setting.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,9 @@ func DeployKeysPost(ctx *context.Context, form auth.AddKeyForm) {
885885
case models.IsErrKeyNameAlreadyUsed(err):
886886
ctx.Data["Err_Title"] = true
887887
ctx.RenderWithErr(ctx.Tr("repo.settings.key_name_used"), tplDeployKeys, &form)
888+
case models.IsErrDeployKeyNameAlreadyUsed(err):
889+
ctx.Data["Err_Title"] = true
890+
ctx.RenderWithErr(ctx.Tr("repo.settings.key_name_used"), tplDeployKeys, &form)
888891
default:
889892
ctx.ServerError("AddDeployKey", err)
890893
}

0 commit comments

Comments
 (0)