1
0
mirror of https://git.cloudron.io/cloudron/gitea-app synced 2026-05-01 06:53:37 +00:00

Compare commits

...

380 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
Johannes Zellner 0cf326f08f Update test deps 2020-07-29 13:47:14 +02:00
Johannes Zellner 2cc40fffef Bump version for 1.12.3 2020-07-29 13:46:44 +02:00
Johannes Zellner 9a3c9338c3 Update test deps 2020-07-13 11:15:09 +02:00
Johannes Zellner 58a6351ab2 Bump version for 1.12.2 2020-07-13 11:08:49 +02:00
Girish Ramakrishnan ef557e98d7 Version 1.18.0 2020-06-30 10:57:15 -07:00
Girish Ramakrishnan 2a17c1717d Update tests 2020-06-30 10:51:08 -07:00
Girish Ramakrishnan 62f9860bf5 Update postinstall 2020-06-30 10:49:03 -07:00
Girish Ramakrishnan 522923dbee Fix tags 2020-06-30 10:44:20 -07:00
Girish Ramakrishnan b117af4511 Add forumUrl and fix screenshot links 2020-06-30 10:44:14 -07:00
Johannes Zellner dc2987aafb Update changes
Still show old changelog link since the current version is just patch
release
2020-06-22 12:35:04 +02:00
Johannes Zellner 50a2444e76 New version needs more memory 2020-06-22 12:33:40 +02:00
Johannes Zellner ea72f04000 Fixup tests
New version is using the monaco editor, not sure how to interact with
that in the test.
https://microsoft.github.io/monaco-editor/
2020-06-22 12:33:10 +02:00
Johannes Zellner 2759c0d852 Already new version 1.12.1 2020-06-22 12:05:40 +02:00
Johannes Zellner 7b0ec195e6 Update test deps 2020-06-19 19:11:33 +02:00
Johannes Zellner a677369189 Bump version for 1.12.0 2020-06-19 18:55:18 +02:00
Girish Ramakrishnan 2e8b2c637f Version 1.16.1 2020-05-31 12:18:42 -07:00
Girish Ramakrishnan 07d07b342a Update test packages 2020-05-31 12:18:36 -07:00
Girish Ramakrishnan 93fa56da6b Update Gitea to 1.11.6 2020-05-31 12:02:24 -07:00
Girish Ramakrishnan e68a0333a9 Version 1.16.0 2020-05-09 18:19:03 -07:00
Girish Ramakrishnan 5ed9ee9284 Update gitea to 1.11.5 2020-05-09 18:15:24 -07:00
Girish Ramakrishnan a94c165c34 Use latest base image 2020-05-09 18:15:12 -07:00
Girish Ramakrishnan 1b053028a0 Version 1.15.4 2020-04-01 11:31:25 -07:00
Girish Ramakrishnan 5e7a1b2a37 Update gitea to 1.11.4 2020-04-01 11:19:05 -07:00
Girish Ramakrishnan cc63133f85 Version 1.15.3 2020-03-11 10:38:17 -07:00
Girish Ramakrishnan 08cbfbb9d4 Update Gitea to 1.11.3 2020-03-11 10:06:14 -07:00
Girish Ramakrishnan 9944104273 Version 1.15.2 2020-03-08 18:59:42 -07:00
Girish Ramakrishnan 076dd3946b Fix tests 2020-03-08 18:59:04 -07:00
Girish Ramakrishnan 2885c388e8 Update Gitea to 1.11.2 2020-03-08 17:18:15 -07:00
Johannes Zellner 8693f77352 Bump version for 1.11.1 2020-02-18 13:19:18 +01:00
Johannes Zellner 5a0d2ea12e Ensure we can submit the test file page 2020-02-10 17:04:16 +01:00
Johannes Zellner 3fbe8140a7 Bump version for 1.11.0 2020-02-10 15:24:14 +01:00
Girish Ramakrishnan ac4eecf92b Version 1.14.3 2020-01-19 17:10:00 -08:00
Girish Ramakrishnan 3fc5685027 Update Gitea to 1.10.3 2020-01-19 16:42:12 -08:00
Johannes Zellner 9320ee11ad Bump version for 1.10.2 2020-01-02 13:29:28 +01:00
Johannes Zellner 664677527a Fix tests for cli changes 2019-12-06 13:07:42 +01:00
Johannes Zellner b1f8b8cb9a Bump version for 1.14.1 2019-12-06 12:20:44 +01:00
Johannes Zellner b72d7ad682 Bring test deps up to date 2019-11-14 16:45:34 +01:00
Johannes Zellner 5b625519c1 Bump version for 1.10.0 2019-11-14 16:01:27 +01:00
Girish Ramakrishnan 9551b31c8e Version 1.13.6 2019-11-03 18:30:32 -08:00
Girish Ramakrishnan 4514b6fc9b Update node modules 2019-11-03 18:24:06 -08:00
Girish Ramakrishnan 783cce292c Update gitea to 1.9.5 2019-10-30 14:46:11 -07:00
Girish Ramakrishnan 538f3fdead Version 1.9.4 2019-10-09 09:35:34 -07:00
Girish Ramakrishnan b2b86f170f Update gitea to 1.9.4 2019-10-09 09:20:41 -07:00
Girish Ramakrishnan 4301fd5117 Version 1.13.4 2019-09-08 11:04:31 -07:00
Girish Ramakrishnan 7aebe88c3e Update gitea to 1.9.3 2019-09-08 10:51:41 -07:00
Girish Ramakrishnan 91cc96705e Version 1.13.3 2019-08-22 18:07:30 -07:00
Girish Ramakrishnan 6fe012f901 Update gitea to 1.9.2 2019-08-22 18:01:55 -07:00
Girish Ramakrishnan 29197622fc Remove session config now that migration is done 2019-08-19 20:11:47 -07:00
Girish Ramakrishnan 3adbf0b442 Version 1.13.2 2019-08-19 17:29:50 -07:00
Girish Ramakrishnan 6c0a2ab20b no need to relogin since session persists 2019-08-19 17:29:26 -07:00
Girish Ramakrishnan 1943723dd3 Use file based sessions
Fixes #5
2019-08-19 17:10:23 -07:00
Johannes Zellner 2d15227f2e Update chromedriver 2019-08-15 14:02:50 +02:00
Johannes Zellner cbc0bfb222 Bump version for 1.9.1 2019-08-15 13:37:27 +02:00
Johannes Zellner 10df3c6ba9 Bump version for Gitea 1.9.0 2019-07-31 18:16:42 +02:00
Johannes Zellner 047ec295bc Remove unused test requires 2019-07-31 18:16:28 +02:00
Johannes Zellner 31b8a17230 Ensure we never test with the default port 2019-07-31 18:15:17 +02:00
Girish Ramakrishnan ebb46bb7ac Version 1.12.0 2019-06-17 14:40:15 -07:00
Girish Ramakrishnan 53f180ef95 Update manifest to v2 2019-06-17 14:30:49 -07:00
Girish Ramakrishnan d89fc6a0ec Update Gitea to 1.8.3 2019-06-17 14:29:03 -07:00
Girish Ramakrishnan 1039d32995 Version 1.11.0 2019-06-04 19:27:00 -07:00
Girish Ramakrishnan 6b25bb66c7 Fix up tests 2019-06-04 19:26:26 -07:00
Girish Ramakrishnan e566c94b43 Bring in various gogs features
better custom app.ini
optional sso support
always create root user
2019-06-04 17:15:20 -07:00
Girish Ramakrishnan 0d2e1cfff0 Remove admin propagation 2019-06-04 17:07:59 -07:00
Girish Ramakrishnan f830faac79 Add lock file 2019-05-30 09:56:01 -07:00
Girish Ramakrishnan 319e6d275c Version 1.10.2 2019-05-30 09:55:07 -07:00
Girish Ramakrishnan 9128339000 Update modules 2019-05-30 09:50:05 -07:00
Girish Ramakrishnan f7ca27425a Update Gitea to 1.8.2 2019-05-30 09:36:33 -07:00
Johannes Zellner 9907d1c9cd Bump version for 1.8.1 2019-05-09 11:30:29 +02:00
Girish Ramakrishnan 8d16e4d734 Version 1.10.0 2019-04-22 11:51:14 -07:00
Girish Ramakrishnan 150d490801 Update Gitea to 1.8.0 2019-04-22 11:44:21 -07:00
Johannes Zellner 4a4e4ff4f1 Bump version for 1.7.6 2019-04-15 12:52:36 +02:00
Girish Ramakrishnan 24e9499d9c Version 1.9.5 2019-03-28 05:55:37 -07:00
Girish Ramakrishnan 8c66d9ed76 Update gitea to 1.7.5 2019-03-28 05:41:23 -07:00
18 changed files with 2352 additions and 840 deletions
-288
View File
@@ -1,288 +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)
+1996
View File
File diff suppressed because it is too large Load Diff
+43 -17
View File
@@ -4,36 +4,62 @@
"author": "Gitea developers",
"description": "file://DESCRIPTION.md",
"tagline": "A painless self-hosted Git Service",
"version": "1.9.4",
"healthCheckPath": "/healthcheck",
"version": "1.38.0",
"upstreamVersion": "1.26.0",
"healthCheckPath": "/explore",
"httpPort": 3000,
"memoryLimit": 536870912,
"addons": {
"mysql": { },
"sendmail": { },
"localstorage": { },
"ldap": { }
"mysql": {},
"sendmail": {
"supportsDisplayName": true
},
"localstorage": {},
"oidc": {
"loginRedirectUri": "/user/oauth2/cloudron/callback"
}
},
"tcpPorts": {
"SSH_PORT": {
"title": "SSH Port",
"description": "SSH Port over which repos can be pushed & pulled",
"defaultValue": 29418
"defaultValue": 29418,
"enabledByDefault": true
}
},
"manifestVersion": 1,
"manifestVersion": 2,
"website": "https://gitea.io",
"contactEmail": "apps@cloudron.io",
"icon": "file://logo.png",
"optionalSso": true,
"mediaLinks": [
"https://s3.amazonaws.com/cloudron-app-screenshots/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/1.png",
"https://s3.amazonaws.com/cloudron-app-screenshots/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/2.png",
"https://s3.amazonaws.com/cloudron-app-screenshots/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/3.png",
"https://s3.amazonaws.com/cloudron-app-screenshots/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/4.png",
"https://s3.amazonaws.com/cloudron-app-screenshots/io.gitea.cloudronapp/f89a2ab8d49094c80589f69a2d60bef63b2dbb62/5.png"
"https://screenshots.cloudron.io/io.gitea.cloudronapp/1.png",
"https://screenshots.cloudron.io/io.gitea.cloudronapp/2.png",
"https://screenshots.cloudron.io/io.gitea.cloudronapp/3.png",
"https://screenshots.cloudron.io/io.gitea.cloudronapp/4.png",
"https://screenshots.cloudron.io/io.gitea.cloudronapp/5.png"
],
"tags": [ "version control", "git", "code hosting", "development" ],
"changelog": "file://CHANGELOG",
"tags": [
"version control",
"git",
"code hosting",
"development",
"github",
"bitbucket",
"gitlab"
],
"changelog": "file://CHANGELOG.md",
"postInstallMessage": "file://POSTINSTALL.md",
"minBoxVersion": "1.10.0",
"documentationUrl": "https://cloudron.io/documentation/apps/gitea/"
"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",
"documentationUrl": "https://docs.cloudron.io/packages/gitea/"
}
-2
View File
@@ -1,5 +1,3 @@
This app packages Gitea <upstream>1.7.4</upstream>
Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket or Gitlab.
### Purpose
+19 -11
View File
@@ -1,19 +1,27 @@
FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617
FROM cloudron/base:5.0.0@sha256:04fd70dbd8ad6149c19de39e35718e024417c3e01dc9c6637eaf4a41ec4e596c
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 -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/
RUN adduser --disabled-login --gecos 'Gitea' git
# by default, git account is created as inactive which prevents login via openssh
# https://github.com/gitlabhq/gitlabhq/issues/5304
RUN passwd -d git
RUN useradd --comment "Gogs" --create-home --shell /bin/bash git
RUN passwd -d git # by default, git account is created as inactive which prevents login via openssh. this disables password for account
WORKDIR /home/git
RUN mkdir -p /home/git/gitea
RUN curl -L https://dl.gitea.io/gitea/1.7.4/gitea-1.7.4-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
# setup config paths
@@ -23,10 +31,10 @@ ADD app.ini.template /home/git/app.ini.template
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 ln -s /app/data/ssh /home/git/.ssh
RUN ln -s /app/data/gitconfig /home/git/.gitconfig
RUN ln -s /app/data/ssh /home/git/.ssh && \
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
+6 -9
View File
@@ -1,12 +1,9 @@
This app integrates with the Cloudron SSO. Admins on Cloudron automatically
become admins on Gitea.
This app is pre-setup with an admin account. The initial credentials are:
If you want to disable Cloudron SSO, do the following:
**Username**: root<br/>
**Password**: changeme<br/>
* Admin Panel -> Authentication -> 'cloudron' -> Uncheck 'This authentication is activated'
* Admin Panel -> Users -> Change Authentication Source to 'Local' and also give a password
You can edit `/app/data/app.ini` and add any custom configuration. See the
[configuration cheat sheet](https://docs.gitea.io/en-us/config-cheat-sheet)
for more information.
<sso>
Use the `Local` authentication source for logging in as admin.
</sso>
+41 -6
View File
@@ -48,26 +48,34 @@ ENABLED = true
; APP_DATA_PATH/attachments
PATH =
[oauth2_client]
ENABLE_AUTO_REGISTRATION = true
USERNAME = sub
UPDATE_AVATAR = false
ACCOUNT_LINKING = auto
[mailer]
ENABLED = true
; 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
PASSWD = ##MAIL_SMTP_PASSWORD
FROM = ##MAIL_FROM
SKIP_VERIFY = true
PROTOCOL = smtps
FORCE_TRUST_SERVER_CERT = true
[security]
; those settings are protected and can't be modified
INSTALL_LOCK = true
SECRET_KEY = ##SECRET_KEY
REVERSE_PROXY_LIMIT = 1
REVERSE_PROXY_TRUSTED_PROXIES = *
[service]
DISABLE_REGISTRATION = false
DISABLE_REGISTRATION = true
SHOW_REGISTRATION_BUTTON = false
ENABLE_NOTIFY_MAIL = true
@@ -83,8 +91,6 @@ ROOT_PATH = /run/gitea
; APP_DATA_PATH/avatars
AVATAR_UPLOAD_PATH =
GRAVATAR_SOURCE = gravatar
DISABLE_GRAVATAR = false
[attachment]
ENABLE = true
@@ -95,3 +101,32 @@ PATH =
[indexer]
; this setting is protected and can't be modified
ISSUE_INDEXER_PATH = /app/data/appdata/indexers/issues.bleve
[session]
PROVIDER = file
PROVIDER_CONFIG = /run/gitea/sessions
COOKIE_SECURE = true
COOKIE_NAME = cloudron_gitea
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
# Use these options to restrict which interfaces/protocols sshd will bind to
AddressFamily any
ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
ListenAddress ::
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_ed25519_key
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
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
# no reverse DNS lookup
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_*
+62 -37
View File
@@ -2,29 +2,44 @@
set -eu -o pipefail
mkdir -p /run/gitea/tmp/uploads /run/sshd
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
# Wait for gitea to finish db setup, before we insert ldap source in db
while ! curl --fail http://localhost:3000/healthcheck; do
echo "Waiting for gitea to come up"
echo "==> Setup OIDC source"
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 \
"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}')"
}
setup_auth() {
set -eu
# Wait for gitea to finish db setup, before we do any db operations
while ! curl --fail http://localhost:3000/explore; do
echo "==> Waiting for gitea to come up"
sleep 1
done
now=$(date +%s)
echo "==> Gitea is up, setting up auth"
# Get the existing LDAP source status. This allows the user to disable LDAP
ldap_status=$(mysql -u"${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" -h mysql --database="${MYSQL_DATABASE}" -N -B -e "select is_actived from login_source WHERE name='cloudron';")
[[ -z "${ldap_status}" ]] && ldap_status="1"
if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
setup_oidc_source
fi
if mysql -u"${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" -h mysql --database="${MYSQL_DATABASE}" \
-e "REPLACE INTO login_source (id, type, name, is_actived, cfg, created_unix, updated_unix) VALUES (1,2,'cloudron',${ldap_status},'{\"Name\":\"cloudron\",\"Host\":\"${LDAP_SERVER}\",\"Port\":${LDAP_PORT},\"UseSSL\":false,\"SkipVerify\":true,\"BindDN\":\"${LDAP_BIND_DN}\",\"BindPassword\":\"${LDAP_BIND_PASSWORD}\",\"UserBase\":\"${LDAP_USERS_BASE_DN}\",\"AttributeUsername\":\"username\",\"AttributeName\":\"displayname\",\"AttributeSurname\":\"\",\"AttributeMail\":\"mail\",\"Filter\":\"(\\\\u007C(mail=%[1]s)(username=%[1]s))\",\"AdminFilter\":\"(memberof=cn=admins,${LDAP_GROUPS_BASE_DN})\"}','${now}','${now}');"; then
echo "LDAP Authentication was setup with status ${ldap_status}"
else
echo "Failed to setup LDAP authentication"
exit 1
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
if [[ "${user_count}" == "0" ]]; then
echo "==> Setting up root user for first run"
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
}
@@ -52,30 +67,31 @@ chmod 0644 /app/data/sshd/*.pub
sed -e "s/^Port .*/Port ${SSH_PORT}/" /etc/ssh/sshd_config > /run/gitea/sshd_config
cp /home/git/app.ini.template "/run/gitea/app.ini"
if [[ ! -f /app/data/app.ini ]]; then
echo -e "; Add customizations here - https://docs.gitea.io/en-us/config-cheat-sheet/" > /app/data/app.ini
# create default user config file
if ! [ -f /app/data/app.ini ]; then
cp /home/git/app.ini.template /app/data/app.ini
fi
if [ "$(crudini --get /app/data/app.ini security SECRET_KEY)" == "##SECRET_KEY" ]; then
echo "Generating new SECRET_KEY"
echo "==> Generating new SECRET_KEY"
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
# merge user config file
cp /home/git/app.ini.template "/run/gitea/app.ini"
crudini --merge "/run/gitea/app.ini" < "/app/data/app.ini"
# override important values
crudini --set "/run/gitea/app.ini" database DB_TYPE mysql
crudini --set "/run/gitea/app.ini" database HOST "${MYSQL_HOST}:${MYSQL_PORT}"
crudini --set "/run/gitea/app.ini" database NAME "${MYSQL_DATABASE}"
crudini --set "/run/gitea/app.ini" database USER "${MYSQL_USERNAME}"
crudini --set "/run/gitea/app.ini" database PASSWD "${MYSQL_PASSWORD}"
crudini --set "/run/gitea/app.ini" database HOST "${CLOUDRON_MYSQL_HOST}:${CLOUDRON_MYSQL_PORT}"
crudini --set "/run/gitea/app.ini" database NAME "${CLOUDRON_MYSQL_DATABASE}"
crudini --set "/run/gitea/app.ini" database USER "${CLOUDRON_MYSQL_USERNAME}"
crudini --set "/run/gitea/app.ini" database PASSWD "${CLOUDRON_MYSQL_PASSWORD}"
crudini --set "/run/gitea/app.ini" database SSL_MODE "disable"
crudini --set "/run/gitea/app.ini" server PROTOCOL "http"
crudini --set "/run/gitea/app.ini" server DOMAIN "${APP_DOMAIN}"
crudini --set "/run/gitea/app.ini" server DOMAIN "${CLOUDRON_APP_DOMAIN}"
crudini --set "/run/gitea/app.ini" server ROOT_URL "https://%(DOMAIN)s/"
crudini --set "/run/gitea/app.ini" server HTTP_ADDR ""
crudini --set "/run/gitea/app.ini" server HTTP_PORT "3000"
@@ -84,21 +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" 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" mailer HOST "${MAIL_SMTP_SERVER}:${MAIL_SMTPS_PORT}"
crudini --set "/run/gitea/app.ini" mailer USER "${MAIL_SMTP_USERNAME}"
crudini --set "/run/gitea/app.ini" mailer PASSWD "${MAIL_SMTP_PASSWORD}"
crudini --set "/run/gitea/app.ini" mailer FROM "${MAIL_FROM}"
crudini --set "/run/gitea/app.ini" mailer SKIP_VERIFY "true"
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 PASSWD "${CLOUDRON_MAIL_SMTP_PASSWORD}"
crudini --set "/run/gitea/app.ini" mailer FROM "${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Gitea} <${CLOUDRON_MAIL_FROM}>"
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 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 ROOT_PATH "/run/gitea"
crudini --set "/run/gitea/app.ini" indexer ISSUE_INDEXER_PATH "/app/data/appdata/indexers/issues.bleve"
mkdir -p /app/data/repository /app/data/ssh /app/data/custom
echo "==> Creating dirs and changing permissions"
mkdir -p /app/data/repository /app/data/ssh /app/data/custom /app/data/gnupg
chown -R git:git /app/data /run/gitea
( setup_ldap_source ) &
# OIDC creds are read from the db at gitea startup, so if migrations have already
# 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
-1
View File
@@ -8,4 +8,3 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
+1 -1
View File
@@ -2,4 +2,4 @@
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
-25
View File
@@ -1,25 +0,0 @@
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "test.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"ejs": "^2.3.4",
"expect.js": "^0.3.1",
"mkdirp": "^0.5.1",
"mocha": "^2.3.4",
"rimraf": "^2.4.4",
"superagent": "^1.4.0"
},
"dependencies": {
"chromedriver": "^2.38.2",
"selenium-server-standalone-jar": "^3.3.1",
"selenium-webdriver": "^3.3.0",
"superagent": "^1.8.5"
}
}
+144 -345
View File
@@ -1,317 +1,148 @@
#!/usr/bin/env node
/* jslint node:true */
/* global it:false */
/* global xit:false */
/* global describe:false */
/* global before:false */
/* global after:false */
import assert from 'node:assert/strict';
import { execSync } from 'node:child_process';
import fs from 'node:fs';
import path from 'node:path';
import superagent from '@cloudron/superagent';
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');
var execSync = require('child_process').execSync,
ejs = require('ejs'),
expect = require('expect.js'),
fs = require('fs'),
mkdirp = require('mkdirp'),
path = require('path'),
rimraf = require('rimraf'),
superagent = require('superagent'),
webdriver = require('selenium-webdriver');
var by = require('selenium-webdriver').By,
until = require('selenium-webdriver').until,
Builder = require('selenium-webdriver').Builder;
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
const SSH_PORT = 29420;
const INSTALL_TCP_FLAGS = { SSH_PORT };
const repodir = '/tmp/testrepo';
const reponame = 'testrepo';
describe('Application life cycle test', function () {
this.timeout(0);
var server, browser = new Builder().forBrowser('chrome').build();
var LOCATION = 'test';
var SSH_PORT = 29420;
var repodir = '/tmp/testrepo';
var app, reponame = 'testrepo';
var username = process.env.USERNAME;
var password = process.env.PASSWORD;
var TIMEOUT = parseInt(process.env.TIMEOUT, 10) || 5000;
var email, token;
before(function (done) {
if (!process.env.USERNAME) return done(new Error('USERNAME env var not set'));
if (!process.env.PASSWORD) return done(new Error('PASSWORD env var not set'));
var seleniumJar= require('selenium-server-standalone-jar');
var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;
server = new SeleniumServer(seleniumJar.path, { port: 4444 });
server.start();
done();
before(setupBrowser);
after(async function () {
await teardownBrowser();
fs.rmSync(repodir, { recursive: true, force: true });
});
after(function (done) {
browser.quit();
server.stop();
rimraf.sync(repodir);
done();
afterEach(async function () {
await takeScreenshot(this.currentTest.title);
});
function waitForUrl(url, done) {
browser.wait(function () {
return browser.getCurrentUrl().then(function (currentUrl) {
return currentUrl === url;
});
}, TIMEOUT).then(function () { done(); });
async function setAvatar() {
await goto(`https://${app.fqdn}/user/settings`, '//label[contains(text(), "Use Custom Avatar")]');
await click('//label[contains(text(), "Use Custom Avatar")]');
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.")]');
}
function getAppInfo() {
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION; })[0];
expect(app).to.be.an('object');
}
function setAvatarOld(done) {
browser.get('https://' + app.fqdn + '/user/settings/avatar').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 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();
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;
});
assert.ok(avatarSrc);
const avatarUrl = new URL(avatarSrc, `https://${app.fqdn}`).href;
const response = await superagent.get(avatarUrl);
assert.strictEqual(response.status, 200);
}
function setAvatar(done) {
if (app.manifest.version === '1.5.4') return setAvatarOld(done);
browser.get('https://' + app.fqdn + '/user/settings').then(function () {
var button = browser.findElement(by.xpath('//label[contains(text(), "Use Custom 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();
});
async function login(user, passwd) {
await goto(`https://${app.fqdn}/user/login`, '#user_name');
await sendKeys('#user_name', user);
await sendKeys('#password', passwd);
await click('//form[@action="/user/login"]//button');
await waitForElement('//nav//img[contains(@class, "avatar")]');
}
function checkAvatar(done) {
return done();
superagent.get('https://' + app.fqdn + '/avatars/a3e6f3316fc1738e29d621e6a26e93d3').end(function (error, result) {
expect(error).to.be(null);
expect(result.statusCode).to.be(200);
done();
});
async function adminLogin() {
await login('root', 'changeme');
}
function editFile(done) {
browser.get('https://' + app.fqdn + '/' + username + '/' + reponame + '/_edit/master/newfile').then(function () {
var cm = browser.findElement(by.xpath('//div[contains(@class,"CodeMirror")]'));
var text = 'yo';
return browser.executeScript('arguments[0].CodeMirror.setValue("' + text + '");', cm);
}).then(function () {
return browser.findElement(by.xpath('//input[@name="commit_summary"]')).sendKeys('Dummy edit');
}).then(function () {
return browser.findElement(by.xpath('//button[contains(text(), "Commit Changes")]')).click();
}).then(function () {
waitForUrl('https://' + app.fqdn + '/' + username + '/' + reponame + '/src/branch/master/newfile', done);
});
async function loginGiteaOIDC() {
await clearCache();
await goto(`https://${app.fqdn}/user/login`, '//a[@href="/user/oauth2/cloudron"]');
await click('//a[@href="/user/oauth2/cloudron"]');
await loginOIDC('//nav//img[contains(@class, "avatar")]');
}
function login(done) {
browser.get('https://' + app.fqdn + '/user/login').then(function () {
return browser.findElement(by.id('user_name')).sendKeys(username);
}).then(function () {
return browser.findElement(by.id('password')).sendKeys(password);
}).then(function () {
return browser.findElement(by.tagName('form')).submit();
}).then(function () {
return browser.wait(until.elementLocated(by.linkText('Dashboard')), TIMEOUT);
}).then(function () {
done();
});
async function loginGiteaOIDCOld() {
await clearCache();
await goto(`https://${app.fqdn}/user/login`, '//a[contains(@class, "openidConnect")]');
await click('//a[contains(@class, "openidConnect") and contains(., "Sign in with cloudron")]');
await loginOIDC('//nav//img[contains(@class, "avatar")]');
}
function addPublicKey(done) {
var publicKey = fs.readFileSync(__dirname + '/id_rsa.pub', 'utf8');
const sshPage = 'https://' + app.fqdn + '/user/settings/keys';
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();
});
async function logout() {
await goto(`https://${app.fqdn}`, '//nav//img[contains(@class, "avatar")]');
await click('//nav//img[contains(@class, "avatar")]');
await waitForElement('//a[@href="/user/logout"]');
await click('//a[@href="/user/logout"]');
}
function createRepo(done) {
var getRepoPage;
if (app.manifest.version === '1.0.3') {
getRepoPage = browser.get('https://' + app.fqdn).then(function () {
return browser.findElement(by.linkText('New Repository')).click();
}).then(function () {
return browser.wait(until.elementLocated(by.xpath('//*[contains(text(), "New Repository")]')), TIMEOUT);
});
} else {
getRepoPage = browser.get('https://' + app.fqdn + '/repo/create');
}
async function addPublicKey() {
const keyPath = path.join(import.meta.dirname, 'id_ed25519');
fs.chmodSync(keyPath, 0o600);
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();
});
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 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();
});
async function createRepo() {
await goto(`https://${app.fqdn}/repo/create`, '#repo_name');
await sendKeys('#repo_name', reponame);
await click('#auto-init');
await click('//button[contains(text(), "Create Repository")]');
await waitForPath(`/${username}/${reponame}`);
}
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 cloneRepo() {
fs.rmSync(repodir, { recursive: true, force: true });
const env = Object.create(process.env);
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 });
}
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 pushFile() {
const env = Object.create(process.env);
env.GIT_SSH = path.join(import.meta.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} main`,
{ env, cwd: repodir }
);
fs.rmSync(repodir, { recursive: true, force: true });
}
function fileExists() {
expect(fs.existsSync(repodir + '/newfile')).to.be(true);
assert.strictEqual(fs.existsSync(`${repodir}/newfile`), true);
}
function sendMail(done) {
browser.get(`https://${app.fqdn}/admin/config`).then(function () {
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', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
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 --new --wait --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
cloudronCli.install({ tcpPortFlags: INSTALL_TCP_FLAGS });
});
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);
it('can admin login', adminLogin);
it('can logout', logout);
done();
});
});
it('can login', login);
it('can send mail', sendMail);
it('can login', loginGiteaOIDC);
it('can set avatar', setAvatar);
it('can get avatar', checkAvatar);
@@ -319,92 +150,62 @@ return done();
it('can create repo', createRepo);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo);
it('can add and push a file', pushFile);
it('can edit file', editFile);
it('can add custom file', addCustomFile);
it('can check custom file', checkCustomFile);
it('can restart app', function (done) {
execSync('cloudron restart --wait --app ' + app.id);
done();
it('can restart app', function () {
cloudronCli.restart();
});
it('can login', login);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo);
it('file exists in repo', fileExists);
it('backup app', function () {
execSync('cloudron backup create --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
it('backup app', async function () {
await cloudronCli.createBackup();
});
it('restore app', async function () {
await cloudronCli.restoreFromLatestBackup();
});
it('restore app', function () {
execSync('cloudron restore --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('can login', login);
it('can login', loginGiteaOIDC);
it('can get avatar', checkAvatar);
it('can clone the url', cloneRepo);
it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(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 --wait --location ' + LOCATION + '2 --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
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('file exists in repo', function () {
assert.strictEqual(fs.existsSync(`${repodir}/newfile`), true);
});
it('can login', login);
it('move to different location', async function () {
await cloudronCli.changeLocation();
});
it('can login', loginGiteaOIDC);
it('can get avatar', checkAvatar);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo);
it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(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, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
done();
});
it('file exists in repo', function () {
assert.strictEqual(fs.existsSync(`${repodir}/newfile`), true);
});
// check if the _first_ login via email succeeds
it('can login via email', function (done) {
execSync(`cloudron install --new --wait --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
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(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, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
done();
});
});
it('uninstall app', async function () {
await cloudronCli.uninstall();
});
it('install app (no sso)', function () {
cloudronCli.install({ noSso: true, tcpPortFlags: INSTALL_TCP_FLAGS });
});
it('can admin login (no sso)', adminLogin);
it('can logout', logout);
it('uninstall app (no sso)', async function () {
await cloudronCli.uninstall();
});
// test update
it('can install app', function () {
execSync(`cloudron install --new --wait --appstore-id ${app.manifest.id} --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
cloudronCli.appstoreInstall({ tcpPortFlags: INSTALL_TCP_FLAGS });
});
it('can get app information', getAppInfo);
it('can login', login);
it('can login', loginGiteaOIDCOld);
it('can set avatar', setAvatar);
it('can get avatar', checkAvatar);
it('can add public key', addPublicKey);
@@ -412,21 +213,19 @@ return done();
it('can clone the url', cloneRepo);
it('can add and push a file', pushFile);
it('can update', function () {
execSync('cloudron install --wait --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
it('can update', async function () {
await cloudronCli.update();
});
it('can login', login);
it('can send mail', sendMail);
it('can admin login', adminLogin);
it('can logout', logout);
it('can login', loginGiteaOIDC);
it('can get avatar', checkAvatar);
it('can clone the url', cloneRepo);
it('file exists in cloned repo', fileExists);
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, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
done();
});
it('uninstall app', async function () {
await cloudronCli.uninstall();
});
});