1
0
mirror of https://git.cloudron.io/cloudron/gitea-app synced 2026-05-01 15:02:35 +00:00

Compare commits

...

307 Commits

Author SHA1 Message Date
Girish Ramakrishnan 433327e0d6 test: drop redundant scrollIntoView usage
Remove explicit scrollIntoView calls in Charlie-based test flows now that interactions auto-scroll elements.

Made-with: Cursor
2026-04-21 12:39:12 +02:00
Package Updates d7d7449180 Update package version to 1.38.0 2026-04-20 13:14:36 +00:00
Girish Ramakrishnan a3cb866a4e setup_oidc_source on startup if app already has tables 2026-04-20 14:56:24 +02:00
Girish Ramakrishnan d0fa4c2158 remove the send mail tests 2026-04-20 12:35:09 +02:00
Johannes Zellner 33d67d5238 Fix tests 2026-04-20 10:46:03 +02:00
Johannes Zellner 0b6a50cbfe DISABLE_GRAVATAR is deprecated 2026-04-20 09:52:43 +02:00
Johannes Zellner 08eac4fde1 Convert tests to charlie 2026-04-20 09:46:33 +02:00
Renovate Bot f948552d45 chore(deps): update dependency go-gitea/gitea to v1.26.0
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.25.5 | 1.26.0 |
2026-04-19 10:41:17 +00:00
Girish Ramakrishnan 3317e2f0e6 test: remove package.json and package-lock.json, charlie provides all deps
Made-with: Cursor
2026-04-16 10:43:00 +02:00
Girish Ramakrishnan 5055ade625 test: remove chromedriver dependency
Selenium Manager auto-detects the system ChromeDriver, making the
chromedriver npm package unnecessary.

Made-with: Cursor
2026-04-15 17:18:11 +02:00
Girish Ramakrishnan 6e29723b52 test: fix @cloudron/superagent API compatibility
Replace .statusCode with .status, remove .agent() and .end()
usage to match @cloudron/superagent API.

Made-with: Cursor
2026-04-15 16:54:55 +02:00
Girish Ramakrishnan 14f1ea39ee test: use @cloudron scoped safetydance and superagent
Made-with: Cursor
2026-04-15 16:39:11 +02:00
Girish Ramakrishnan 3e9b16ce1d test: convert test to ESM
Replace CommonJS require() with ESM imports, add "type": "module"
to test/package.json, remove 'use strict' and jshint directives,
replace __dirname with import.meta.dirname.

Made-with: Cursor
2026-04-15 16:16:54 +02:00
Girish Ramakrishnan d37d644518 Replace expect.js with node:assert/strict
expect.js is unmaintained and unnecessary — Node's built-in assert
module covers all our assertion patterns. This also removes expect.js
from package.json dependencies.

