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.

signing.go 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // Copyright 2020 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package misc
  5. import (
  6. "fmt"
  7. "net/http"
  8. "code.gitea.io/gitea/models"
  9. "code.gitea.io/gitea/modules/context"
  10. "code.gitea.io/gitea/modules/log"
  11. )
  12. // SigningKey returns the public key of the default signing key if it exists
  13. func SigningKey(ctx *context.Context) {
  14. // swagger:operation GET /signing-key.gpg miscellaneous getSigningKey
  15. // ---
  16. // summary: Get default signing-key.gpg
  17. // produces:
  18. // - text/plain
  19. // responses:
  20. // "200":
  21. // description: "GPG armored public key"
  22. // schema:
  23. // type: string
  24. // swagger:operation GET /repos/{owner}/{repo}/signing-key.gpg repository repoSigningKey
  25. // ---
  26. // summary: Get signing-key.gpg for given repository
  27. // produces:
  28. // - text/plain
  29. // parameters:
  30. // - name: owner
  31. // in: path
  32. // description: owner of the repo
  33. // type: string
  34. // required: true
  35. // - name: repo
  36. // in: path
  37. // description: name of the repo
  38. // type: string
  39. // required: true
  40. // responses:
  41. // "200":
  42. // description: "GPG armored public key"
  43. // schema:
  44. // type: string
  45. path := ""
  46. if ctx.Repo != nil && ctx.Repo.Repository != nil {
  47. path = ctx.Repo.Repository.RepoPath()
  48. }
  49. content, err := models.PublicSigningKey(path)
  50. if err != nil {
  51. ctx.ServerError("gpg export", err)
  52. return
  53. }
  54. _, err = ctx.Write([]byte(content))
  55. if err != nil {
  56. log.Error("Error writing key content %v", err)
  57. ctx.Error(http.StatusInternalServerError, fmt.Sprintf("%v", err))
  58. }
  59. }