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.

112 lines
3.0 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.
5 years ago
Add a storage layer for attachments (#11387) * Add a storage layer for attachments * Fix some bug * fix test * Fix copyright head and lint * Fix bug * Add setting for minio and flags for migrate-storage * Add documents * fix lint * Add test for minio store type on attachments * fix test * fix test * Apply suggestions from code review Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * Add warning when storage migrated successfully * Fix drone * fix test * rebase * Fix test * display the error on console * Move minio test to amd64 since minio docker don't support arm64 * refactor the codes * add trace * Fix test * remove log on xorm * Fi download bug * Add a storage layer for attachments * Add setting for minio and flags for migrate-storage * fix lint * Add test for minio store type on attachments * Apply suggestions from code review Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * Fix drone * fix test * Fix test * display the error on console * Move minio test to amd64 since minio docker don't support arm64 * refactor the codes * add trace * Fix test * Add URL function to serve attachments directly from S3/Minio * Add ability to enable/disable redirection in attachment configuration * Fix typo * Add a storage layer for attachments * Add setting for minio and flags for migrate-storage * fix lint * Add test for minio store type on attachments * Apply suggestions from code review Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * Fix drone * fix test * Fix test * display the error on console * Move minio test to amd64 since minio docker don't support arm64 * don't change unrelated files * Fix lint * Fix build * update go.mod and go.sum * Use github.com/minio/minio-go/v6 * Remove unused function * Upgrade minio to v7 and some other improvements * fix lint * Fix go mod Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: Tyler <tystuyfzand@gmail.com>
4 years ago
  1. APP_NAME = Gitea: Git with a cup of tea
  2. RUN_MODE = prod
  3. [database]
  4. DB_TYPE = mysql
  5. HOST = {{TEST_MYSQL_HOST}}
  6. NAME = {{TEST_MYSQL_DBNAME}}
  7. USER = {{TEST_MYSQL_USERNAME}}
  8. PASSWD = {{TEST_MYSQL_PASSWORD}}
  9. SSL_MODE = disable
  10. [indexer]
  11. ISSUE_INDEXER_TYPE = elasticsearch
  12. ISSUE_INDEXER_CONN_STR = http://elastic:changeme@elasticsearch:9200
  13. ISSUE_INDEXER_PATH = integrations/indexers-mysql/issues.bleve
  14. REPO_INDEXER_ENABLED = true
  15. REPO_INDEXER_PATH = integrations/indexers-mysql/repos.bleve
  16. [queue.code_indexer]
  17. TYPE = immediate
  18. [repository]
  19. ROOT = {{REPO_TEST_DIR}}integrations/gitea-integration-mysql/gitea-repositories
  20. [repository.local]
  21. LOCAL_COPY_PATH = tmp/local-repo-mysql
  22. LOCAL_WIKI_PATH = tmp/local-wiki-mysql
  23. [repository.signing]
  24. SIGNING_KEY = none
  25. [server]
  26. SSH_DOMAIN = localhost
  27. HTTP_PORT = 3001
  28. ROOT_URL = http://localhost:3001/
  29. DISABLE_SSH = false
  30. SSH_LISTEN_HOST = localhost
  31. SSH_PORT = 2201
  32. APP_DATA_PATH = integrations/gitea-integration-mysql/data
  33. BUILTIN_SSH_SERVER_USER = git
  34. START_SSH_SERVER = true
  35. OFFLINE_MODE = false
  36. LFS_START_SERVER = true
  37. LFS_CONTENT_PATH = integrations/gitea-integration-mysql/datalfs-mysql
  38. LFS_JWT_SECRET = Tv_MjmZuHqpIY6GFl12ebgkRAMt4RlWt0v4EHKSXO0w
  39. LFS_STORE_TYPE = minio
  40. LFS_SERVE_DIRECT = false
  41. LFS_MINIO_ENDPOINT = minio:9000
  42. LFS_MINIO_ACCESS_KEY_ID = 123456
  43. LFS_MINIO_SECRET_ACCESS_KEY = 12345678
  44. LFS_MINIO_BUCKET = gitea
  45. LFS_MINIO_LOCATION = us-east-1
  46. LFS_MINIO_BASE_PATH = lfs/
  47. LFS_MINIO_USE_SSL = false
  48. [attachment]
  49. STORE_TYPE = minio
  50. SERVE_DIRECT = false
  51. MINIO_ENDPOINT = minio:9000
  52. MINIO_ACCESS_KEY_ID = 123456
  53. MINIO_SECRET_ACCESS_KEY = 12345678
  54. MINIO_BUCKET = gitea
  55. MINIO_LOCATION = us-east-1
  56. MINIO_BASE_PATH = attachments/
  57. MINIO_USE_SSL = false
  58. [mailer]
  59. ENABLED = true
  60. MAILER_TYPE = dummy
  61. FROM = mysql-integration-test@gitea.io
  62. [service]
  63. REGISTER_EMAIL_CONFIRM = false
  64. ENABLE_NOTIFY_MAIL = false
  65. DISABLE_REGISTRATION = false
  66. ENABLE_CAPTCHA = false
  67. REQUIRE_SIGNIN_VIEW = false
  68. DEFAULT_KEEP_EMAIL_PRIVATE = false
  69. DEFAULT_ALLOW_CREATE_ORGANIZATION = true
  70. NO_REPLY_ADDRESS = noreply.example.org
  71. ENABLE_NOTIFY_MAIL = true
  72. [picture]
  73. DISABLE_GRAVATAR = false
  74. ENABLE_FEDERATED_AVATAR = false
  75. AVATAR_UPLOAD_PATH = integrations/gitea-integration-mysql/data/avatars
  76. REPOSITORY_AVATAR_UPLOAD_PATH = integrations/gitea-integration-mysql/data/repo-avatars
  77. [session]
  78. PROVIDER = file
  79. PROVIDER_CONFIG = integrations/gitea-integration-mysql/data/sessions
  80. [log]
  81. MODE = test,file
  82. ROOT_PATH = mysql-log
  83. REDIRECT_MACARON_LOG = true
  84. ROUTER = ,
  85. MACARON = ,
  86. XORM = file
  87. [log.test]
  88. LEVEL = Info
  89. COLORIZE = true
  90. [log.file]
  91. LEVEL = Debug
  92. [security]
  93. INSTALL_LOCK = true
  94. SECRET_KEY = 9pCviYTWSb
  95. INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.hhSVGOANkaKk3vfCd2jDOIww4pUk0xtg9JRde5UogyQ