MCPcopy Create free account
hub / github.com/gogs/gogs / SettingsDeployKeysPost

Function SettingsDeployKeysPost

internal/route/repo/setting.go:672–720  ·  view source on GitHub ↗
(c *context.Context, f form.AddSSHKey)

Source from the content-addressed store, hash-verified

670}
671
672func SettingsDeployKeysPost(c *context.Context, f form.AddSSHKey) {
673 c.Data["Title"] = c.Tr("repo.settings.deploy_keys")
674 c.Data["PageIsSettingsKeys"] = true
675
676 keys, err := database.ListDeployKeys(c.Repo.Repository.ID)
677 if err != nil {
678 c.Error(err, "list deploy keys")
679 return
680 }
681 c.Data["Deploykeys"] = keys
682
683 if c.HasError() {
684 c.HTML(http.StatusBadRequest, tmplRepoSettingsDeployKeys)
685 return
686 }
687
688 content, err := database.CheckPublicKeyString(f.Content)
689 if err != nil {
690 if database.IsErrKeyUnableVerify(err) {
691 c.Flash.Info(c.Tr("form.unable_verify_ssh_key"))
692 } else {
693 c.Data["HasError"] = true
694 c.Data["Err_Content"] = true
695 c.Flash.Error(c.Tr("form.invalid_ssh_key", err.Error()))
696 c.Redirect(c.Repo.RepoLink + "/settings/keys")
697 return
698 }
699 }
700
701 key, err := database.AddDeployKey(c.Repo.Repository.ID, f.Title, content)
702 if err != nil {
703 c.Data["HasError"] = true
704 switch {
705 case database.IsErrKeyAlreadyExist(err):
706 c.Data["Err_Content"] = true
707 c.RenderWithErr(c.Tr("repo.settings.key_been_used"), http.StatusUnprocessableEntity, tmplRepoSettingsDeployKeys, &f)
708 case database.IsErrKeyNameAlreadyUsed(err):
709 c.Data["Err_Title"] = true
710 c.RenderWithErr(c.Tr("repo.settings.key_name_used"), http.StatusUnprocessableEntity, tmplRepoSettingsDeployKeys, &f)
711 default:
712 c.Error(err, "add deploy key")
713 }
714 return
715 }
716
717 log.Trace("Deploy key added: %d", c.Repo.Repository.ID)
718 c.Flash.Success(c.Tr("repo.settings.add_key_success", key.Name))
719 c.Redirect(c.Repo.RepoLink + "/settings/keys")
720}
721
722func DeleteDeployKey(c *context.Context) {
723 if err := database.DeleteDeployKey(c.User, c.QueryInt64("id")); err != nil {

Callers

nothing calls this directly

Calls 13

ListDeployKeysFunction · 0.92
CheckPublicKeyStringFunction · 0.92
IsErrKeyUnableVerifyFunction · 0.92
AddDeployKeyFunction · 0.92
IsErrKeyAlreadyExistFunction · 0.92
IsErrKeyNameAlreadyUsedFunction · 0.92
TrMethod · 0.80
HasErrorMethod · 0.80
HTMLMethod · 0.80
RedirectMethod · 0.80
RenderWithErrMethod · 0.80
SuccessMethod · 0.80

Tested by

no test coverage detected