Made-with: Cursor
2026-04-15 15:37:15 +02:00
Package Updates 44e8309a95 Update package version to 1.37.5 2026-03-13 03:06:47 +00:00
Renovate Bot 94bf230a5a chore(deps): update dependency go-gitea/gitea to v1.25.5
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.25.4 | 1.25.5 |
2026-03-13 02:41:14 +00:00
Package Updates ff2f9a9202 Update package version to 1.37.4 2026-01-22 09:44:53 +00:00
Renovate Bot d593d25291 chore(deps): update dependency go-gitea/gitea to v1.25.4
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.25.3 | 1.25.4 |
2026-01-22 08:21:59 +00:00
Package Updates 049b4fa85c Update package version to 1.37.3 2025-12-19 08:07:53 +00:00
Renovate Bot 369629ad89 chore(deps): update dependency go-gitea/gitea to v1.25.3
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.25.2 | 1.25.3 |
2025-12-19 07:55:53 +00:00
Package Updates 21a63a22cc Update package version to 1.37.2 2025-11-23 09:31:50 +00:00
Renovate Bot 0b0d5543ad chore(deps): update dependency go-gitea/gitea to v1.25.2
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.25.1 | 1.25.2 |
2025-11-23 09:19:19 +00:00
Package Updates 5e42e3e4bf Update package version to 1.37.1 2025-11-05 09:22:45 +00:00
Girish Ramakrishnan a3ee5030b9 add explicit enabledByDefault 2025-11-05 08:51:17 +01:00
Renovate Bot e4eba7273d chore(deps): update dependency go-gitea/gitea to v1.25.1
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.25.0 | 1.25.1 |
2025-11-05 07:35:45 +00:00
Package Updates c046498df7 Update package version to 1.37.0 2025-10-30 08:35:29 +00:00
Renovate Bot 50f82450d9 chore(deps): update dependency go-gitea/gitea to v1.25.0
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.7 | 1.25.0 |
2025-10-29 17:19:43 +00:00
Package Updates bdece0b11f Update package version to 1.36.8 2025-10-25 17:54:28 +00:00
Renovate Bot a0e8684157 chore(deps): update dependency go-gitea/gitea to v1.24.7
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.6 | 1.24.7 |
2025-10-25 16:20:00 +00:00
Package Updates 554c7a2853 Update package version to 1.36.7 2025-09-11 08:18:07 +00:00
Renovate Bot 9b7d8abedd chore(deps): update dependency go-gitea/gitea to v1.24.6
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.5 | 1.24.6 |
2025-09-11 07:33:03 +00:00
Package Updates 3082cbff3a Update package version to 1.36.6 2025-08-14 05:25:23 +00:00
Renovate Bot 25d62ec5d7 chore(deps): update dependency go-gitea/gitea to v1.24.5
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.4 | 1.24.5 |
2025-08-14 03:24:25 +00:00
Package Updates bf03c0481e Update package version to 1.36.5 2025-08-05 18:58:37 +00:00
Renovate Bot 0c56c2cde5 chore(deps): update dependency go-gitea/gitea to v1.24.4
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.3 | 1.24.4 |
2025-08-05 13:01:37 +00:00
Package Updates 7b06936587 Update package version to 1.36.4 2025-07-15 10:10:20 +00:00
Renovate Bot af94e5f4a4 chore(deps): update dependency go-gitea/gitea to v1.24.3
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.2 | 1.24.3 |
2025-07-15 09:32:48 +00:00
Johannes Zellner 0b379822a6 Add newline in postinstall 2025-07-14 14:43:49 +02:00
Package Updates d953377320 Update package version to 1.36.3 2025-07-11 14:57:31 +00:00
Girish Ramakrishnan ad071c67ab enable registration by default in non-sso mode 2025-07-11 16:38:18 +02:00
Girish Ramakrishnan 5bb07d9abf disable registration by default 2025-07-11 16:33:58 +02:00
Package Updates 7243f3f49a Update package version to 1.36.2 2025-06-23 13:13:25 +00:00
Renovate Bot 5f62cfdc74 chore(deps): update dependency go-gitea/gitea to v1.24.2
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.1 | 1.24.2 |
2025-06-23 08:40:33 +00:00
Package Updates 9ea0395b6b Update package version to 1.36.1 2025-06-20 07:10:48 +00:00
Renovate Bot a885279cde chore(deps): update dependency go-gitea/gitea to v1.24.1
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.24.0 | 1.24.1 |
2025-06-20 06:57:56 +00:00
Package Updates 23d515f506 Update package version to 1.36.0 2025-06-10 18:30:43 +00:00
Renovate Bot 507846ae8a chore(deps): update dependency go-gitea/gitea to v1.24.0
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.8 | 1.24.0 |
2025-06-10 16:19:41 +00:00
Girish Ramakrishnan 4519ab9f0f Update documentation url 2025-06-05 10:23:02 +02:00
Package Updates 30c46a77e2 Update package version to 1.35.5 2025-05-14 15:03:50 +00:00
Package Updates 0dee28db15 Update package version to 1.35.4 2025-05-14 11:48:15 +00:00
Girish Ramakrishnan 606354ca83 rebuild 2025-05-14 13:32:19 +02:00
Renovate Bot 599c37fff9 chore(deps): update dependency go-gitea/gitea to v1.23.8
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.7 | 1.23.8 |
2025-05-13 16:19:44 +00:00
Package Updates d0d4b89f12 Update package version to 1.35.3 2025-04-08 09:27:03 +00:00
Renovate Bot 16253c0192 chore(deps): update dependency go-gitea/gitea to v1.23.7
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.6 | 1.23.7 |
2025-04-08 07:45:24 +00:00
Package Updates c9ba138d8a Update package version to 1.35.2 2025-03-25 07:58:30 +00:00
Renovate Bot 7337ff8517 chore(deps): update dependency go-gitea/gitea to v1.23.6
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.5 | 1.23.6 |
2025-03-25 07:13:13 +00:00
Package Updates 94f2007015 Update package version to 1.35.1 2025-03-21 12:09:25 +00:00
Ian Fijolek 1110ee23e2 And port number 2025-03-21 12:51:33 +01:00
Ian Fijolek ccaa24df33 Found another location 2025-03-20 19:33:57 +00:00
Ian Fijolek 9c4f201845 Fix hard coded mysql hostname 2025-03-20 19:31:55 +00:00
Package Updates 2f0edb0cb4 Update package version to 1.35.0 2025-03-05 15:36:24 +00:00
Girish Ramakrishnan 217b6ad97d need to create path 2025-03-05 15:58:05 +01:00
Girish Ramakrishnan cb0adb4d95 use pipx to install pip binaries 2025-03-05 15:46:19 +01:00
Girish Ramakrishnan 574bb07847 git user must be enabled 2025-03-05 14:13:26 +01:00
Girish Ramakrishnan d259e03bee Update base image to 5.0.0 2025-03-05 14:12:14 +01:00
Package Updates edf51f882f Update package version to 1.34.4 2025-03-05 09:20:36 +00:00
Renovate Bot 96e8c6b370 chore(deps): update dependency go-gitea/gitea to v1.23.5
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.4 | 1.23.5 |
2025-03-05 08:10:46 +00:00
Package Updates c0384ea5db Update package version to 1.34.3 2025-02-19 12:29:02 +00:00
Renovate Bot ffc49beb18 chore(deps): update dependency go-gitea/gitea to v1.23.4
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.3 | 1.23.4 |
2025-02-19 12:16:25 +00:00
Package Updates b51354ea67 Update package version to 1.34.2 2025-02-06 09:06:13 +00:00
Renovate Bot 3017db2ca3 chore(deps): update dependency go-gitea/gitea to v1.23.3
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.1 | 1.23.3 |
2025-02-06 08:50:59 +00:00
Package Updates afc6c1a336 Update package version to 1.34.1 2025-01-10 09:17:06 +00:00
Renovate Bot 856e8ffded chore(deps): update dependency go-gitea/gitea to v1.23.1
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.0 | 1.23.1 |
2025-01-10 08:46:05 +00:00
Package Updates 0e8051524b Update package version to 1.34.0 2025-01-09 11:26:55 +00:00
Girish Ramakrishnan 343c4f4487 Fix tests 2025-01-09 12:17:46 +01:00
Renovate Bot fa8b746489 chore(deps): update dependency go-gitea/gitea to v1.23.0
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.22.6 | 1.23.0 |
2025-01-09 08:44:12 +00:00
Package Updates e703139dad Update package version to 1.33.6 2024-12-13 23:00:14 +00:00
Renovate Bot 038c2634f7 chore(deps): update dependency go-gitea/gitea to v1.22.6
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.22.5 | 1.22.6 |
2024-12-13 17:20:40 +00:00
Package Updates 506fc44188 Update package version to 1.33.5 2024-12-11 22:21:00 +00:00
Renovate Bot b37adcbcba chore(deps): update dependency go-gitea/gitea to v1.22.5
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.22.4 | 1.22.5 |
2024-12-11 22:10:56 +00:00
Johannes Zellner d5b80c9393 Mention why CLOUDRON_OIDC_PROVIDER_NAME is not supported 2024-12-09 12:25:51 +01:00
Johannes Zellner e180f84aef use checklists in manifest 2024-12-09 12:24:46 +01:00
Package Updates 090c4c43a8 Update package version to 1.33.4 2024-11-26 04:08:17 +00:00
Renovate Bot ce1c328a27 chore(deps): update dependency go-gitea/gitea to v1.22.4
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.22.3 | 1.22.4 |
2024-11-26 02:34:19 +00:00
Girish Ramakrishnan e76784cb8f Update renovate.json5 2024-11-04 17:10:01 +00:00
Girish Ramakrishnan 64d8d5b661 Add renovate.json5 2024-11-04 17:02:57 +00:00
Girish Ramakrishnan bf30c8e13b Delete renovate.json 2024-11-04 16:56:47 +00:00
Girish Ramakrishnan 381562f347 Delete .gitlab-ci.yml 2024-11-04 08:37:59 +00:00
Girish Ramakrishnan ffa9d52206 Version 1.33.3 2024-10-09 09:43:30 +02:00
Girish Ramakrishnan 7d0d52ceae change perms 2024-10-09 09:36:48 +02:00
Girish Ramakrishnan f19465b3d6 Fix test 2024-10-09 09:28:39 +02:00
Girish Ramakrishnan 662cfae820 Update test packages 2024-10-09 09:19:11 +02:00
Renovate Bot e365f033d1 chore(deps): update dependency go-gitea/gitea to v1.22.3 2024-10-09 07:14:02 +00:00
Renovate Bot b8e5fcc22d chore(deps): add renovate.json 2024-10-09 07:13:02 +00:00
Girish Ramakrishnan a176ab5f20 Add renovate 2024-10-09 07:11:32 +00:00
Girish Ramakrishnan 9b773524ce add ci files 2024-10-09 09:08:28 +02:00
Girish Ramakrishnan 9c4088e812 Version 1.33.2 2024-09-05 21:34:44 +02:00
Girish Ramakrishnan c956c27334 Update test packages 2024-09-05 21:30:47 +02:00
Girish Ramakrishnan 75aa1f09a5 Update Gitea to 1.22.2 2024-09-05 21:29:09 +02:00
Johannes Zellner 9f363fb373 Bump version 2024-07-04 12:51:32 +02:00
Johannes Zellner e06c3d5bb5 Update test deps 2024-07-04 12:25:11 +02:00
Johannes Zellner aa7a6f9d69 Update to 1.22.1 2024-07-04 12:25:04 +02:00
Girish Ramakrishnan 56cb2ba6b2 Version 1.33.0 2024-05-27 15:21:25 +02:00
Girish Ramakrishnan 08868f64d4 Update test packages 2024-05-27 15:10:41 +02:00
Girish Ramakrishnan d7c3ae38fe Update Gitea to 1.22.0 2024-05-27 14:34:50 +02:00
Johannes Zellner 9b7aedc025 Bump version 2024-04-16 09:58:54 +02:00
Johannes Zellner 70c144095a Update test deps 2024-04-16 09:50:50 +02:00
Johannes Zellner 69df4d1e0f Update to 1.21.11 2024-04-16 09:50:39 +02:00
Johannes Zellner 07982e33aa Bump version 2024-03-26 08:52:51 +01:00
Johannes Zellner 59266f120a Update to 1.21.10 2024-03-26 08:36:00 +01:00
Johannes Zellner c03ec98517 Bump version 2024-03-22 10:25:12 +01:00
Johannes Zellner 885a32e340 Update test deps 2024-03-22 10:08:01 +01:00
Johannes Zellner 459646512e Update to 1.21.9 2024-03-22 10:07:33 +01:00
Girish Ramakrishnan 5d44c03115 Version 1.32.7 2024-03-13 09:43:02 +01:00
Girish Ramakrishnan 4961b7c4c8 Update test packages 2024-03-13 09:35:46 +01:00
Girish Ramakrishnan cfc5ab5a37 Update Gitea to 1.21.8 2024-03-13 09:15:06 +01:00
Johannes Zellner 6259356ae2 Bump version 2024-02-26 15:54:38 +01:00
Johannes Zellner 813f32d310 Remove ldap to openid migration code 2024-02-26 14:38:06 +01:00
Johannes Zellner 162054ef99 Update to 1.21.7 2024-02-26 11:51:36 +01:00
Johannes Zellner 18ad051734 Update test deps 2024-02-23 11:14:51 +01:00
Johannes Zellner ea6a6b84d9 Update to 1.21.6 2024-02-23 11:14:37 +01:00
Johannes Zellner ab0ab3c11c Bump version 2024-02-01 14:36:55 +01:00
Johannes Zellner 84c505ad43 Make tests language independent 2024-02-01 14:27:07 +01:00
Johannes Zellner 366e8560b0 Update test deps 2024-02-01 14:25:08 +01:00
Johannes Zellner 0a81a63829 Update to 1.21.5 2024-02-01 14:24:07 +01:00
Girish Ramakrishnan 4fc500fca6 Version 1.32.4 2024-01-17 13:10:29 +01:00
Girish Ramakrishnan 8393426612 Update Gitea to 1.21.4 2024-01-17 11:33:36 +01:00
Johannes Zellner a08dd3ee47 Bump version 2023-12-21 12:19:04 +01:00
Johannes Zellner 63fce06157 Update to 1.21.3 2023-12-21 11:41:17 +01:00
Johannes Zellner d0c1e65913 Bump version 2023-12-12 12:52:51 +01:00
Johannes Zellner 88732c63c9 Update test deps 2023-12-12 12:38:15 +01:00
Johannes Zellner d62cca74cc Update to 1.21.2 2023-12-12 12:38:00 +01:00
Johannes Zellner f96533530f Bump version 2023-11-27 08:56:00 +01:00
Johannes Zellner 3e95af2256 Fixup tests 2023-11-15 12:50:25 +01:00
Johannes Zellner 90693772de Release is without .0 2023-11-14 16:51:02 +01:00
Johannes Zellner 092f2089f2 Update test deps 2023-11-14 16:20:29 +01:00
Johannes Zellner 16ffe8295f Bump version 2023-11-14 16:19:34 +01:00
Girish Ramakrishnan 61d2691859 Version 1.31.0 2023-10-20 10:15:28 +02:00
Girish Ramakrishnan 19c4b2a7ff Update test packages 2023-10-20 09:38:17 +02:00
Girish Ramakrishnan 5c7c228ff4 Update base image to 4.2.0 2023-10-20 09:36:54 +02:00
Johannes Zellner 62b03b02d5 Fixup test 2023-10-03 17:23:13 +02:00
Johannes Zellner 7dd4447091 Bump version 2023-10-03 17:12:30 +02:00
Girish Ramakrishnan d23339e2e3 Version 1.30.0 2023-09-28 21:26:45 +05:30
Girish Ramakrishnan 32daf79b3b set login_source to ls.id and not user id 2023-09-28 20:35:41 +05:30
Girish Ramakrishnan 2d0a1f14e6 setup_ldap_source is not needed 2023-09-28 17:18:10 +05:30
Vladimir D bbae02fa50 minBoxVersion set to 7.5.1, make migrate_ldap_users_to_oidc() always running on startup 2023-09-26 16:19:24 +04:00
Vladimir D e176d6c705 LDAP to OIDC auth migration, tests refactored 2023-09-26 15:30:53 +04:00
Johannes Zellner dd44f81d04 Bump version 2023-09-08 12:21:03 +02:00
Johannes Zellner a4b0af1f02 Bump version 2023-08-21 09:24:46 +02:00
Girish Ramakrishnan 4b15736f81 Version 1.29.2 2023-07-29 20:13:02 +05:30
Girish Ramakrishnan 8876fedd40 Update test 2023-07-29 20:08:07 +05:30
Girish Ramakrishnan 65df2c54da settings have changed 2023-07-29 20:08:02 +05:30
Girish Ramakrishnan 245b93ea02 Update gitea to 1.20.2 2023-07-29 19:10:04 +05:30
Johannes Zellner 8596073c51 Update test deps 2023-07-22 12:56:25 +02:00
Johannes Zellner 6a85b0cea2 Bump version 2023-07-22 12:47:27 +02:00
Girish Ramakrishnan 5205ba5e83 fix test 2023-07-17 10:22:14 +05:30
Girish Ramakrishnan f668f4f3ab Version 1.29.0 2023-07-17 10:06:18 +05:30
Girish Ramakrishnan 7eca682cec Update gitea to 1.20.0 2023-07-17 08:47:26 +05:30
Girish Ramakrishnan f9f867ca89 Version 1.28.4 2023-07-05 13:29:20 +05:30
Girish Ramakrishnan 9580ece3a1 Update gitea to 1.19.4 2023-07-05 12:51:15 +05:30
Girish Ramakrishnan f2818dc4f9 Version 1.28.3 2023-05-04 09:34:42 +02:00
Girish Ramakrishnan 35ac25e140 Update test packages 2023-05-04 09:26:06 +02:00
Girish Ramakrishnan 3cb4caaeac Update Gitea to 1.19.3 2023-05-04 09:24:46 +02:00
Girish Ramakrishnan 55d2b0d320 Version 1.28.2 2023-04-28 09:19:59 +02:00
Girish Ramakrishnan 8f55a89978 Update test packages 2023-04-28 09:19:54 +02:00
Girish Ramakrishnan 5240330992 Update Gitea to 1.19.2 2023-04-28 09:10:08 +02:00
Girish Ramakrishnan 95fc696bcd Version 1.28.1 2023-04-13 10:48:55 +02:00
Girish Ramakrishnan 77b3e2b033 Update Gitea to 1.19.1 2023-04-13 10:21:10 +02:00
Johannes Zellner 5fbd69679c Update test deps 2023-03-20 10:46:10 +01:00
Johannes Zellner 2c837eeb8f Bump version 2023-03-20 10:44:51 +01:00
Girish Ramakrishnan 040fcf3386 Fixup post install 2023-03-08 18:54:42 +01:00
Girish Ramakrishnan 58298a6b20 Version 1.27.1 2023-02-22 11:02:42 +01:00
Girish Ramakrishnan 6b2e221264 Update Gitea to 1.8.5 2023-02-22 10:46:53 +01:00
Girish Ramakrishnan 1e9964fe49 Version 1.27.0 2023-02-20 11:00:55 +01:00
Girish Ramakrishnan 23fa45cbc8 display name support 2023-02-20 10:35:53 +01:00
Girish Ramakrishnan 572226155c Version 1.26.4 2023-02-20 10:30:57 +01:00
Girish Ramakrishnan 50ec10f0ae Update test packages 2023-02-20 10:30:47 +01:00
Girish Ramakrishnan a99dfc8e2a Update Gitea to 1.18.4 2023-02-20 10:19:21 +01:00
Girish Ramakrishnan 6bbea49e07 Version 1.26.3 2023-01-24 10:08:33 +01:00
Girish Ramakrishnan f53e024f69 Update Gitea to 1.18.3 2023-01-24 09:27:05 +01:00
Johannes Zellner 68fe1f97d0 Update test deps 2023-01-20 12:19:16 +01:00
Johannes Zellner 896336f7c2 Bump version 2023-01-20 12:19:08 +01:00
Johannes Zellner ea91e676cf Update test deps 2023-01-18 12:27:20 +01:00
Johannes Zellner 94e9181ced Bump version 2023-01-18 12:27:02 +01:00
Johannes Zellner 8808e8c0b2 Update test deps 2022-12-30 09:47:56 +01:00
Johannes Zellner d00238c1ad Bump version 2022-12-30 09:47:38 +01:00
Girish Ramakrishnan 07442c675c Version 1.25.1 2022-12-28 10:59:38 +01:00
Girish Ramakrishnan ed1846cd28 Trust reverse proxy IP 2022-12-28 10:53:57 +01:00
Girish Ramakrishnan e10793d421 Version 1.25.0 2022-12-23 12:05:59 +01:00
Girish Ramakrishnan 9eea9fe0be Update base image to 4.0.0 2022-12-23 11:14:36 +01:00
Girish Ramakrishnan 298cb33e86 Update Gitea to 1.17.4 2022-12-23 11:14:20 +01:00
Johannes Zellner 89240fc070 Update test deps 2022-11-29 11:44:39 +01:00
Johannes Zellner 6b2af3eab4 Bump version 2022-11-29 11:44:25 +01:00
Johannes Zellner 32eebcff8f Initial support for auto signing via gnupg 2022-11-08 16:31:08 +01:00
Girish Ramakrishnan 166dac9b12 Version 1.24.4 2022-11-07 15:49:23 +01:00
Girish Ramakrishnan 26db0254c7 Update test packages 2022-11-07 15:47:08 +01:00
Girish Ramakrishnan 35e3edaa6c Change default root user email 2022-11-07 15:41:11 +01:00
Girish Ramakrishnan 93370fa502 Version 1.24.3 2022-10-16 16:21:04 +02:00
Girish Ramakrishnan 3398da164d Update test packages 2022-10-16 16:01:46 +02:00
Girish Ramakrishnan 6ce20e9e75 Update Gitea to 1.17.3 2022-10-16 15:59:01 +02:00
Johannes Zellner cb14653680 Bump version 2022-09-07 12:51:31 +02:00
Johannes Zellner 46982e68f7 Fixup tests 2022-08-19 16:31:54 +02:00
Johannes Zellner a2d2edabaf Fixup test 2022-08-19 16:18:45 +02:00
Johannes Zellner 7261adc546 Update test deps 2022-08-19 10:48:02 +02:00
Johannes Zellner a338dc215a Bump version 2022-08-19 10:47:45 +02:00
Girish Ramakrishnan a12cf5f70b not sure why commented out 2022-07-31 08:21:18 +02:00
Girish Ramakrishnan 730611229e Version 1.24.0 2022-07-31 08:13:30 +02:00
Girish Ramakrishnan fcb4caff89 Fixup tests 2022-07-31 08:12:39 +02:00
Girish Ramakrishnan 200dc7676f Update test packages 2022-07-31 07:55:51 +02:00
Girish Ramakrishnan 320fbf86d9 Update gitea to 1.17.0 2022-07-31 07:49:17 +02:00
Girish Ramakrishnan 04d857e88b Version 1.23.12 2022-05-16 13:44:40 -07:00
Girish Ramakrishnan e2f6fb52b3 Update gitea to 1.16.8 2022-05-16 12:25:14 -07:00
Johannes Zellner 4224cc9692 Add missing versions 2022-05-02 11:28:50 +02:00
Johannes Zellner d416ec0dc7 Update test deps 2022-05-02 11:08:36 +02:00
Johannes Zellner ea5ff4e574 Bump version for 1.16.7 2022-05-02 11:08:20 +02:00
Girish Ramakrishnan 27720786bf Update test packages 2022-04-20 17:32:30 -07:00
Girish Ramakrishnan f48a4c4d72 Update gitea to 1.16.6 2022-04-20 17:27:52 -07:00
Johannes Zellner 65fbb9cb7d Bump version for 1.16.5 2022-03-24 10:38:58 +01:00
Johannes Zellner 63bfe621d1 Update test deps 2022-03-15 10:47:12 +01:00
Johannes Zellner a6688ede57 Bump version for 1.16.4 2022-03-15 10:47:00 +01:00
Johannes Zellner 7f2646bfb3 Update test deps 2022-03-04 12:36:27 +01:00
Johannes Zellner aafc1968ec Bump version for 1.16.3 2022-03-04 12:35:54 +01:00
Girish Ramakrishnan 2f85d288e0 Version 1.23.6 2022-02-24 19:46:34 -08:00
Girish Ramakrishnan e5296ab5ee Fixup tests 2022-02-24 19:42:35 -08:00
Girish Ramakrishnan 77e05f56bf Update Gitea 1.16.2 2022-02-24 19:17:02 -08:00
Girish Ramakrishnan 4eab21379e Listen on IPv6 as well
luckily, sshd does not error if the interface has no IPv6 address
2022-02-09 20:15:27 -08:00
Girish Ramakrishnan 1da61b548f Version 1.23.5 2022-02-06 11:41:39 -08:00
Girish Ramakrishnan 76df0b0113 Update test packages 2022-02-06 11:22:22 -08:00
Girish Ramakrishnan d9fa8399fe Update Gitea to 1.16.1 2022-02-06 10:24:28 -08:00
Johannes Zellner aa0b00cd1e Fixup tests 2022-01-31 14:08:14 +01:00
Johannes Zellner 8999bc9112 --name is deprecated in favor of --username 2022-01-31 13:45:10 +01:00
Johannes Zellner a7734d29fb login source table schema has changed 2022-01-31 13:43:01 +01:00
Johannes Zellner b667082cec Bump version for 1.16.0 2022-01-31 12:26:31 +01:00
Johannes Zellner 9abcb0c5ec Update test deps 2022-01-30 17:56:40 +01:00
Johannes Zellner 3f6593c676 Bump version for 1.15.11 2022-01-30 17:56:26 +01:00
Johannes Zellner 5f7b0457db Update test deps 2022-01-17 10:43:26 +01:00
Johannes Zellner 7adfed915b Bump version for 1.15.10 2022-01-17 10:43:10 +01:00
Johannes Zellner 2af74e6817 Update to lockfile v2 2022-01-02 10:16:08 +01:00
Johannes Zellner 57ad6d200a Bump version for 1.15.9 2022-01-02 10:15:55 +01:00
Girish Ramakrishnan 4df53960f5 Version 1.23.1 2021-12-20 21:37:17 -08:00
Girish Ramakrishnan 2fb28433fb Update Gitea to 1.15.8 2021-12-20 21:25:21 -08:00
Girish Ramakrishnan 6874ea9d46 Version 1.23.0 2021-12-03 10:36:21 -08:00
Girish Ramakrishnan 2c284d36fa Update test packages 2021-12-03 10:36:16 -08:00
Girish Ramakrishnan 83da665570 add asciidoctor and pandoc 2021-12-03 10:05:28 -08:00
Girish Ramakrishnan a427a098fe Update gitea to 1.15.7 2021-12-03 09:44:35 -08:00
Girish Ramakrishnan eb4f29375b Merge branch 'master' into 'master'
markup: add jupyter notebook markup language

