// Copyright 2020 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package misc import ( "fmt" "net/http" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/log" ) // SigningKey returns the public key of the default signing key if it exists func SigningKey(ctx *context.Context) { // swagger:operation GET /signing-key.gpg miscellaneous getSigningKey // --- // summary: Get default signing-key.gpg // produces: // - text/plain // responses: // "200": // description: "GPG armored public key" // schema: // type: string // swagger:operation GET /repos/{owner}/{repo}/signing-key.gpg repository repoSigningKey // --- // summary: Get signing-key.gpg for given repository // produces: // - text/plain // parameters: // - name: owner // in: path // description: owner of the repo // type: string // required: true // - name: repo // in: path // description: name of the repo // type: string // required: true // responses: // "200": // description: "GPG armored public key" // schema: // type: string path := "" if ctx.Repo != nil && ctx.Repo.Repository != nil { path = ctx.Repo.Repository.RepoPath() } content, err := models.PublicSigningKey(path) if err != nil { ctx.ServerError("gpg export", err) return } _, err = ctx.Write([]byte(content)) if err != nil { log.Error("Error writing key content %v", err) ctx.Error(http.StatusInternalServerError, fmt.Sprintf("%v", err)) } }