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.

95 lines
2.5 KiB

Sign merges, CRUD, Wiki and Repository initialisation with gpg key (#7631) This PR fixes #7598 by providing a configurable way of signing commits across the Gitea instance. Per repository configurability and import/generation of trusted secure keys is not provided by this PR - from a security PoV that's probably impossible to do properly. Similarly web-signing, that is asking the user to sign something, is not implemented - this could be done at a later stage however. ## Features - [x] If commit.gpgsign is set in .gitconfig sign commits and files created through repofiles. (merges should already have been signed.) - [x] Verify commits signed with the default gpg as valid - [x] Signer, Committer and Author can all be different - [x] Allow signer to be arbitrarily different - We still require the key to have an activated email on Gitea. A more complete implementation would be to use a keyserver and mark external-or-unactivated with an "unknown" trust level icon. - [x] Add a signing-key.gpg endpoint to get the default gpg pub key if available - Rather than add a fake web-flow user I've added this as an endpoint on /api/v1/signing-key.gpg - [x] Try to match the default key with a user on gitea - this is done at verification time - [x] Make things configurable? - app.ini configuration done - [x] when checking commits are signed need to check if they're actually verifiable too - [x] Add documentation I have decided that adjusting the docker to create a default gpg key is not the correct thing to do and therefore have not implemented this.
4 years ago
  1. APP_NAME = Gitea: Git with a cup of tea
  2. RUN_MODE = prod
  3. [database]
  4. DB_TYPE = postgres
  5. HOST = {{TEST_PGSQL_HOST}}
  6. NAME = {{TEST_PGSQL_DBNAME}}
  7. USER = {{TEST_PGSQL_USERNAME}}
  8. PASSWD = {{TEST_PGSQL_PASSWORD}}
  9. SCHEMA = {{TEST_PGSQL_SCHEMA}}
  10. SSL_MODE = disable
  11. [indexer]
  12. ISSUE_INDEXER_PATH = integrations/indexers-pgsql/issues.bleve
  13. REPO_INDEXER_ENABLED = true
  14. REPO_INDEXER_PATH = integrations/indexers-pgsql/repos.bleve
  15. [queue.code_indexer]
  16. TYPE = immediate
  17. [queue.push_update]
  18. TYPE = immediate
  19. [repository]
  20. ROOT = {{REPO_TEST_DIR}}integrations/gitea-integration-pgsql/gitea-repositories
  21. [repository.local]
  22. LOCAL_COPY_PATH = tmp/local-repo-pgsql
  23. LOCAL_WIKI_PATH = tmp/local-wiki-pgsql
  24. [repository.signing]
  25. SIGNING_KEY = none
  26. [server]
  27. SSH_DOMAIN = localhost
  28. HTTP_PORT = 3002
  29. ROOT_URL = http://localhost:3002/
  30. DISABLE_SSH = false
  31. SSH_LISTEN_HOST = localhost
  32. SSH_PORT = 2202
  33. START_SSH_SERVER = true
  34. LFS_START_SERVER = true
  35. LFS_CONTENT_PATH = integrations/gitea-integration-pgsql/data/lfs-pgsql
  36. OFFLINE_MODE = false
  37. LFS_JWT_SECRET = Tv_MjmZuHqpIY6GFl12ebgkRAMt4RlWt0v4EHKSXO0w
  38. APP_DATA_PATH = integrations/gitea-integration-pgsql/data
  39. BUILTIN_SSH_SERVER_USER = git
  40. [attachment]
  41. PATH = integrations/gitea-integration-pgsql/data
  42. [mailer]
  43. ENABLED = true
  44. MAILER_TYPE = dummy
  45. FROM = pgsql-integration-test@gitea.io
  46. [service]
  47. REGISTER_EMAIL_CONFIRM = false
  48. ENABLE_NOTIFY_MAIL = false
  49. DISABLE_REGISTRATION = false
  50. ENABLE_CAPTCHA = false
  51. REQUIRE_SIGNIN_VIEW = false
  52. DEFAULT_KEEP_EMAIL_PRIVATE = false
  53. DEFAULT_ALLOW_CREATE_ORGANIZATION = true
  54. NO_REPLY_ADDRESS = noreply.example.org
  55. ENABLE_NOTIFY_MAIL = true
  56. [picture]
  57. DISABLE_GRAVATAR = false
  58. ENABLE_FEDERATED_AVATAR = false
  59. AVATAR_UPLOAD_PATH = integrations/gitea-integration-pgsql/data/avatars
  60. REPOSITORY_AVATAR_UPLOAD_PATH = integrations/gitea-integration-pgsql/data/repo-avatars
  61. [session]
  62. PROVIDER = file
  63. PROVIDER_CONFIG = integrations/gitea-integration-pgsql/data/sessions
  64. [log]
  65. MODE = test,file
  66. ROOT_PATH = pgsql-log
  67. REDIRECT_MACARON_LOG = true
  68. ROUTER = ,
  69. MACARON = ,
  70. XORM = file
  71. [log.test]
  72. LEVEL = Info
  73. COLORIZE = true
  74. [log.file]
  75. LEVEL = Debug
  76. [security]
  77. INSTALL_LOCK = true
  78. SECRET_KEY = 9pCviYTWSb
  79. INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.hhSVGOANkaKk3vfCd2jDOIww4pUk0xtg9JRde5UogyQ