See merge request cloudron/gitea-app!6
2021-12-03 17:43:23 +00:00
Mark Stenglein 05dcb14e8d markup: add jupyter notebook markup language
Follows documentation here:
  - https://docs.gitea.io/en-us/external-renderers/#installing-external-binaries

This adds jupyter and configures gitea to use jupyter to render notebook files.
2021-12-03 03:06:00 +00:00
Johannes Zellner 5a03ee8f27 Update test deps 2021-10-28 13:05:31 +02:00
Johannes Zellner e62f99643d Bump version for 1.15.6 2021-10-28 13:04:04 +02:00
Johannes Zellner 73027148c6 Fixup tests 2021-10-22 08:27:40 +02:00
Johannes Zellner 67a138be41 Update test deps 2021-10-22 07:35:13 +02:00
Johannes Zellner 2c32dcf6bd Bump version for 1.22.5 2021-10-22 07:34:28 +02:00
Girish Ramakrishnan dc7f7e2f4e Version 1.22.4 2021-10-08 12:54:00 -07:00
Girish Ramakrishnan 9a03f268cb Update test packages 2021-10-08 12:53:56 -07:00
Girish Ramakrishnan fde6dfa485 Update Gitea to 1.15.4 2021-10-08 12:42:26 -07:00
Johannes Zellner 8b16de1dcd Update test deps 2021-09-22 12:14:42 +02:00
Johannes Zellner 1074999c40 Bump version for 1.15.3 2021-09-22 12:14:15 +02:00
Johannes Zellner 0cfe7fea88 Bump version for 1.15.2 2021-09-03 17:34:41 +02:00
Johannes Zellner a3bb9db92e Update test deps 2021-09-03 10:26:24 +02:00
Johannes Zellner 8c84f905e7 Bump version for 1.15.1 2021-09-03 10:26:05 +02:00
Johannes Zellner 0008351e7c Fixup tests 2021-08-23 13:10:31 +02:00
Johannes Zellner 0aab01b926 Update test deps 2021-08-23 11:17:41 +02:00
Johannes Zellner 2877b4e599 Bump version for 1.15.0 2021-08-23 11:17:23 +02:00
Girish Ramakrishnan f5f690ebd9 Version 1.21.6 2021-08-06 10:12:10 -07:00
Girish Ramakrishnan 4a5bf98d60 Update test packages 2021-08-06 10:00:52 -07:00
Girish Ramakrishnan 3e84ab8730 Update gitea to 1.14.6 2021-08-05 10:47:29 -07:00
Johannes Zellner c0d7b41a77 Bump version for 1.14.5 2021-07-16 11:12:03 +02:00
Johannes Zellner df77df2347 Update test deps 2021-07-06 15:30:30 +02:00
Johannes Zellner f18b11626c Bump version for 1.14.4 2021-07-06 15:29:52 +02:00
Johannes Zellner 75917ed6e1 Update test deps 2021-06-21 11:21:07 +02:00
Johannes Zellner 8033a4f001 Bump version for 1.14.3 2021-06-21 11:19:40 +02:00
Girish Ramakrishnan 6c2c00a53a Version 1.21.2 2021-05-10 09:28:21 -07:00
Girish Ramakrishnan 86e13642e6 Update test packages 2021-05-10 09:22:38 -07:00
Girish Ramakrishnan 257b51d226 Version 1.14.2 2021-05-10 09:17:46 -07:00
Johannes Zellner 37544c8e9b Fix version 2021-04-16 12:56:52 +02:00
Johannes Zellner a04656847a Update test deps 2021-04-16 12:56:05 +02:00
Johannes Zellner 5e8950ec86 Bump version for 1.14.1 2021-04-16 12:34:15 +02:00
Johannes Zellner 2637ef1b4b CLI command has changed subcommand style 2021-04-12 18:35:50 +02:00
Johannes Zellner 0bea878d12 Use /explore instead of non-existing /healthcheck 2021-04-12 18:35:32 +02:00
Johannes Zellner bed765a1e4 Bump version for 1.14.0 2021-04-12 12:40:28 +02:00
Johannes Zellner 1e38bd58c6 Bump version for 1.13.7 2021-04-08 14:35:40 +02:00
Johannes Zellner a0f8607250 Bump version for 1.13.6 2021-03-24 13:41:35 +01:00
Johannes Zellner 4c0e49def0 Update test deps 2021-03-22 10:12:11 +01:00
Johannes Zellner c9937d6134 Bump version for 1.13.5 2021-03-22 10:11:47 +01:00
Johannes Zellner 3d51637daf Update test deps 2021-03-08 11:45:35 +01:00
Johannes Zellner 65a87ede58 Bump version for 1.13.4 2021-03-08 11:41:13 +01:00
Johannes Zellner 11800518cb Update test deps 2021-03-04 17:09:43 +01:00
Johannes Zellner 731be1ccf8 Bump version for 1.13.3 2021-03-04 17:08:50 +01:00
Girish Ramakrishnan 32c5507674 Version 1.20.0 2021-02-16 11:08:41 -08:00
Girish Ramakrishnan 1deeedfc87 Use base image v3 2021-02-16 11:01:28 -08:00
Girish Ramakrishnan 86a0949b14 the login UI has changed 2021-02-16 11:01:11 -08:00
Johannes Zellner 1aee702ada Update test deps 2021-02-02 10:09:47 +01:00
Johannes Zellner 6833bcd31b Bump version for 1.13.2 2021-02-02 10:09:18 +01:00
Girish Ramakrishnan 1a433ecee0 Version 1.19.1 2020-12-28 16:17:13 -08:00
Girish Ramakrishnan c1f261592e Update Gitea to 1.13.1 2020-12-28 12:21:18 -08:00
Girish Ramakrishnan 282eed291e Fix doc url 2020-12-07 17:01:55 -08:00
Johannes Zellner 43900e7897 Update test deps 2020-12-02 17:11:33 +01:00
Johannes Zellner 5ff6e0a410 Bump version for 1.13.0 2020-12-02 17:11:11 +01:00
Johannes Zellner 3b9989fcf0 Update test deps 2020-11-16 15:45:45 +01:00
Johannes Zellner 8b92a4feb4 Bump version for 1.12.6 2020-11-16 15:45:16 +01:00
Johannes Zellner f510244950 Remove selenium-server-standalone-jar 2020-10-02 17:45:30 +02:00
Johannes Zellner 8744b525cd Update test deps 2020-10-02 17:45:03 +02:00
Johannes Zellner 172c5f7307 Bump version for 1.12.5 2020-10-02 17:43:27 +02:00
Girish Ramakrishnan 48299030e6 Version 1.18.3-1 2020-09-26 08:42:51 -07:00
Girish Ramakrishnan 8e84cf4817 Fix manifest 2020-09-26 08:42:37 -07:00
Johannes Zellner c263876cdd Update test deps 2020-09-04 09:07:59 +02:00
Johannes Zellner 6429ca8909 Bump version for 1.12.4 2020-09-04 09:05:40 +02:00
19 changed files with 2303 additions and 3004 deletions
-521
View File
@@ -1,521 +0,0 @@
[0.1.0]
* Initial package (forked from Gogs app)
[0.1.1]
* Removed reference to Gogs
[0.1.2]
* Updated description
[0.1.3]
* Updated to version 1.1.2
[1.0.0]
* Update to version 1.1.3
[1.0.1]
* Update Git to v2.7.4-0ubuntu1.2
* Fixes critical security issue that allows remote command execution in git
* https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-1000117.html
[1.0.2]
* Preserve SECRET_KEY across updates and restarts
[1.0.3]
* Update to version 1.1.4
[1.1.0]
* Update to version 1.2.0
* New logo!
* SECURITY: Sanitation fix from Gogs (#1461)
* Status-API
* Implement GPG api
* https://github.com/go-gitea/gitea/releases/tag/v1.2.0
[1.1.1]
* Update to version 1.2.1
* Fix PR, milestone and label functionality if issue unit is disabled (#2710) (#2714)
* Fix plain readme didn't render correctly on repo home page (#2705) (#2712)
* Fix so that user can still fork his own repository to his organizations (#2699) (#2707)
* Fix .netrc authentication (#2700) (#2708)
* Fix slice out of bounds error in mailer (#2479) (#2696)
[1.1.2]
* Update to version 1.2.2
* Add checks for commits with missing author and time (#2771) (#2785)
* Fix sending mail with a non-latin display name (#2559) (#2783)
* Sync MaxGitDiffLineCharacters with conf/app.ini (#2779) (#2780)
* Update vendor git (#2765) (#2772)
* Fix emojify image URL (#2769) (#2773)
[1.1.3]
* Update to version 1.2.3
* Only require one email when validating GPG key (#2266, #2467, #2663) (#2788)
* Fix order of comments (#2835) (#2839)
[1.2.0]
* Update to version 1.3.0
[1.3.0]
* Update to version 1.3.1
* Add documentationUrl
* Sanitize logs for mirror sync (#3057, #3082) (#3078)
* Fix missing branch in release bug (#3108) (#3117)
* Fix repo indexer and submodule bug (#3107) (#3110)
* Fix legacy URL redirects (#3100) (#3106)
* Fix redis session failed (#3086) (#3089)
* Fix issue list branch link broken (#3061) (#3070)
* Fix missing password length check when change password (#3039) (#3071)
[1.3.1]
* Update Gitea to 1.3.2
* Fix run web with -p push failed (#3154) (#3179)
* Fix source download link when no code unit allowed (#3166) (#3169)
* Allow adding collaborators with (fullname) (#3103) (#3168)
* Fix repo links (#3093) (#3163)
* Fix Uninitialized variable in ParsePatch (#3156) (#3162)
* Fix migration order v1.3 (#3157)
* Fix avatar URLs (#3069) (#3143)
[1.4.0]
* Fix email sending (use SMTPS)
[1.4.1]
* Update Gitea to 1.3.3
* Security fixes
* Fix escaping changed title in comments (#3530) (#3535)
* Escape search query display (#3486) (#3489)
* Bug fixes
* Fix repo-transfer-and-team-repo-count bug (#3241) (#3244)
* Open external tracker in blank window, consistently with wiki (#3227) (#3228)
* Change SSL Mode from checkbox to string in admin page (#3208) (#3211)
[1.5.0]
* Update Gitea to 1.4.0
[1.5.1]
* Update Gitea to 1.4.1
* Add “error” as reserved username (#3882) (#3886)
* Do not allow inactive users to access repositories using private key (#3887) (#3889)
* Fix path cleanup in file editor, when initilizing new repository and LFS oids (#3871) (#3873)
* Remove unnecessary allowed safe HTML (#3778) (#3779)
* Correctly check http git access rights for reverse proxy authorized users (#3721) (#3743)
* Fix to use only needed columns from tables to get repository git paths (#3870) (#3883)
* Fix GPG expire time display when time is zero (#3584) (#3884)
* Fix to update only issue last update time when adding a comment (#3855) (#3860)
* Fix repository star count after deleting user (#3781) (#3783)
* Use the active branch for the code tab (#3720) (#3776)
* Set default branch name on first push (#3715) (#3723)
* Show clipboard button if disable HTTP of git protocol (#3773) (#3774)
[1.5.2]
* Update Gitea to 1.4.2
* Adjust z-index for floating labels (#3939) (#3950)
* Add missing token validation on application settings page (#3976) #3978
* Webhook and hook_task clean up (#4006)
* Fix webhook bug of response info is not displayed in UI (#4023)
* Fix writer cannot read bare repo guide (#4033) (#4039)
* Don't force due date to current time (#3830) (#4057)
* Fix wiki redirects (#3919) (#4065)
* Fix attachment ENABLED (#4064) (#4066)
* Added deletion of an empty line at the end of file (#4054) (#4074)
* Use ResolveReference instead of path.Join (#4073)
* Fix #4081 Check for leading / in base before removing it (#4083)
* Respository's home page not updated after first push (#4075)
[1.5.2-1]
* Rebuild Gitea package because of https://github.com/go-gitea/gitea/issues/4167
* Adjust z-index for floating labels (#3939) (#3950)
* Add missing token validation on application settings page (#3976) #3978
* Webhook and hook_task clean up (#4006)
* Fix webhook bug of response info is not displayed in UI (#4023)
* Fix writer cannot read bare repo guide (#4033) (#4039)
* Don't force due date to current time (#3830) (#4057)
* Fix wiki redirects (#3919) (#4065)
* Fix attachment ENABLED (#4064) (#4066)
* Added deletion of an empty line at the end of file (#4054) (#4074)
* Use ResolveReference instead of path.Join (#4073)
* Fix #4081 Check for leading / in base before removing it (#4083)
* Respository's home page not updated after first push (#4075)
[1.5.3]
* Update Gitea to 1.4.3
* SECURITY
* HTML-escape plain-text READMEs (#4192) (#4214)
* Fix open redirect vulnerability on login screen (#4312) (#4312)
* BUGFIXES
* Fix broken monitoring page when running processes are shown (#4203) (#4208)
* Fix delete comment bug (#4216) (#4228)
* Delete reactions added to issues and comments when deleting repository (#4232) (#4237)
* Fix wiki URL encoding bug (#4091) (#4254)
* Fix code tab link when viewing tags (#3908) (#4263)
* Fix webhook type conflation (#4285) (#4285)
[1.5.4]
* Allow customization using gitea's custom data directory
[1.6.0]
* Update Gitea to 1.5.0
* Security
* Check that repositories can only be migrated to own user or organizations (#4366) (#4370)
* Limit uploaded avatar image-size to 4096px x 3072px by default (#4353)
* Do not allow to reuse TOTP passcode (#3878)
* Features
* Add cli commands to regen hooks & keys (#3979)
* Add support for FIDO U2F (#3971)
* Added user language setting (#3875)
* Add topic support (#3711)
* Multiple assignees (#3705)
* Add protected branch whitelists for merging (#3689)
* Global code search support (#3664)
* Add label descriptions (#3662)
* Add issue search via API (#3612)
* Add repository setting to enable/disable health checks (#3607)
* Emoji Autocomplete (#3433)
* Implements generator cli for secrets (#3531)
[1.6.1]
* Update Gitea to 1.5.1
* Security
* Don't disclose emails of all users when sending out emails (#4784)
* Improve URL validation for external wiki and external issues (#4710) (#4740)
* Make cookies HttpOnly and obey COOKIE_SECURE flag (#4706) (#4707)
* Bugfixes
* Fix missing release title in webhook (#4783) (#4800)
* Make sure to reset commit count in the cache on mirror syncing (#4770)
* Fixed bug where team with admin privelege type doesn't get any unit (#4759)
* Fix failure on creating pull request with assignees (#4583) (#4727)
* Hide org/create menu item in Dashboard if user has no rights (#4678) (#4686)
[1.7.0]
* Update base image
[1.7.1]
* Update Gitea to 1.5.2
[1.7.2]
* Update Gitea to 1.5.3
* Security
* Fix remote command execution vulnerability in upstream library (#5177) (#5196)
[1.8.0]
* Update Gitea to 1.6.0
[1.8.1]
* Update Gitea to 1.6.1
[1.8.2]
* Update Gitea to 1.6.2
* SECURITY
* Sanitize uploaded file names (#5571) (#5573)
* HTMLEncode user added text (#5570) (#5575)
* BUGFIXES
* Fix indexer reindex bug when gitea restart (#5563) (#5564)
* Fix bug when a read perm user to edit his issue (#5516) (#5534)
* Detect force push failure on deletion of protected branches (#5522) (#5531)
* Fix forgot deletion of notification when delete repository (#5506) (#5514)
* Fix undeleted content when deleting user (#5429) (#5509)
* Fix empty wiki (#5504) (#5508)
[1.8.3]
* Update Gitea to 1.6.3
* SECURITY: Prevent DeleteFilePost doing arbitrary deletion (#5631)
* BUGFIX: Fix wrong text getting saved on editing second comment on an issue (#5608)
[1.8.4]
* Update Gitea to 1.6.4
* Fix SSH key now can be reused as public key after deleting as deploy key (#5671) (#5685)
* When redirecting clean the path to avoid redirecting to external site (#5669) (#5703)
* Fix to use correct value for "MSpan Structures Obtained" (#5706) (#5715)
[1.9.0]
* Update Gitea to 1.7.0
[1.9.1]
* Update Gitea to 1.7.1
* [Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.7.1)
* Disable redirect for i18n (#5910) (#5916)
* Only allow local login if password is non-empty (#5906) (#5908)
* Fix go-get URL generation (#5905) (#5907)
* Fix TLS errors when using acme/autocert for local connections (#5820) (#5826)
* Request for public keys only if LDAP attribute is set (#5816) (#5819)
* Fix delete correct temp directory (#5840) (#5839)
* Fix an error while adding a dependency via UI (#5862) (#5876)
* Fix null pointer in attempt to Sudo if not logged in (#5872) (#5884)
* When creating new repository fsck option should be enabled (#5817) (#5885)
* Prevent nil dereference in mailIssueCommentToParticipants (#5891) (#5895) (#5894)
* Fix bug when read public repo lfs file (#5913) (#5912)
* Respect value of REQUIRE_SIGNIN_VIEW (#5901) (#5915)
* Fix compare button on upstream repo leading to 404 (#5877) (#5914)
[1.9.2]
* Update Gitea to 1.7.2
* Remove all CommitStatus when a repo is deleted (#5940) (#5941)
* Fix notifications on pushing with deploy keys by setting hook environment variables (#5935) (#5944)
* Silence console logger in gitea serv (#5887) (#5943)
* Handle milestone webhook events for issues and PR (#5947) (#5955)
* Show user who created the repository instead of the organization in action feed (#5948) (#5956)
* Fix ssh deploy and user key constraints (#1357) (#5939) (#5966)
* Fix bug when deleting a linked account will removed all (#5989) (#5990)
* Fix empty ssh key importing in ldap (#5984) (#6009)
* Fix metrics auth token detection (#6006) (#6017)
* Create repository on organisation by default on its dashboard (#6026) (#6048)
* Make sure labels are actually returned in API (#6053) (#6059)
* Switch to more recent build of xgo (#6070) (#6072)
* In basic auth check for tokens before call UserSignIn (#5725) (#6083)
[1.9.3]
* Update Gitea to 1.7.3
* Fix server 500 when trying to migrate to an already existing repository (#6188) (#6197)
* Load Issue attributes for API /repos/{owner}/{repo}/issues/{index} (#6122) (#6185)
* Fix bug whereby user could change private repository to public when force private enabled. (#6156) (#6165)
* Fix bug when update owner team then visit team's repo return 404 (#6119) (#6166)
* Fix heatmap and repository menu display in Internet Explorer 9+ (#6117) (#6137)
* Fix prohibit login check on authorization (#6106) (#6115)
* Fix LDAP protocol error regression by moving to ldap.v3 (#6105) (#6107)
* Fix deadlock in webhook PullRequest (#6102) (#6104)
* Fix redirect loop when password change is required and Gitea is installed as a suburl (#5965) (#6101)
* Fix compare button regression (#5929) (#6098)
* Recover panic in orgmode.Render if bad orgfile (#4982) (#5903) (#6097)
[1.9.4]
* Update Gitea to 1.7.4
* Fix potential XSS vulnerability in repository description. (#6306) (#6308)
* Fix wrong release commit id (#6224) (#6300)
* Fix panic on empty signed commits (#6292) (#6300)
* Fix organization dropdown not being scrollable when using mouse wheel (#5988) (#6246)
* Fix displaying dashboard even if required to change password (#6214) (#6215)
[1.9.5]
* Update Gitea to 1.7.5
* unitTypeCode not being used in accessLevelUnit (#6419) (#6423)
* ParsePatch function to work with quoted diff --git strings (#6323) (#6332)
[1.9.6]
* Update Gitea to 1.7.6
* Prevent remote code execution vulnerability with mirror repo URL settings (#6593) (#6595)
* Allow resend of confirmation email when logged in (#6482) (#6487)
[1.10.0]
* Update Gitea to 1.8.0
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.8.0)
* Prevent remote code execution vulnerability with mirror repo URL settings (#6593) (#6594)
* Resolve 2FA bypass on API (#6676) (#6674)
* Prevent the creation of empty sessions for non-logged in users (#6690) (#6677)
* Expose issue stopwatch toggling via API (#5970)
* Pull request conflict files detection (#5951)
* Implement "conversation lock" for issue comments (#5073)
* Feature: Archive repos (#5009)
* Allow to set organization visibility (public, internal, private) (#1763)
* Added URL mapping for Release attachments like on github.com (#1707)
[1.10.1]
* Update Gitea to 1.8.1
[1.10.2]
* Update Gitea to 1.8.2
[1.11.0]
* better custom app.ini integration
* optional sso support
[1.12.0]
* Update Gitea to 1.8.3
* Update manifest to v2
[1.13.0]
* Update Gitea to 1.9.0
[1.13.1]
* Update Gitea to 1.9.1
[1.13.2]
* Make sessions persist restarts
[1.13.3]
* Update Gitea to 1.9.2
* Fix wrong sender when send slack webhook (#7918) (#7924)
* Upload support text/plain; charset=utf8 (#7899)
* Lfs/lock: round locked_at timestamp to second (#7872) (#7875)
* Fix non existent milestone with 500 error (#7867) (#7873)
* SECURITY
* Fix No PGP signature on 1.9.1 tag (#7874)
* Release built with go 1.12.9 to fix security fixes in golang std lib, ref: https://groups.google.com/forum/#!msg/golang-announce/oeMaeUnkvVE/a49yvTLqAAAJ
* ENHANCEMENT
* Fix pull creation with empty changes (#7920) (#7926)
* BUILD
* Drone/docker: prepare multi-arch release + provide arm64 image (#7571) (#7884)
[1.13.4]
* Update Gitea to 1.9.3
* Fix go get from a private repository with Go 1.13 (#8100)
* Strict name matching for Repository.GetTagID() (#8082)
* Avoid ambiguity of branch/directory names for the git-diff-tree command (#8070)
* Add change title notification for issues (#8064)
* Run CORS handler first for /api routes (#7967) (#8053)
* Evaluate emojis in commit messages in list view (#8044)
* Fix failed to synchronize tags to releases for repository (#7990) (#7994)
* Fix adding default Telegram webhook (#7972) (#7992)
* Abort synchronization from LDAP source if there is some error (#7965)
* Fix deformed emoji in commit message (#8071)
* Keep blame view buttons sequence consistent with normal view when viewing a file (#8007) (#8009)
[1.13.5]
* Update Gitea to 1.9.4
* Highlight issue references (#8101) (#8404)
* Fix bug when migrating a private repository #7917 (#8403)
* Change general form binding to gogs form (#8334) (#8402)
* Fix editor commit to new branch if PR disabled (#8375) (#8401)
* Fix milestone num_issues (#8221) (#8400)
* Allow users with explicit read access to give approvals (#8398)
* Fix commit status in PR #8316 and PR #8321 (#8339)
* Fix API for edit and delete release attachment (#8290)
* Fix assets on release webhook (#8283)
* Fix release API URL generation (#8239)
* Allow registration when button is hidden (#8238)
* MS Teams webhook misses commit messages (backport v1.9) (#8225)
[1.13.6]
* Update Gitea to 1.9.5
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.9.5)
* Hide some user information via API if user doesn't have enough permission (#8655) (#8658)
* Fix milestone close timestamp (#8728) (#8731)
* Fix deadline on update issue or PR via API (#8699)
* Fix 'New Issue Missing Milestone Comment' (#8678) (#8682)
* Fix 500 when getting user as unauthenticated user (#8653) (#8662)
* Use AppSubUrl for more redirections (#8647) (#8652)
* Add SubURL to redirect path (#8632) (#8634) (#8640)
* Fix #8582 by handling empty repos (#8587) (#8593)
* Fix bug on pull requests when transfer head repository (#8571)
* Add missed close in ServeBlobLFS (#8527) (#8543)
* Return false if provided branch name is empty for IsBranchExist (#8485) (#8492)
* Create .ssh dir as necessary (#8369) (#8486) (#8489)
* Restore functionality for early gits (#7775) (#8476)
* Add check for empty set when dropping indexes during migration (#8475)
* Ensure Request Body Readers are closed in LFS server (#8454) (#8459)
* Ensure that LFS files are relative to the LFS content path (#8455) (#8458)
* Ignore mentions for users with no access (#8395) (#8484)
[1.14.0]
* Update Gitea to 1.10.0
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.10.0)
[1.14.1]
* Update Gitea to 1.10.1
* Fix max length check and limit in multiple repo forms (#9148) (#9204)
* Properly fix displaying virtual session provider in admin panel (#9137) (#9203)
* Upgrade levelqueue to 0.1.0 (#9192) (#9199)
* Fix panic when diff (#9187) (#9193)
* Smtp logger configuration sendTos should be an array (#9154) (#9157)
* Always Show Password Field on Link Account Sign-in Page (#9150)
* Create PR on Current Repository by Default (#8670) (#9141)
* Fix race on indexer (#9136) (#9139)
* Fix reCAPTCHA URL (#9119)
* Hide migrated credentials (#9098)
* Update golang.org/x/crypto vendor to use acme v2 (#9056) (#9085)
* Fix password checks on admin create/edit user (#9076) (#9081)
* Fix add search as a reserved username (#9063) (#9065)
* Fix permission checks for close/reopen from commit (#8875) (#9033)
* Ensure Written is set in GZIP ProxyResponseWriter (#9018) (#9025)
* Fix broken link to branch from issue list (#9003) (#9021)
* Fix wrong system notice when repository is empty (#9020)
* Shadow password correctly for session config (#8984) (#9002)
[1.14.2]
* Update Gitea to 1.10.2
* Allow only specific Columns to be updated on Issue via API (#9539) (#9580)
* Add ErrReactionAlreadyExist error (#9550) (#9564)
* Fix bug when migrate from API (#8631) (#9563)
* Use default avatar for ghost user (#9536) (#9537)
* Fix repository issues pagination bug when there are more than one label filter (#9512) (#9528)
* Fix deleted branch not removed when push the branch again (#9516) (#9524)
* Fix missing repository status when migrating repository via API (#9511)
* Trigger webhook when deleting a branch after merging a PR (#9510)
* Fix paging on /repos/{owner}/{repo}/git/trees/{sha} API endpoint (#9482)
* Fix NewCommitStatus (#9434) (#9435)
* Use OriginalURL instead of CloneAddr in migration logging (#9418) (#9420)
* Fix Slack webhook payload title generation to work with Mattermost (#9404)
* DefaultBranch needs to be prefixed by BranchPrefix (#9356) (#9359)
* Fix issue indexer not triggered when migrating a repository (#9333)
* Fix bug that release attachment files not deleted when deleting repository (#9322) (#9329)
* Fix migration releases (#9319) (#9326) (#9328)
* Fix File Edit: Author/Committer interchanged (#9297) (#9300)
[1.14.3]
* Update Gitea to 1.10.3
* Hide credentials when submitting migration (#9102) (#9704)
* Never allow an empty password to validate (#9682) (#9684)
* Prevent redirect to Host (#9678) (#9680)
* Hide public repos owned by private orgs (#9609) (#9616)
* Allow assignee on Pull Creation when Issue Unit is deactivated (#9836) (#9838)
* Fix download file wrong content-type (#9825) (#9835)
* Fix wrong identify poster on a migrated pull request when submit review (#9827) (#9831)
* Fix dump non-exist log directory (#9818) (#9820)
* Fix compare (#9808) (#9815)
* Fix missing msteam webhook on organization (#9781) (#9795)
* Fix add team on collaborator page when same name as organization (#9783)
* Fix cache problem on dashboard (#9358) (#9703)
* Send tag create and push webhook when release created on UI (#8671) (#9702)
* Branches not at ref commit ID should not be listed as Merged (#9614) (#9639)
[1.15.0]
* Update Gitea to 1.11.0
[1.15.1]
* Update Gitea to 1.11.1
* Repo name added to automatically generated commit message when merging (#9997) (#10285)
* Fix Workerpool deadlock (#10283) (#10284)
* Divide GetIssueStats query in smaller chunks (#10176) (#10282)
* Fix reply on code review (#10257)
* Stop hanging issue indexer initialisation from preventing shutdown (#10243) (#10249)
* Fix filter label emoji width (#10241) (#10244)
* Fix issue sidebar menus having an infinite height (#10239) (#10240)
* Fix commit between two commits calculation if there is only last commit (#10225) (#10226)
* Only check for conflicts/merging if the PR has not been merged in the interim (#10132) (#10206)
* Blacklist manifest.json & milestones user (#10292) (#10293)
[1.15.2]
* Update Gitea to 1.11.2
[1.15.3]
* Update Gitea to 1.11.3
[1.15.4]
* Update Gitea to 1.11.4
[1.16.0]
* Update Gitea to [1.11.5](https://github.com/go-gitea/gitea/releases/tag/v1.11.5)
* Update base image to 2.0.0
[1.16.1]
* Update Gitea to 1.11.6
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.11.6)
* Fix missing authorization check on pull for public repos of private/limited org (#11656) (#11683)
* Use session for retrieving org teams (#11438) (#11439)
* Return json on 500 error from API (#11574) (#11660)
* Fix wrong milestone in webhook message (#11596) (#11612)
* Prevent (caught) panic on login (#11590) (#11598)
* Fix commit page js error (#11527)
[1.17.0]
* Update Gitea to 1.12.1
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.12.0)
[1.18.0]
* Add forumUrl and update tags and screenshots
[1.18.1]
* Update Gitea to 1.12.2
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.12.2)
[1.18.2]
* Update Gitea to 1.12.3
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.12.3)
* Don't change creation date when updating Release (#12343) (#12351)
* Show 404 page when release not found (#12328) (#12332)
* Fix emoji detection in certain cases (#12320) (#12327)
* Reduce emoji size (#12317) (#12327)
* Fix double-indirection bug in logging IDs (#12294) (#12308)
* Link to pull list page on sidebar when view pr (#12256) (#12263)
* Extend Notifications API and return pinned notifications by default (#12164) (#12232)
+1996
View File
File diff suppressed because it is too large Load Diff
+39 -16
View File
@@ -4,21 +4,27 @@
"author": "Gitea developers", "author": "Gitea developers",
"description": "file://DESCRIPTION.md", "description": "file://DESCRIPTION.md",
"tagline": "A painless self-hosted Git Service", "tagline": "A painless self-hosted Git Service",
"version": "1.18.2", "version": "1.38.0",
"healthCheckPath": "/healthcheck", "upstreamVersion": "1.26.0",
"healthCheckPath": "/explore",
"httpPort": 3000, "httpPort": 3000,
"memoryLimit": 536870912, "memoryLimit": 536870912,
"addons": { "addons": {
"mysql": { }, "mysql": {},
"sendmail": { }, "sendmail": {
"localstorage": { }, "supportsDisplayName": true
"ldap": { } },
"localstorage": {},
"oidc": {
"loginRedirectUri": "/user/oauth2/cloudron/callback"
}
}, },
"tcpPorts": { "tcpPorts": {
"SSH_PORT": { "SSH_PORT": {
"title": "SSH Port", "title": "SSH Port",
"description": "SSH Port over which repos can be pushed & pulled", "description": "SSH Port over which repos can be pushed & pulled",
"defaultValue": 29418 "defaultValue": 29418,
"enabledByDefault": true
} }
}, },
"manifestVersion": 2, "manifestVersion": 2,
@@ -27,16 +33,33 @@
"icon": "file://logo.png", "icon": "file://logo.png",
"optionalSso": true, "optionalSso": true,
"mediaLinks": [ "mediaLinks": [
"https://cloudron-app-screenshots.s3.amazonaws.com/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/1.png", "https://screenshots.cloudron.io/io.gitea.cloudronapp/1.png",
"https://cloudron-app-screenshots.s3.amazonaws.com/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/2.png", "https://screenshots.cloudron.io/io.gitea.cloudronapp/2.png",
"https://cloudron-app-screenshots.s3.amazonaws.com/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/3.png", "https://screenshots.cloudron.io/io.gitea.cloudronapp/3.png",
"https://cloudron-app-screenshots.s3.amazonaws.com/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/4.png", "https://screenshots.cloudron.io/io.gitea.cloudronapp/4.png",
"https://cloudron-app-screenshots.s3.amazonaws.com/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/5.png" "https://screenshots.cloudron.io/io.gitea.cloudronapp/5.png"
], ],
"tags": [ "version control", "git", "code hosting", "development", "github", "bitbucket", "gitlab" ], "tags": [
"changelog": "file://CHANGELOG", "version control",
"git",
"code hosting",
"development",
"github",
"bitbucket",
"gitlab"
],
"changelog": "file://CHANGELOG.md",
"postInstallMessage": "file://POSTINSTALL.md", "postInstallMessage": "file://POSTINSTALL.md",
"minBoxVersion": "5.3.0", "checklist": {
"change-default-password": {
"message": "Change the default admin password"
},
"disable-registration": {
"message": "Disable registration, if required, to prevent misuse",
"sso": false
}
},
"minBoxVersion": "9.0.0",
"forumUrl": "https://forum.cloudron.io/category/19/gitea", "forumUrl": "https://forum.cloudron.io/category/19/gitea",
"documentationUrl": "https://cloudron.io/documentation/apps/gitea/" "documentationUrl": "https://docs.cloudron.io/packages/gitea/"
} }
-2
View File
@@ -1,5 +1,3 @@
This app packages Gitea <upstream>1.12.3</upstream>
Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket or Gitlab. Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket or Gitlab.
### Purpose ### Purpose
+19 -14
View File
@@ -1,22 +1,27 @@
FROM cloudron/base:2.0.0@sha256:f9fea80513aa7c92fe2e7bf3978b54c8ac5222f47a9a32a7f8833edf0eb5a4f4 FROM cloudron/base:5.0.0@sha256:04fd70dbd8ad6149c19de39e35718e024417c3e01dc9c6637eaf4a41ec4e596c
ARG VERSION=1.12.3
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y openssh-server git && \ apt-get install -y openssh-server git asciidoctor pandoc pipx && \
rm -rf /etc/ssh_host_* && \ rm -rf /etc/ssh_host_* && \
rm -r /var/cache/apt /var/lib/apt/lists rm -r /var/cache/apt /var/lib/apt/lists
# pipx --global does not work, not sure why
RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install jupyter docutils --include-deps
ADD supervisor/ /etc/supervisor/conf.d/ ADD supervisor/ /etc/supervisor/conf.d/
RUN adduser --disabled-login --gecos 'Gitea' git RUN useradd --comment "Gogs" --create-home --shell /bin/bash git
# by default, git account is created as inactive which prevents login via openssh RUN passwd -d git # by default, git account is created as inactive which prevents login via openssh. this disables password for account
# https://github.com/gitlabhq/gitlabhq/issues/5304
RUN passwd -d git
RUN mkdir -p /home/git/gitea
WORKDIR /home/git WORKDIR /home/git
RUN curl -L https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 -o /home/git/gitea/gitea \
# for autosign feature
ENV GNUPGHOME="/app/data/gnupg"
# renovate: datasource=github-releases depName=go-gitea/gitea versioning=semver extractVersion=^v(?<version>.+)$
ARG GITEA_VERSION=1.26.0
RUN mkdir -p /home/git/gitea && \
curl -L https://github.com/go-gitea/gitea/releases/download/v${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64 -o /home/git/gitea/gitea \
&& chmod +x /home/git/gitea/gitea && chmod +x /home/git/gitea/gitea
# setup config paths # setup config paths
@@ -26,10 +31,10 @@ ADD app.ini.template /home/git/app.ini.template
RUN mkdir -p /run/gitea && chown -R git:git /run/gitea RUN mkdir -p /run/gitea && chown -R git:git /run/gitea
RUN sed -e 's,^logfile=.*$,logfile=/run/gitea/supervisord.log,' -i /etc/supervisor/supervisord.conf RUN sed -e 's,^logfile=.*$,logfile=/run/gitea/supervisord.log,' -i /etc/supervisor/supervisord.conf
RUN ln -s /app/data/ssh /home/git/.ssh RUN ln -s /app/data/ssh /home/git/.ssh && \
RUN ln -s /app/data/gitconfig /home/git/.gitconfig ln -s /app/data/gitconfig /home/git/.gitconfig
ADD start.sh /home/git/start.sh COPY start.sh /home/git/
COPY sshd_config /etc/ssh/sshd_config COPY sshd_config /etc/ssh/sshd_config
+4 -7
View File
@@ -1,12 +1,9 @@
This app is pre-setup with an admin account (use the `Local` authentication source for logging in as admin). This app is pre-setup with an admin account. The initial credentials are:
The initial credentials are:
**Username**: root <br/> **Username**: root<br/>
**Password**: changeme <br/> **Password**: changeme<br/>
Please change the admin password immediately.
<sso> <sso>
Cloudron users can login using the `Cloudron` authentication source. Use the `Local` authentication source for logging in as admin.
</sso> </sso>
+33 -6
View File
@@ -48,26 +48,34 @@ ENABLED = true
; APP_DATA_PATH/attachments ; APP_DATA_PATH/attachments
PATH = PATH =
[oauth2_client]
ENABLE_AUTO_REGISTRATION = true
USERNAME = sub
UPDATE_AVATAR = false
ACCOUNT_LINKING = auto
[mailer] [mailer]
ENABLED = true ENABLED = true
; those settings are protected and can't be modified ; those settings are protected and can't be modified
HOST = ##MAIL_SERVER:##MAIL_PORT SMTP_ADDR = ##MAIL_SERVER
SMTP_PORT = ##MAIL_PORT
USER = ##MAIL_SMTP_USERNAME USER = ##MAIL_SMTP_USERNAME
PASSWD = ##MAIL_SMTP_PASSWORD PASSWD = ##MAIL_SMTP_PASSWORD
FROM = ##MAIL_FROM FROM = ##MAIL_FROM
SKIP_VERIFY = true PROTOCOL = smtps
FORCE_TRUST_SERVER_CERT = true
[security] [security]
; those settings are protected and can't be modified ; those settings are protected and can't be modified
INSTALL_LOCK = true INSTALL_LOCK = true
SECRET_KEY = ##SECRET_KEY SECRET_KEY = ##SECRET_KEY
REVERSE_PROXY_LIMIT = 1
REVERSE_PROXY_TRUSTED_PROXIES = *
[service] [service]
DISABLE_REGISTRATION = false DISABLE_REGISTRATION = true
SHOW_REGISTRATION_BUTTON = false SHOW_REGISTRATION_BUTTON = false
ENABLE_NOTIFY_MAIL = true ENABLE_NOTIFY_MAIL = true
@@ -83,8 +91,6 @@ ROOT_PATH = /run/gitea
; APP_DATA_PATH/avatars ; APP_DATA_PATH/avatars
AVATAR_UPLOAD_PATH = AVATAR_UPLOAD_PATH =
GRAVATAR_SOURCE = gravatar GRAVATAR_SOURCE = gravatar
DISABLE_GRAVATAR = false
[attachment] [attachment]
ENABLE = true ENABLE = true
@@ -103,3 +109,24 @@ COOKIE_SECURE = true
COOKIE_NAME = cloudron_gitea COOKIE_NAME = cloudron_gitea
GC_INTERVAL_TIME = 2592000 GC_INTERVAL_TIME = 2592000
[markup.asciidoc]
ENABLED = true
FILE_EXTENSIONS = .adoc,.asciidoc
RENDER_COMMAND = "asciidoctor -s -a showtitle --out-file=- -"
; Input is not a standard input but a file
IS_INPUT_FILE = false
[markup.restructuredtext]
ENABLED = true
FILE_EXTENSIONS = .rst
RENDER_COMMAND = "timeout 30s pandoc +RTS -M512M -RTS -f rst"
IS_INPUT_FILE = false
[markup.jupyter]
ENABLED = true
FILE_EXTENSIONS = .ipynb
RENDER_COMMAND = "jupyter nbconvert --stdin --stdout --to html --template basic"
IS_INPUT_FILE = false
[markup.sanitizer.jupyter.img]
ALLOW_DATA_URI_IMAGES = true
+4
View File
@@ -0,0 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>devops/renovator//default.renovate.json5"]
}
+28 -70
View File
@@ -1,79 +1,37 @@
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 29418 Port 29418
# Use these options to restrict which interfaces/protocols sshd will bind to
AddressFamily any
ListenAddress 0.0.0.0 ListenAddress 0.0.0.0
Protocol 2 ListenAddress ::
# HostKeys for protocol version 2
HostKey /app/data/sshd/ssh_host_rsa_key HostKey /app/data/sshd/ssh_host_rsa_key
HostKey /app/data/sshd/ssh_host_dsa_key
HostKey /app/data/sshd/ssh_host_ecdsa_key HostKey /app/data/sshd/ssh_host_ecdsa_key
HostKey /app/data/sshd/ssh_host_ed25519_key HostKey /app/data/sshd/ssh_host_ed25519_key
# Logging
SyslogFacility AUTH
LogLevel INFO LogLevel INFO
# Authentication: # no reverse DNS lookup
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM no
UseDNS no UseDNS no
UsePAM no
AllowAgentForwarding no
AllowTcpForwarding no
PrintMotd no
PrintLastLog no
LoginGraceTime 120
StrictModes yes
PubkeyAuthentication yes
PermitUserEnvironment yes
PermitRootLogin no
ChallengeResponseAuthentication no
PasswordAuthentication no
PermitEmptyPasswords no
HostbasedAuthentication no
AllowUsers git
Banner none
Subsystem sftp /usr/lib/ssh/sftp-server
AcceptEnv GIT_PROTOCOL LANG LC_*
+35 -36
View File
@@ -4,56 +4,42 @@ set -eu -o pipefail
mkdir -p /run/gitea/tmp/uploads /run/sshd /run/gitea/sessions mkdir -p /run/gitea/tmp/uploads /run/sshd /run/gitea/sessions
setup_ldap_source() { # CLOUDRON_OIDC_PROVIDER_NAME not supported as it will be used in rest route!
setup_oidc_source() {
set -eu set -eu
# Get the existing LDAP source status. This allows the user to disable LDAP echo "==> Setup OIDC source"
# Note that this method is deprecated since this app now supports optionalSso
ldap_status=$(mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h mysql --database="${CLOUDRON_MYSQL_DATABASE}" -N -B -e "select is_actived from login_source WHERE name='cloudron';")
[[ -z "${ldap_status}" ]] && ldap_status="1"
now=$(date +%s) now=$(date +%s)
mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h"${CLOUDRON_MYSQL_HOST}" -P"${CLOUDRON_MYSQL_PORT}" --database="${CLOUDRON_MYSQL_DATABASE}" -e \
if mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h mysql --database="${CLOUDRON_MYSQL_DATABASE}" \ "REPLACE INTO login_source (id, type, name, is_active, cfg, created_unix, updated_unix) VALUES (1,6,'cloudron', 1,'{\"Provider\":\"openidConnect\",\"ClientID\":\"${CLOUDRON_OIDC_CLIENT_ID}\",\"ClientSecret\":\"${CLOUDRON_OIDC_CLIENT_SECRET}\",\"OpenIDConnectAutoDiscoveryURL\":\"${CLOUDRON_OIDC_ISSUER}/.well-known/openid-configuration\",\"CustomURLMapping\":null,\"IconURL\":\"\",\"Scopes\":[\"openid email profile\"],\"RequiredClaimName\":\"\",\"RequiredClaimValue\":\"\",\"GroupClaimName\":\"\",\"AdminGroup\":\"\",\"GroupTeamMap\":\"\",\"GroupTeamMapRemoval\":false,\"RestrictedGroup\":\"\"}','${now}','${now}')"
-e "REPLACE INTO login_source (id, type, name, is_actived, cfg, created_unix, updated_unix) VALUES (1,2,'cloudron',${ldap_status},'{\"Name\":\"cloudron\",\"Host\":\"${CLOUDRON_LDAP_SERVER}\",\"Port\":${CLOUDRON_LDAP_PORT},\"UseSSL\":false,\"SkipVerify\":true,\"BindDN\":\"${CLOUDRON_LDAP_BIND_DN}\",\"BindPassword\":\"${CLOUDRON_LDAP_BIND_PASSWORD}\",\"UserBase\":\"${CLOUDRON_LDAP_USERS_BASE_DN}\",\"AttributeUsername\":\"username\",\"AttributeName\":\"displayname\",\"AttributeSurname\":\"\",\"AttributeMail\":\"mail\",\"Filter\":\"(\\\\u007C(mail=%[1]s)(username=%[1]s))\"}','${now}','${now}');"; then
echo "==> LDAP Authentication was setup with activation status ${ldap_status}"
else
echo "==> Failed to setup LDAP authentication"
exit 1
fi
}
setup_root_user() {
set -eu
if sudo -H -u git /home/git/gitea/gitea admin create-user --name root --password changeme --email test@cloudron.io --admin -c /run/gitea/app.ini; then
echo "==> root user added"
else
echo "==> Failed to add root user"
exit 1
fi
} }
setup_auth() { setup_auth() {
set -eu set -eu
# Wait for gitea to finish db setup, before we do any db operations # Wait for gitea to finish db setup, before we do any db operations
while ! curl --fail http://localhost:3000/healthcheck; do while ! curl --fail http://localhost:3000/explore; do
echo "==> Waiting for gitea to come up" echo "==> Waiting for gitea to come up"
sleep 1 sleep 1
done done
echo "==> Gitea is up, setting up auth" echo "==> Gitea is up, setting up auth"
if [[ -n "${CLOUDRON_LDAP_SERVER:-}" ]]; then if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
setup_ldap_source setup_oidc_source
fi fi
user_count=$(mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h mysql --database="${CLOUDRON_MYSQL_DATABASE}" -N -B -e "SELECT count(*) FROM user;") user_count=$(mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h"${CLOUDRON_MYSQL_HOST}" -P"${CLOUDRON_MYSQL_PORT}" --database="${CLOUDRON_MYSQL_DATABASE}" -N -B -e "SELECT count(*) FROM user")
# be careful, not to create root user for existing LDAP based installs # be careful, not to create root user for existing LDAP based installs
if [[ "${user_count}" == "0" ]]; then if [[ "${user_count}" == "0" ]]; then
echo "==> Setting up root user for first run" echo "==> Setting up root user for first run"
setup_root_user if sudo -H -u git /home/git/gitea/gitea admin user create --username root --password changeme --email admin@cloudron.local --admin -c /run/gitea/app.ini; then
echo "==> root user added"
else
echo "==> Failed to add root user"
exit 1
fi
fi fi
} }
@@ -86,6 +72,11 @@ if [[ ! -f /app/data/app.ini ]]; then
echo "==> Generating new SECRET_KEY" echo "==> Generating new SECRET_KEY"
crudini --set "/app/data/app.ini" security SECRET_KEY $(pwgen -1 -s) crudini --set "/app/data/app.ini" security SECRET_KEY $(pwgen -1 -s)
if [[ -z "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
crudini --set "/app/data/app.ini" service DISABLE_REGISTRATION false
crudini --set "/app/data/app.ini" service SHOW_REGISTRATION_BUTTON true
fi
fi fi
# merge user config file # merge user config file
@@ -109,22 +100,30 @@ crudini --set "/run/gitea/app.ini" server SSH_PORT "${SSH_PORT}"
crudini --set "/run/gitea/app.ini" server APP_DATA_PATH "/app/data/appdata" crudini --set "/run/gitea/app.ini" server APP_DATA_PATH "/app/data/appdata"
crudini --set "/run/gitea/app.ini" repository ROOT "/app/data/repository" crudini --set "/run/gitea/app.ini" repository ROOT "/app/data/repository"
crudini --set "/run/gitea/app.ini" repository.upload TEMP_PATH "/run/gitea/tmp/uploads" crudini --set "/run/gitea/app.ini" repository.upload TEMP_PATH "/run/gitea/tmp/uploads"
crudini --set "/run/gitea/app.ini" mailer HOST "${CLOUDRON_MAIL_SMTP_SERVER}:${CLOUDRON_MAIL_SMTPS_PORT}" crudini --set "/run/gitea/app.ini" mailer SMTP_ADDR "${CLOUDRON_MAIL_SMTP_SERVER}"
crudini --set "/run/gitea/app.ini" mailer SMTP_PORT "${CLOUDRON_MAIL_SMTPS_PORT}"
crudini --set "/run/gitea/app.ini" mailer PROTOCOL smtps
crudini --set "/run/gitea/app.ini" mailer USER "${CLOUDRON_MAIL_SMTP_USERNAME}" crudini --set "/run/gitea/app.ini" mailer USER "${CLOUDRON_MAIL_SMTP_USERNAME}"
crudini --set "/run/gitea/app.ini" mailer PASSWD "${CLOUDRON_MAIL_SMTP_PASSWORD}" crudini --set "/run/gitea/app.ini" mailer PASSWD "${CLOUDRON_MAIL_SMTP_PASSWORD}"
crudini --set "/run/gitea/app.ini" mailer FROM "${CLOUDRON_MAIL_FROM}" crudini --set "/run/gitea/app.ini" mailer FROM "${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Gitea} <${CLOUDRON_MAIL_FROM}>"
crudini --set "/run/gitea/app.ini" mailer SKIP_VERIFY "true" crudini --set "/run/gitea/app.ini" mailer FORCE_TRUST_SERVER_CERT "true"
crudini --set "/run/gitea/app.ini" security INSTALL_LOCK "true" crudini --set "/run/gitea/app.ini" security INSTALL_LOCK "true"
crudini --set "/run/gitea/app.ini" security REVERSE_PROXY_LIMIT 1
crudini --set "/run/gitea/app.ini" security REVERSE_PROXY_TRUSTED_PROXIES "*"
crudini --set "/run/gitea/app.ini" log MODE "console" crudini --set "/run/gitea/app.ini" log MODE "console"
crudini --set "/run/gitea/app.ini" log ROOT_PATH "/run/gitea" crudini --set "/run/gitea/app.ini" log ROOT_PATH "/run/gitea"
crudini --set "/run/gitea/app.ini" indexer ISSUE_INDEXER_PATH "/app/data/appdata/indexers/issues.bleve" crudini --set "/run/gitea/app.ini" indexer ISSUE_INDEXER_PATH "/app/data/appdata/indexers/issues.bleve"
echo "==> Creating dirs and changing permissions" echo "==> Creating dirs and changing permissions"
mkdir -p /app/data/repository /app/data/ssh /app/data/custom mkdir -p /app/data/repository /app/data/ssh /app/data/custom /app/data/gnupg
chown -R git:git /app/data /run/gitea chown -R git:git /app/data /run/gitea
# this expects app.ini to be available # OIDC creds are read from the db at gitea startup, so if migrations have already
( setup_auth ) & # run (i.e. the user table exists), refresh the OIDC source synchronously now.
if mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h"${CLOUDRON_MYSQL_HOST}" -P"${CLOUDRON_MYSQL_PORT}" --database="${CLOUDRON_MYSQL_DATABASE}" -N -B -e "SELECT count(*) FROM user" >/dev/null 2>&1; then
[[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]] && setup_oidc_source
else
( setup_auth ) &
fi
exec /usr/bin/supervisord --configuration /etc/supervisor/supervisord.conf --nodaemon -i Gitea exec /usr/bin/supervisord --configuration /etc/supervisor/supervisord.conf --nodaemon -i Gitea
-1
View File
@@ -8,4 +8,3 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
+1 -1
View File
@@ -2,4 +2,4 @@
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ssh -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${SCRIPT_DIR}/id_rsa "$@" ssh -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${SCRIPT_DIR}/id_ed25519 "$@"
+7
View File
@@ -0,0 +1,7 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACDECyFdxcmgOemNvs0wUhkgzfj9IS2OTG6bU5AXfNkXfgAAAJAoNQg/KDUI
PwAAAAtzc2gtZWQyNTUxOQAAACDECyFdxcmgOemNvs0wUhkgzfj9IS2OTG6bU5AXfNkXfg
AAAEC9nIZlzus9hn/b99E/cnSE2Vpycx0invItrrzgOX9qwMQLIV3FyaA56Y2+zTBSGSDN
+P0hLY5MbptTkBd82Rd+AAAADW5lYnVsb25AbHVuYXI=
-----END OPENSSH PRIVATE KEY-----
+1
View File
@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMQLIV3FyaA56Y2+zTBSGSDN+P0hLY5MbptTkBd82Rd+ nebulon@lunar
-27
View File
@@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA14L+HdwPXRHC2A+fyRv1FTsRE/OPl0Z0KnEigzIIdA65CzTy
l3m3ATNFI1o/Ies7RW6rsr9UHuLLufNVg1NwIBdns8sPE4pSZSjfdPnznifIIs7y
wL/vn2D3JEhpA8EOasSy0c+z+6X23evsLB3D81y7ICsBc16Q147WZ6D+QMUP+A4b
wlmEcy0hAoPx/jnnPlRDVOK1ZnBvuAaHBkcBh+sA272BhB6Kv13MBu0wctDjKw5w
cNmgVWbzBBtK1L8BZVMDKmKWZ2PKP4GkkpnAvkD0+4sdARe148faV8HHigAKKNN7
vt+njs6nHuS4ksJL1E9cKGHdBJudJc3p24iI7QIDAQABAoIBABm5ojnQPek/KIIA
A3PPKYc6QMSf60EEgPNcA+GjRE0OQNpsnJSmS8kR5KvepvCWksGr/0Tb/9+b9POi
b0+40waRpKhakdckSMeYhGwDNihn2UUGbQXDI4hj27xyBE8VaXInPq063OIqInjF
I7D0cKKJLDEf0RGDdUi13TQLjK4QX78W/9S8d5ClznAVi4wUBb1urs7fAoVetn/i
PnlEj9KZHio4mCg28djTudAoWzjzUikRqKRYY5QNEJ13abVoLqIRSRHC1DzwpxVv
Y88l4hmm6IcmWGo0O9lpu5IJFvEmngfpmyaVbeLE0fhLPFWcEHARw37SThTZVQeY
Tx1816UCgYEA9j5dyNbFcC4YL9i9DQyut658bYziY2vsAvZNMMf249IJGbZOxlZK
ylB00zlbO/2uNh12Y9z6BN2hO2lER3O3SM75tCnvXR0+qG+xmfjLcRVczEkU10+r
8UxKBgg7Sf9uvfeONefEYPwiwzFoWgdaFSrR2sCmuoHPwfc9i+PSp+8CgYEA4Azq
DToKdv6VBWPlNXT6OW3+HUPeHF087Ve03+3orCckZ+d2DImEOvWdt+pDeGQJJcq+
o+SzZk9FjFOIiQehuA44OFrvcbag9YAlm1JQYYrRTdZEJz3iSucXCzJH/P5TrB84
BHvzgCklZzZ0IpEFxzMe8oNS6XfJmilh6I98YOMCgYBybOy7xUGeLW1D3p2LENen
t0dOyObyeFYF0lpwTpulphZgglz8wWCjvttqw/5nVCy+LNa09RyhYjPoHbSC13zW
MofKdqoqRMq3DqAjAn/XHqwuqc8rdnRZ/q9vOigC7NWTJRRKbFbPEps8xRrOqxfr
OiimVFul02ito6xP8yAStQKBgQDHbPdPup/h9wzx9U7p3Ct1vt/3cJddK+i1YeIP
iBYYVebjzXSYCDd4u3MdZxmTKYey6dnyy/ibUmgXVassPWzHBXEpSFflIaf3nY7b
x9LgX82ZuOSFAWJRRYyPXLwTBtW3WTplU2cUZotyaVfKBMfd3TToq9e7E/KQk9Eg
Tcdp/QKBgCyKD1gGU/H1bsQOuWHuFR1v7v82V1DLVjyn5kllej0tlfTLO/5uUsEE
SIjGHfTHxgpww9HN9BPyy8xdQMAc6p7UyvJAIyhg679AQBrMLLvhE5niaGu4jQOa
ZVY6nZUQNCwgxJwnUkFnOyXDYjzjyxZOCAWPxghYbS+IEl1GzhZU
-----END RSA PRIVATE KEY-----
-1
View File
@@ -1 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXgv4d3A9dEcLYD5/JG/UVOxET84+XRnQqcSKDMgh0DrkLNPKXebcBM0UjWj8h6ztFbquyv1Qe4su581WDU3AgF2ezyw8TilJlKN90+fOeJ8gizvLAv++fYPckSGkDwQ5qxLLRz7P7pfbd6+wsHcPzXLsgKwFzXpDXjtZnoP5AxQ/4DhvCWYRzLSECg/H+Oec+VENU4rVmcG+4BocGRwGH6wDbvYGEHoq/XcwG7TBy0OMrDnBw2aBVZvMEG0rUvwFlUwMqYpZnY8o/gaSSmcC+QPT7ix0BF7Xjx9pXwceKAAoo03u+36eOzqce5LiSwkvUT1woYd0Em50lzenbiIjt girish@beast
-1929
View File
File diff suppressed because it is too large Load Diff
-20
View File
@@ -1,20 +0,0 @@
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "test.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"chromedriver": "^84.0.1",
"expect.js": "^0.3.1",
"mocha": "^8.0.1",
"rimraf": "^3.0.2",
"selenium-server-standalone-jar": "^3.141.59",
"selenium-webdriver": "^3.6.0",
"superagent": "^5.3.1"
}
}
+139 -356
View File
@@ -1,319 +1,148 @@
#!/usr/bin/env node #!/usr/bin/env node
/* jslint node:true */ import assert from 'node:assert/strict';
/* global it:false */ import { execSync } from 'node:child_process';
/* global xit:false */ import fs from 'node:fs';
/* global describe:false */ import path from 'node:path';
/* global before:false */ import superagent from '@cloudron/superagent';
/* global after:false */ import {
app,
clearCache,
click,
cloudronCli,
executeScript,
goto,
loginOIDC,
sendKeys,
setInputFiles,
setupBrowser,
takeScreenshot,
teardownBrowser,
username,
waitForElement,
waitForPath
} from '@cloudron/charlie';
'use strict'; /* global it, describe, before, after, afterEach */
require('chromedriver'); const SSH_PORT = 29420;
const INSTALL_TCP_FLAGS = { SSH_PORT };
var execSync = require('child_process').execSync, const repodir = '/tmp/testrepo';
expect = require('expect.js'), const reponame = 'testrepo';
fs = require('fs'),
path = require('path'),
rimraf = require('rimraf'),
superagent = require('superagent'),
{ Builder, By, until } = require('selenium-webdriver'),
{ Options } = require('selenium-webdriver/chrome');
if (!process.env.USERNAME || !process.env.PASSWORD || !process.env.EMAIL) {
console.log('USERNAME, PASSWORD and EMAIL env vars need to be set');
process.exit(1);
}
describe('Application life cycle test', function () { describe('Application life cycle test', function () {
this.timeout(0); before(setupBrowser);
after(async function () {
var TIMEOUT = parseInt(process.env.TIMEOUT, 10) || 5000; await teardownBrowser();
var EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' }; fs.rmSync(repodir, { recursive: true, force: true });
var LOCATION = 'test';
var SSH_PORT = 29420;
var app;
var token;
var server, browser = new Builder().forBrowser('chrome').build();
var repodir = '/tmp/testrepo';
var reponame = 'testrepo';
var username = process.env.USERNAME;
var password = process.env.PASSWORD;
var email = process.env.EMAIL;
before(function () {
var seleniumJar= require('selenium-server-standalone-jar');
var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;
server = new SeleniumServer(seleniumJar.path, { port: 4444 });
server.start();
}); });
after(function (done) { afterEach(async function () {
browser.quit(); await takeScreenshot(this.currentTest.title);
rimraf.sync(repodir);
done();
}); });
function waitForUrl(url) { async function setAvatar() {
return browser.wait(function () { await goto(`https://${app.fqdn}/user/settings`, '//label[contains(text(), "Use Custom Avatar")]');
return browser.getCurrentUrl().then(function (currentUrl) { await click('//label[contains(text(), "Use Custom Avatar")]');
return currentUrl === url; await setInputFiles('//input[@type="file" and @name="avatar"]', path.resolve(import.meta.dirname, '../logo.png'));
await click('//button[contains(text(), "Update Avatar")]');
await waitForElement('//p[contains(text(),"Your avatar has been updated.")]');
}
async function checkAvatar() {
await goto(`https://${app.fqdn}/${username}`, '//div[@id="profile-avatar"]/a/img');
const avatarSrc = await executeScript(() => {
const el = document.querySelector('#profile-avatar a img');
return el ? el.getAttribute('src') : null;
}); });
}, TIMEOUT); assert.ok(avatarSrc);
const avatarUrl = new URL(avatarSrc, `https://${app.fqdn}`).href;
const response = await superagent.get(avatarUrl);
assert.strictEqual(response.status, 200);
} }
function getAppInfo() { async function login(user, passwd) {
var inspect = JSON.parse(execSync('cloudron inspect')); await goto(`https://${app.fqdn}/user/login`, '#user_name');
await sendKeys('#user_name', user);
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0]; await sendKeys('#password', passwd);
await click('//form[@action="/user/login"]//button');
expect(app).to.be.an('object'); await waitForElement('//nav//img[contains(@class, "avatar")]');
} }
function setAvatarOld(done) { async function adminLogin() {
browser.get('https://' + app.fqdn + '/user/settings/avatar').then(function () { await login('root', 'changeme');
return browser.findElement(By.xpath('//input[@type="file" and @name="avatar"]')).sendKeys(path.resolve(__dirname, '../logo.png'));
}).then(function () {
return browser.findElement(By.xpath('//button[contains(text(), "Update Avatar Setting")]')).click();
}).then(function () {
if (app.manifest.version === '1.0.3') {
return browser.wait(until.elementLocated(By.xpath('//p[contains(text(),"updated successfully")]')), TIMEOUT);
} else {
return browser.wait(until.elementLocated(By.xpath('//p[contains(text(),"Your avatar setting has been updated.")]')), TIMEOUT);
}
}).then(function () {
done();
});
} }
function setAvatar(done) { async function loginGiteaOIDC() {
if (app.manifest.version === '1.5.4') return setAvatarOld(done); await clearCache();
await goto(`https://${app.fqdn}/user/login`, '//a[@href="/user/oauth2/cloudron"]');
browser.get('https://' + app.fqdn + '/user/settings').then(function () { await click('//a[@href="/user/oauth2/cloudron"]');
var button = browser.findElement(By.xpath('//label[contains(text(), "Use Custom Avatar")]')); await loginOIDC('//nav//img[contains(@class, "avatar")]');
return browser.executeScript('arguments[0].scrollIntoView(false)', button);
}).then(function () {
return browser.findElement(By.xpath('//label[contains(text(), "Use Custom Avatar")]')).click();
}).then(function () {
return browser.findElement(By.xpath('//input[@type="file" and @name="avatar"]')).sendKeys(path.resolve(__dirname, '../logo.png'));
}).then(function () {
return browser.findElement(By.xpath('//button[contains(text(), "Update Avatar")]')).click();
}).then(function () {
return browser.wait(until.elementLocated(By.xpath('//p[contains(text(),"Your avatar has been updated.")]')), TIMEOUT);
}).then(function () {
done();
});
} }
function checkAvatar(done) { async function loginGiteaOIDCOld() {
return done(); await clearCache();
superagent.get('https://' + app.fqdn + '/avatars/a3e6f3316fc1738e29d621e6a26e93d3').end(function (error, result) { await goto(`https://${app.fqdn}/user/login`, '//a[contains(@class, "openidConnect")]');
expect(error).to.be(null); await click('//a[contains(@class, "openidConnect") and contains(., "Sign in with cloudron")]');
expect(result.statusCode).to.be(200); await loginOIDC('//nav//img[contains(@class, "avatar")]');
done();
});
} }
function login(username, password, done) { async function logout() {
browser.get('https://' + app.fqdn + '/user/login').then(function () { await goto(`https://${app.fqdn}`, '//nav//img[contains(@class, "avatar")]');
return browser.findElement(By.id('user_name')).sendKeys(username); await click('//nav//img[contains(@class, "avatar")]');
}).then(function () { await waitForElement('//a[@href="/user/logout"]');
return browser.findElement(By.id('password')).sendKeys(password); await click('//a[@href="/user/logout"]');
}).then(function () {
return browser.findElement(By.tagName('form')).submit();
}).then(function () {
return browser.wait(until.elementLocated(By.linkText('Dashboard')), TIMEOUT);
}).then(function () {
done();
});
} }
function adminLogin(done) { async function addPublicKey() {
login('root', 'changeme', done); const keyPath = path.join(import.meta.dirname, 'id_ed25519');
fs.chmodSync(keyPath, 0o600);
await goto(`https://${app.fqdn}/user/settings/keys`, '#add-ssh-button');
await click('#add-ssh-button');
await sendKeys('#ssh-key-title', 'testkey');
await sendKeys('#ssh-key-content', fs.readFileSync(`${import.meta.dirname}/id_ed25519.pub`, 'utf8').trim());
await click('//form//button[contains(text(),"Add Key")]');
await waitForElement('//p[contains(text(), "has been added.")]');
} }
function logout(done) { async function createRepo() {
browser.get('https://' + app.fqdn).then(function () { await goto(`https://${app.fqdn}/repo/create`, '#repo_name');
return browser.findElement(By.xpath('//img[contains(@class, "avatar")]')).click(); await sendKeys('#repo_name', reponame);
}).then(function () { await click('#auto-init');
browser.sleep(2000); await click('//button[contains(text(), "Create Repository")]');
}).then(function () { await waitForPath(`/${username}/${reponame}`);
return browser.findElement(By.xpath('//a[@data-url="/user/logout"]')).click();
}).then(function () {
browser.sleep(2000);
}).then(function () {
done();
});
} }
function addPublicKey(done) { function cloneRepo() {
var publicKey = fs.readFileSync(__dirname + '/id_rsa.pub', 'utf8'); fs.rmSync(repodir, { recursive: true, force: true });
const env = Object.create(process.env);
const sshPage = 'https://' + app.fqdn + '/user/settings/keys'; env.GIT_SSH = path.join(import.meta.dirname, 'git_ssh_wrapper.sh');
execSync(`git clone ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame}.git ${repodir}`, { env });
browser.get(sshPage).then(function () {
return browser.findElement(By.xpath('//div[text()="Add Key"]')).click();
}).then(function () {
return browser.findElement(By.id('ssh-key-title')).sendKeys('testkey');
}).then(function () {
return browser.findElement(By.id('ssh-key-content')).sendKeys(publicKey.trim()); // #3480
}).then(function () {
var button = browser.findElement(By.xpath('//button[contains(text(), "Add Key")]'));
return browser.executeScript('arguments[0].scrollIntoView(false)', button);
}).then(function () {
return browser.findElement(By.xpath('//button[contains(text(), "Add Key")]')).click();
}).then(function () {
if (app.manifest.version === '1.0.3') {
return browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "added successfully!")]')), TIMEOUT);
} else {
return browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
}
}).then(function () {
done();
});
} }
function createRepo(done) { function pushFile() {
var getRepoPage; const env = Object.create(process.env);
if (app.manifest.version === '1.0.3') { env.GIT_SSH = path.join(import.meta.dirname, 'git_ssh_wrapper.sh');
getRepoPage = browser.get('https://' + app.fqdn).then(function () { execSync(
return browser.findElement(By.linkText('New Repository')).click(); `touch newfile && git add newfile && git commit -a -mx && git push ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame} main`,
}).then(function () { { env, cwd: repodir }
return browser.wait(until.elementLocated(By.xpath('//*[contains(text(), "New Repository")]')), TIMEOUT); );
}); fs.rmSync(repodir, { recursive: true, force: true });
} else {
getRepoPage = browser.get('https://' + app.fqdn + '/repo/create');
}
getRepoPage.then(function () {
return browser.findElement(By.id('repo_name')).sendKeys(reponame);
}).then(function () {
var button = browser.findElement(By.xpath('//button[contains(text(), "Create Repository")]'));
return browser.executeScript('arguments[0].scrollIntoView(true)', button);
}).then(function () {
return browser.findElement(By.id('auto-init')).click();
}).then(function () {
return browser.findElement(By.xpath('//button[contains(text(), "Create Repository")]')).click();
}).then(function () {
browser.wait(function () {
return browser.getCurrentUrl().then(function (url) {
return url === 'https://' + app.fqdn + '/' + username + '/' + reponame;
});
}, TIMEOUT);
}).then(function () {
done();
});
}
function checkCloneUrl(done) {
browser.get('https://' + app.fqdn + '/' + username + '/' + reponame).then(function () {
return browser.findElement(By.id('repo-clone-ssh')).click();
}).then(function () {
return browser.findElement(By.id('repo-clone-url')).getAttribute('value');
}).then(function (cloneUrl) {
expect(cloneUrl).to.be(`ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame}.git`);
done();
});
}
function cloneRepo(done) {
rimraf.sync(repodir);
var env = Object.create(process.env);
env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
execSync(`git clone ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame}.git ${repodir}`, { env: env });
done();
}
function pushFile(done) {
var env = Object.create(process.env);
env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
execSync(`touch newfile && git add newfile && git commit -a -mx && git push ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame} master`,
{ env: env, cwd: repodir });
rimraf.sync('/tmp/testrepo');
done();
}
function addCustomFile(done) {
fs.writeFileSync('/tmp/customfile.txt', 'GOGS TEST', 'utf8');
execSync(`cloudron exec --app ${app.id} -- mkdir -p /app/data/custom/public`);
execSync(`cloudron push --app ${app.id} /tmp/customfile.txt /app/data/custom/public/customfile.txt`);
fs.unlinkSync('/tmp/customfile.txt');
done();
}
function checkCustomFile(done) {
superagent.get('https://' + app.fqdn + '/customfile.txt').end(function (error, result) {
if (error) return done(error);
expect(result.text).to.contain('GOGS TEST');
done();
});
} }
function fileExists() { function fileExists() {
expect(fs.existsSync(repodir + '/newfile')).to.be(true); assert.strictEqual(fs.existsSync(`${repodir}/newfile`), true);
} }
function sendMail(done) { it('install app', function () {
browser.get(`https://${app.fqdn}/admin/config`).then(function () { cloudronCli.install({ tcpPortFlags: INSTALL_TCP_FLAGS });
var button = browser.findElement(By.xpath('//button[@id="test-mail-btn"]'));
return browser.executeScript('arguments[0].scrollIntoView(true)', button);
}).then(function () {
return browser.findElement(By.xpath('//input[@name="email"]')).sendKeys('test@cloudron.io');
}).then(function () {
return browser.findElement(By.xpath('//button[@id="test-mail-btn"]')).click();
}).then(function () {
return browser.wait(until.elementLocated(By.xpath('//p[contains(text(),"A testing email has been sent to \'test@cloudron.io\'")]')), TIMEOUT);
}).then(function () {
done();
});
}
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
// it('can login', function (done) {
// var inspect = JSON.parse(execSync('cloudron inspect'));
// superagent.post(`https://${inspect.apiEndpoint}/api/v1/developer/login`).send({
// username: username,
// password: password
// }).end(function (error, result) {
// if (error) return done(error);
// if (result.statusCode !== 200) return done(new Error('Login failed with status ' + result.statusCode));
// token = result.body.accessToken;
// superagent.get(`https://${inspect.apiEndpoint}/api/v1/profile`)
// .query({ access_token: token }).end(function (error, result) {
// if (error) return done(error);
// if (result.statusCode !== 200) return done(new Error('Get profile failed with status ' + result.statusCode));
// email = result.body.email;
// done();
// });
// });
// });
it('install app', function () { execSync(`cloudron install --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, EXEC_ARGS); });
it('can get app information', getAppInfo);
it('can get the main page', function (done) {
superagent.get('https://' + app.fqdn).end(function (error, result) {
expect(error).to.be(null);
expect(result.status).to.eql(200);
done();
});
}); });
it('can admin login', adminLogin); it('can admin login', adminLogin);
it('can send mail', sendMail);
it('can logout', logout); it('can logout', logout);
it('can login', login.bind(null, username, password)); it('can login', loginGiteaOIDC);
it('can set avatar', setAvatar); it('can set avatar', setAvatar);
it('can get avatar', checkAvatar); it('can get avatar', checkAvatar);
@@ -321,103 +150,62 @@ return done();
it('can create repo', createRepo); it('can create repo', createRepo);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('can add and push a file', pushFile); it('can add and push a file', pushFile);
it('can add custom file', addCustomFile); it('can restart app', function () {
it('can check custom file', checkCustomFile); cloudronCli.restart();
});
it('can restart app', function () { execSync('cloudron restart --app ' + app.id); });
xit('can login', login.bind(null, username, password)); // no need to relogin since session persists
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('file exists in repo', fileExists); it('file exists in repo', fileExists);
it('backup app', function () { execSync('cloudron backup create --app ' + app.id, EXEC_ARGS); }); it('backup app', async function () {
it('restore app', function () { execSync('cloudron restore --app ' + app.id, EXEC_ARGS); }); await cloudronCli.createBackup();
});
it('restore app', async function () {
await cloudronCli.restoreFromLatestBackup();
});
it('can login', login.bind(null, username, password)); it('can login', loginGiteaOIDC);
it('can get avatar', checkAvatar); it('can get avatar', checkAvatar);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(true); }); it('file exists in repo', function () {
assert.strictEqual(fs.existsSync(`${repodir}/newfile`), true);
it('move to different location', function (done) {
//browser.manage().deleteAllCookies(); // commented because of error "'Network.deleteCookie' wasn't found"
// ensure we don't hit NXDOMAIN in the mean time
browser.get('about:blank').then(function () {
execSync('cloudron configure --location ' + LOCATION + '2 --app ' + app.id, EXEC_ARGS);
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION + '2'; })[0];
expect(app).to.be.an('object');
done();
});
}); });
it('can login', login.bind(null, username, password)); it('move to different location', async function () {
await cloudronCli.changeLocation();
});
it('can login', loginGiteaOIDC);
it('can get avatar', checkAvatar); it('can get avatar', checkAvatar);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(true); }); it('file exists in repo', function () {
assert.strictEqual(fs.existsSync(`${repodir}/newfile`), true);
it('uninstall app', function (done) {
// ensure we don't hit NXDOMAIN in the mean time
browser.get('about:blank').then(function () {
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
done();
});
}); });
// check if the _first_ login via email succeeds it('uninstall app', async function () {
it('can login via email', function (done) { await cloudronCli.uninstall();
execSync(`cloudron install --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, EXEC_ARGS);
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
login(email, password, function (error) {
if (error) return done(error);
// ensure we don't hit NXDOMAIN in the mean time
browser.get('about:blank').then(function () {
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
done();
});
});
}); });
// No SSO
it('install app (no sso)', function () { it('install app (no sso)', function () {
execSync(`cloudron install --no-sso --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, EXEC_ARGS); cloudronCli.install({ noSso: true, tcpPortFlags: INSTALL_TCP_FLAGS });
});
it('can get app information', function () {
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
}); });
it('can admin login (no sso)', adminLogin); it('can admin login (no sso)', adminLogin);
it('can logout', logout); it('can logout', logout);
it('uninstall app (no sso)', function () { it('uninstall app (no sso)', async function () {
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS); await cloudronCli.uninstall();
}); });
// test update
it('can install app', function () { it('can install app', function () {
execSync(`cloudron install --appstore-id ${app.manifest.id} --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, EXEC_ARGS); cloudronCli.appstoreInstall({ tcpPortFlags: INSTALL_TCP_FLAGS });
}); });
it('can get app information', getAppInfo); it('can login', loginGiteaOIDCOld);
it('can login', login.bind(null, username, password));
it('can set avatar', setAvatar); it('can set avatar', setAvatar);
it('can get avatar', checkAvatar); it('can get avatar', checkAvatar);
it('can add public key', addPublicKey); it('can add public key', addPublicKey);
@@ -425,24 +213,19 @@ return done();
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('can add and push a file', pushFile); it('can add and push a file', pushFile);
it('can update', function () { it('can update', async function () {
execSync('cloudron update --app ' + app.id, EXEC_ARGS); await cloudronCli.update();
}); });
xit('can admin login', adminLogin); it('can admin login', adminLogin);
xit('can send mail', sendMail); it('can logout', logout);
xit('can logout', logout);
it('can login', login.bind(null, username, password)); it('can login', loginGiteaOIDC);
it('can get avatar', checkAvatar); it('can get avatar', checkAvatar);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('file exists in cloned repo', fileExists); it('file exists in cloned repo', fileExists);
it('uninstall app', function (done) { it('uninstall app', async function () {
// ensure we don't hit NXDOMAIN in the mean time await cloudronCli.uninstall();
browser.get('about:blank').then(function () {
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
done();
});
}); });
}); });