You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

secrets.go 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package secrets
  4. import (
  5. "code.gitea.io/gitea/models/db"
  6. secret_model "code.gitea.io/gitea/models/secret"
  7. "code.gitea.io/gitea/modules/log"
  8. "code.gitea.io/gitea/modules/util"
  9. "code.gitea.io/gitea/modules/web"
  10. "code.gitea.io/gitea/services/context"
  11. "code.gitea.io/gitea/services/forms"
  12. secret_service "code.gitea.io/gitea/services/secrets"
  13. )
  14. func SetSecretsContext(ctx *context.Context, ownerID, repoID int64) {
  15. secrets, err := db.Find[secret_model.Secret](ctx, secret_model.FindSecretsOptions{OwnerID: ownerID, RepoID: repoID})
  16. if err != nil {
  17. ctx.ServerError("FindSecrets", err)
  18. return
  19. }
  20. ctx.Data["Secrets"] = secrets
  21. }
  22. func PerformSecretsPost(ctx *context.Context, ownerID, repoID int64, redirectURL string) {
  23. form := web.GetForm(ctx).(*forms.AddSecretForm)
  24. s, _, err := secret_service.CreateOrUpdateSecret(ctx, ownerID, repoID, form.Name, util.ReserveLineBreakForTextarea(form.Data))
  25. if err != nil {
  26. log.Error("CreateOrUpdateSecret failed: %v", err)
  27. ctx.JSONError(ctx.Tr("secrets.creation.failed"))
  28. return
  29. }
  30. ctx.Flash.Success(ctx.Tr("secrets.creation.success", s.Name))
  31. ctx.JSONRedirect(redirectURL)
  32. }
  33. func PerformSecretsDelete(ctx *context.Context, ownerID, repoID int64, redirectURL string) {
  34. id := ctx.FormInt64("id")
  35. err := secret_service.DeleteSecretByID(ctx, ownerID, repoID, id)
  36. if err != nil {
  37. log.Error("DeleteSecretByID(%d) failed: %v", id, err)
  38. ctx.JSONError(ctx.Tr("secrets.deletion.failed"))
  39. return
  40. }
  41. ctx.Flash.Success(ctx.Tr("secrets.deletion.success"))
  42. ctx.JSONRedirect(redirectURL)
  43. }