mirror of
https://git.cloudron.io/cloudron/gitea-app
synced 2025-09-24 05:57:38 +00:00
Compare commits
86 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7243f3f49a | ||
|
5f62cfdc74 | ||
|
9ea0395b6b | ||
|
a885279cde | ||
|
23d515f506 | ||
|
507846ae8a | ||
|
4519ab9f0f | ||
|
30c46a77e2 | ||
|
0dee28db15 | ||
|
606354ca83 | ||
|
599c37fff9 | ||
|
d0d4b89f12 | ||
|
16253c0192 | ||
|
c9ba138d8a | ||
|
7337ff8517 | ||
|
94f2007015 | ||
|
1110ee23e2 | ||
|
ccaa24df33 | ||
|
9c4f201845 | ||
|
2f0edb0cb4 | ||
|
217b6ad97d | ||
|
cb0adb4d95 | ||
|
574bb07847 | ||
|
d259e03bee | ||
|
edf51f882f | ||
|
96e8c6b370 | ||
|
c0384ea5db | ||
|
ffc49beb18 | ||
|
b51354ea67 | ||
|
3017db2ca3 | ||
|
afc6c1a336 | ||
|
856e8ffded | ||
|
0e8051524b | ||
|
343c4f4487 | ||
|
fa8b746489 | ||
|
e703139dad | ||
|
038c2634f7 | ||
|
506fc44188 | ||
|
b37adcbcba | ||
|
d5b80c9393 | ||
|
e180f84aef | ||
|
090c4c43a8 | ||
|
ce1c328a27 | ||
|
e76784cb8f | ||
|
64d8d5b661 | ||
|
bf30c8e13b | ||
|
381562f347 | ||
|
ffa9d52206 | ||
|
7d0d52ceae | ||
|
f19465b3d6 | ||
|
662cfae820 | ||
|
e365f033d1 | ||
|
b8e5fcc22d | ||
|
a176ab5f20 | ||
|
9b773524ce | ||
|
9c4088e812 | ||
|
c956c27334 | ||
|
75aa1f09a5 | ||
|
9f363fb373 | ||
|
e06c3d5bb5 | ||
|
aa7a6f9d69 | ||
|
56cb2ba6b2 | ||
|
08868f64d4 | ||
|
d7c3ae38fe | ||
|
9b7aedc025 | ||
|
70c144095a | ||
|
69df4d1e0f | ||
|
07982e33aa | ||
|
59266f120a | ||
|
c03ec98517 | ||
|
885a32e340 | ||
|
459646512e | ||
|
5d44c03115 | ||
|
4961b7c4c8 | ||
|
cfc5ab5a37 | ||
|
6259356ae2 | ||
|
813f32d310 | ||
|
162054ef99 | ||
|
18ad051734 | ||
|
ea6a6b84d9 | ||
|
ab0ab3c11c | ||
|
84c505ad43 | ||
|
366e8560b0 | ||
|
0a81a63829 | ||
|
4fc500fca6 | ||
|
8393426612 |
389
CHANGELOG.md
389
CHANGELOG.md
@@ -1433,3 +1433,392 @@
|
||||
* Fix Chinese translation of config cheat sheet[API] (#28472) (#28473)
|
||||
* Retry SSH key verification with additional CRLF if it failed (#28392) (#28464)
|
||||
|
||||
[1.32.4]
|
||||
* Update Gitea to 1.21.4
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.21.4)
|
||||
* Update github.com/cloudflare/circl (#28789) (#28790)
|
||||
* Require token for GET subscription endpoint (#28765) (#28768)
|
||||
* Use refname:strip-2 instead of refname:short when syncing tags (#28797) (#28811)
|
||||
* Fix links in issue card (#28806) (#28807)
|
||||
* Fix nil pointer panic when exec some gitea cli command (#28791) (#28795)
|
||||
* Require token for GET subscription endpoint (#28765) (#28778)
|
||||
* Fix button size in "attached header right" (#28770) (#28774)
|
||||
* Fix convert.ToTeams on empty input (#28426) (#28767)
|
||||
* Hide code related setting options in repository when code unit is disabled (#28631) (#28749)
|
||||
|
||||
[1.32.5]
|
||||
* Update Gitea to 1.21.5
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.21.5)
|
||||
* Prevent anonymous container access if RequireSignInView is enabled (#28877) (#28882)
|
||||
* Update go dependencies and fix go-git (#28893) (#28934)
|
||||
* Revert "Speed up loading the dashboard on mysql/mariadb (#28546)" (#29006) (#29007)
|
||||
* Fix an actions schedule bug (#28942) (#28999)
|
||||
* Fix update enable_prune even if mirror_interval is not provided (#28905) (#28929)
|
||||
* Fix uploaded artifacts should be overwritten (#28726) backport v1.21 (#28832)
|
||||
* Preserve BOM in web editor (#28935) (#28959)
|
||||
* Strip / from relative links (#28932) (#28952)
|
||||
* Don't remove all mirror repository's releases when mirroring (#28817) (#28939)
|
||||
* Implement MigrateRepository for the actions notifier (#28920) (#28923)
|
||||
* Respect branch info for relative links (#28909) (#28922)
|
||||
* Don't reload timeline page when (un)resolving or replying conversation (#28654) (#28917)
|
||||
* Only migrate the first 255 chars of a Github issue title (#28902) (#28912)
|
||||
* Fix sort bug on repository issues list (#28897) (#28901)
|
||||
* Fix DeleteCollaboration transaction behaviour (#28886) (#28889)
|
||||
* Fix schedule not trigger bug because matching full ref name with short ref name (#28874) (#28888)
|
||||
* Fix migrate storage bug (#28830) (#28867)
|
||||
* Fix archive creating LFS hooks and breaking pull requests (#28848) (#28851)
|
||||
* Fix reverting a merge commit failing (#28794) (#28825)
|
||||
* Upgrade xorm to v1.3.7 to fix a resource leak problem caused by Iterate (#28891) (#28895)
|
||||
* Fix incorrect PostgreSQL connection string for Unix sockets (#28865) (#28870)
|
||||
|
||||
[1.32.6]
|
||||
* Update Gitea to 1.21.7
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.21.7)
|
||||
* Fix XSS vulnerabilities (#29336)
|
||||
* Use general token signing secret (#29205) (#29325)
|
||||
* Refactor issue template parsing and fix API endpoint (#29069) (#29140)
|
||||
* Fix swift packages not resolving (#29095) (#29102)
|
||||
* Refactor git version functions and check compatibility (#29155) (#29157)
|
||||
* Improve user experience for outdated comments (#29050) (#29086)
|
||||
* Hide code links on release page if user cannot read code (#29064) (#29066)
|
||||
* Wrap contained tags and branches again (#29021) (#29026)
|
||||
* Fix incorrect button CSS usages (#29015) (#29023)
|
||||
* Strip trailing newline in markdown code copy (#29019) (#29022)
|
||||
* Remove SSH workaround (#27893) (#29332)
|
||||
* Only log error when tag sync fails (#29295) (#29327)
|
||||
* Fix SSPI user creation (#28948) (#29323)
|
||||
* Improve the issue_comment workflow trigger event (#29277) (#29322)
|
||||
* Discard unread data of git cat-file (#29297) (#29310)
|
||||
* Fix error display when merging PRs (#29288) (#29309)
|
||||
* Prevent double use of git cat-file session. (#29298) (#29301)
|
||||
* Fix missing link on outgoing new release notifications (#29079) (#29300)
|
||||
* Fix debian InRelease Acquire-By-Hash newline (#29204) (#29299)
|
||||
* Always write proc-receive hook for all git versions (#29287) (#29291)
|
||||
* Do not show delete button when time tracker is disabled (#29257) (#29279)
|
||||
* Workaround to clean up old reviews on creating a new one (#28554) (#29264)
|
||||
* Fix bug when the linked account was disactived and list the linked accounts (#29263)
|
||||
* Do not use lower tag names to find releases/tags (#29261) (#29262)
|
||||
* Fix missed edit issues event for actions (#29237) (#29251)
|
||||
* Only delete scheduled workflows when needed (#29091) (#29235)
|
||||
* Make submit event code work with both jQuery event and native event (#29223) (#29234)
|
||||
* Fix push to create with capitalize repo name (#29090) (#29206)
|
||||
* Use ghost user if user was not found (#29161) (#29169)
|
||||
* Dont load Review if Comment is CommentTypeReviewRequest (#28551) (#29160)
|
||||
* Refactor parseSignatureFromCommitLine (#29054) (#29108)
|
||||
* Avoid showing unnecessary JS errors when there are elements with different origin on the page (#29081) (#29089)
|
||||
* Fix gitea-origin-url with default ports (#29085) (#29088)
|
||||
* Fix orgmode link resolving (#29024) (#29076)
|
||||
* Fix: Elasticsearch: Request Entity Too Large #28117 (#29062) (#29075)
|
||||
* Do not render empty comments (#29039) (#29049)
|
||||
* Avoid sending update/delete release notice when it is draft (#29008) (#29025)
|
||||
|
||||
[1.32.7]
|
||||
* Update Gitea to 1.21.8
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.21.8)
|
||||
* Only use supported sort orders for "/explore/users" page (#29430) (#29443)
|
||||
* Fix wrong line number in code search result (#29260) (#29623)
|
||||
* Use Get but not Post to get actions artifacts (#29734) (#29737)
|
||||
* Fix inconsistent rendering of block mathematical expressions (#29677) (#29711)
|
||||
* Fix rendering internal file links in org (#29669) (#29705)
|
||||
* Don't show AbortErrors on logout (#29639) (#29667)
|
||||
* Fix user-defined markup links targets (#29305) (#29666)
|
||||
* Fix incorrect rendering csv file when file size is larger than UI.CSV.MaxFileSize (#29653) (#29663)
|
||||
* Fix hidden test's failure (#29254) (#29662)
|
||||
|
||||
[1.32.8]
|
||||
* Update Gitea to 1.21.9
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.21.9)
|
||||
* Only do counting when count_only=true for repo dashboard (#29884) (#29905)
|
||||
* Add cache for dashboard commit status (#29932)
|
||||
* Make runs-on support variable expression (#29468) (#29782)
|
||||
* Show Actions post step when it's running (#29926) (#29928)
|
||||
* Fix PR creation via API between branches of the same repo with head field namespaced (#26986) (#29857)
|
||||
* Fix and rewrite markup anchor processing (#29931) (#29946)
|
||||
* Notify reviewers added via CODEOWNERS (#29842) (#29902)
|
||||
* Fix template error when comment review doesn't exist (#29888) (#29889)
|
||||
* Fix user id column case (#29863) (#29867)
|
||||
* Make meilisearch do exact search for issues (#29740 & #29671) (#29846)
|
||||
* Fix the for attribute not pointing to the ID of the color picker (#29813) (#29815)
|
||||
* Fix codeowner detected diff base branch to mergebase (#29783) (#29807)
|
||||
* Fix Safari spinner rendering (#29801) (#29802)
|
||||
* Fix missing translation on milestones (#29785) (#29789)
|
||||
* Fix user router possible panic (#29751) (#29786)
|
||||
* Fix possible NPE in ToPullReviewList (#29759) (#29775)
|
||||
* Fix the wrong default value of ENABLE_OPENID_SIGNIN on docs (#29925) (#29927)
|
||||
* Solving the issue of UI disruption when the review is deleted without refreshing (#29951) (#29968)
|
||||
* Fix loadOneBranch panic (#29938) (#29939)
|
||||
* Fix invalid link of the commit status when ref is tagged (#29752) (#29908)
|
||||
* Editor error message misleading due to re-used key. (#29859) (#29876)
|
||||
* Fix double border and border-radius on empty action steps (#29845) (#29850)
|
||||
* Use Temporal.PlainDate for absolute dates (#29804) (#29808)
|
||||
* Fix incorrect package link method calls in templates (#29580) (#29764)
|
||||
* Fix the bug that the user may log out if GetUserByID returns unknown error (#29962) (#29964)
|
||||
* Performance improvements for pull request list page (#29900) (#29972)
|
||||
* Fix bugs in rerunning jobs (#29983) (#29955)
|
||||
|
||||
[1.32.9]
|
||||
* Update Gitea to 1.21.10
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.21.10)
|
||||
* Fix Add/Remove WIP on pull request title failure (#29999) (#30066)
|
||||
* Fix misuse of TxContext (#30061) (#30062)
|
||||
* Respect DEFAULT_ORG_MEMBER_VISIBLE setting when adding creator to org (#30013) (#30035)
|
||||
* Escape paths for find file correctly (#30026) (#30031)
|
||||
* Remove duplicate option in admin screen and now-unused translation keys (#28492) (#30024)
|
||||
* Fix manual merge form and 404 page templates (#30000)
|
||||
|
||||
[1.32.10]
|
||||
* Update Gitea to 1.21.11
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.21.11)
|
||||
* Use go1.21.9 to include Golang security fix
|
||||
* Fix possible renderer security problem (#30136) (#30315)
|
||||
* Fix close file in the Upload func (#30262) (#30269)
|
||||
* Fix inline math blocks can't be preceeded/followed by alphanumerical characters (#30175) (#30250)
|
||||
* Fix missing 0 prefix of GPG key id (#30245) (#30247)
|
||||
* Include encoding in signature payload (#30174) (#30181)
|
||||
* Move from max( id ) to max( index ) for latest commit statuses (#30076) (#30155)
|
||||
* Load attachments for code comments (#30124) (#30126)
|
||||
* Fix gitea doctor will remove repo-avatar files when executing command storage-archives (#30094) (#30120)
|
||||
* Fix possible data race on tests (#30093) (#30108)
|
||||
* Performance optimization for git push (#30104)
|
||||
* Fix duplicate migrated milestones (#30102) (#30105)
|
||||
* Fix panic for fixBrokenRepoUnits16961 (#30068) (#30100)
|
||||
* Fix incorrect SVGs (#30087)
|
||||
* Fix create commit status (#30225) (#30340)
|
||||
* Performance optimization for git push (#30104) (#30354)
|
||||
* Fix misuse of unsupported global variables (#30402)
|
||||
* Fix to delete the cookie when AppSubURL is non-empty (#30375) (#30468)
|
||||
* Avoid user does not exist error when detecting schedule actions when the commit author is an external user (#30357) (#30408)
|
||||
* Change the default maxPerPage for gitbucket (#30392) (#30471)
|
||||
* Check the token's owner and repository when registering a runner (#30406) (#30412)
|
||||
* Avoid losing token when updating mirror settings (#30429) (#30466)
|
||||
* Fix commit status cache which missed target_url (#30426) (#30445)
|
||||
* Fix rename branch 500 when the target branch is deleted but exist in database (#30430) (#30437)
|
||||
* Fix mirror error when mirror repo is empty (#30432) (#30467)
|
||||
* Use db.ListOptions directly instead of Paginator interface to make it easier to use and fix performance of /pulls and /issues (#29990) (#30447)
|
||||
* Fix code owners will not be mentioned when a pull request comes from a forked repository (#30476) (#30497)
|
||||
|
||||
[1.33.0]
|
||||
* Update Gitea to 1.22.0
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.22.0)
|
||||
* [Breaking changes](https://github.com/go-gitea/gitea/releases/tag/v1.22.0#Breaking)
|
||||
* Allow everyone to read or write a wiki by a repo unit setting (#30495)
|
||||
* Use raw Wiki links for non-renderable Wiki files (#30273)
|
||||
* Render embedded code preview by permalink in markdown (#30234) (#30249)
|
||||
* Support repo code search without setting up an indexer (#29998)
|
||||
* Support pasting URLs over markdown text (#29566)
|
||||
* Allow to change primary email before account activation (#29412)
|
||||
* Customizable "Open with" applications for repository clone (#29320)
|
||||
* Allow options to disable user deletion from the interface on app.ini (#29275)
|
||||
* Extend issue template YAML engine (#29274)
|
||||
|
||||
[1.33.1]
|
||||
* Update Gitea to 1.22.1
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.22.1)
|
||||
|
||||
[1.33.2]
|
||||
* Update Gitea to 1.22.2
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.22.2)
|
||||
* Replace v-html with v-text in search inputbox (#31966) (#31973)
|
||||
* Fix nuget/conan/container packages upload bugs (#31967) (#31982)
|
||||
* Refactor the usage of batch catfile (#31754) (#31889)
|
||||
* Fix overflowing content in action run log (#31842) (#31853)
|
||||
* Scroll images in project issues separately from the remaining issue (#31683) (#31823)
|
||||
* Add :focus-visible style to buttons (#31799) (#31819)
|
||||
* Fix the display of project type for deleted projects (#31732) (#31734)
|
||||
* Fix API owner ID should be zero when created repo secret (#31715) (#31811)
|
||||
* Set owner id to zero when GetRegistrationToken for repo (#31725) (#31729)
|
||||
* Fix API endpoint for registration-token (#31722) (#31728)
|
||||
* Add permission check when creating PR (#31033) (#31720)
|
||||
|
||||
[1.33.3]
|
||||
* Update Gitea to 1.22.3
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.22.3)
|
||||
* Fix bug when a token is given public only (#32204) (#32218)
|
||||
* Increase cacheContextLifetime to reduce false reports (#32011) (#32023)
|
||||
* Don't join repository when loading action table data (#32127) (#32143)
|
||||
* Fix javascript error when an anonymous user visits migration page (#32144) (#32179)
|
||||
* Don't init signing keys if oauth2 provider is disabled (#32177)
|
||||
* Fix wrong status of Set up Job when first step is skipped (#32120) (#32125)
|
||||
* Fix bug when deleting a migrated branch (#32075) (#32123)
|
||||
* Truncate commit message during Discord webhook push events (#31970) (#32121)
|
||||
* Allow to set branch protection in an empty repository (#32095) (#32119)
|
||||
* Fix panic when cloning with wrong ssh format. (#32076) (#32118)
|
||||
[1.33.4]
|
||||
* Update gitea to 1.22.4
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.22.4)
|
||||
* Fix basic auth with webauthn (#32531) (#32536)
|
||||
* Refactor internal routers (partial backport, auth token const time comparing) (#32473) (#32479)
|
||||
|
||||
[1.33.5]
|
||||
* Update gitea to 1.22.5
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.22.5)
|
||||
* Upgrade crypto library ([#​32791](https://github.com/go-gitea/gitea/issues/32791))
|
||||
* Fix delete branch perm checking ([#​32654](https://github.com/go-gitea/gitea/issues/32654)) ([#​32707](https://github.com/go-gitea/gitea/issues/32707))
|
||||
* Add standard-compliant route to serve outdated R packages ([#​32783](https://github.com/go-gitea/gitea/issues/32783)) ([#​32789](https://github.com/go-gitea/gitea/issues/32789))
|
||||
* Fix internal server error when updating labels without write permission ([#​32776](https://github.com/go-gitea/gitea/issues/32776)) ([#​32785](https://github.com/go-gitea/gitea/issues/32785))
|
||||
* Add Swift login endpoint ([#​32693](https://github.com/go-gitea/gitea/issues/32693)) ([#​32701](https://github.com/go-gitea/gitea/issues/32701))
|
||||
* Fix fork page branch selection ([#​32711](https://github.com/go-gitea/gitea/issues/32711)) ([#​32725](https://github.com/go-gitea/gitea/issues/32725))
|
||||
* Fix word overflow in file search page ([#​32695](https://github.com/go-gitea/gitea/issues/32695)) ([#​32699](https://github.com/go-gitea/gitea/issues/32699))
|
||||
* Fix gogit `GetRefCommitID` ([#​32705](https://github.com/go-gitea/gitea/issues/32705)) ([#​32712](https://github.com/go-gitea/gitea/issues/32712))
|
||||
* Fix race condition in mermaid observer ([#​32599](https://github.com/go-gitea/gitea/issues/32599)) ([#​32673](https://github.com/go-gitea/gitea/issues/32673))
|
||||
* Fixe a keystring misuse and refactor duplicates keystrings ([#​32668](https://github.com/go-gitea/gitea/issues/32668)) ([#​32792](https://github.com/go-gitea/gitea/issues/32792))
|
||||
* Bump relative-time-element to v4.4.4 ([#​32739](https://github.com/go-gitea/gitea/issues/32739))
|
||||
* Make wiki pages visit fast ([#​32732](https://github.com/go-gitea/gitea/issues/32732)) ([#​32745](https://github.com/go-gitea/gitea/issues/32745))
|
||||
* Don't create action when syncing mirror pull refs ([#​32659](https://github.com/go-gitea/gitea/issues/32659)) ([#​32664](https://github.com/go-gitea/gitea/issues/32664))
|
||||
|
||||
[1.33.6]
|
||||
* Update gitea to 1.22.6
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.22.6)
|
||||
* Fix misuse of PublicKeyCallback([#​32810](https://github.com/go-gitea/gitea/issues/32810))
|
||||
* Fix lfs migration ([#​32812](https://github.com/go-gitea/gitea/issues/32812)) ([#​32818](https://github.com/go-gitea/gitea/issues/32818))
|
||||
* Add missing two sync feed for refs/pull ([#​32815](https://github.com/go-gitea/gitea/issues/32815))
|
||||
* Avoid MacOS keychain dialog in integration tests ([#​32813](https://github.com/go-gitea/gitea/issues/32813)) ([#​32816](https://github.com/go-gitea/gitea/issues/32816))
|
||||
|
||||
[1.34.0]
|
||||
* Update gitea to 1.23.0
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.0)
|
||||
* Rename config option `[camo].Allways` to `[camo].Always` ([#​32097](https://github.com/go-gitea/gitea/issues/32097))
|
||||
* Remove SHA1 for support for SSH RSA signing ([#​31857](https://github.com/go-gitea/gitea/issues/31857))
|
||||
* Use UTC as the default timezone when scheduling Actions cron tasks ([#​31742](https://github.com/go-gitea/gitea/issues/31742))
|
||||
* Delete Actions logs older than 1 year by default ([#​31735](https://github.com/go-gitea/gitea/issues/31735))
|
||||
* Make OIDC introspection authentication strictly require Client ID and secret ([#​31632](https://github.com/go-gitea/gitea/issues/31632))
|
||||
* Include file extension checks in attachment API ([#​32151](https://github.com/go-gitea/gitea/issues/32151))
|
||||
|
||||
[1.34.1]
|
||||
* Update gitea to 1.23.1
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.1)
|
||||
* Move repo size to sidebar ([#​33155](https://github.com/go-gitea/gitea/issues/33155))
|
||||
* Fix editor markdown not incrementing in a numbered list ([#​33187](https://github.com/go-gitea/gitea/issues/33187)) [#​33193](https://github.com/go-gitea/gitea/issues/33193)
|
||||
|
||||
[1.34.2]
|
||||
* Update gitea to 1.23.3
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.3)
|
||||
* Build Gitea with Golang v1.23.6 to fix security bugs
|
||||
* Fix a bug caused by status webhook template #33512
|
||||
|
||||
[1.34.3]
|
||||
* Update gitea to 1.23.4
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.4)
|
||||
* Enhance routers for the Actions variable operations (#33547) (#33553)
|
||||
* Enhance routers for the Actions runner operations (#33549) (#33555)
|
||||
* Fix project issues list and counting (#33594) #33619
|
||||
* Add a transaction to pickTask (#33543) (#33563)
|
||||
* Fix mirror bug (#33597) (#33607)
|
||||
* Use default Git timeout when checking repo health (#33593) (#33598)
|
||||
* Fix PR's target branch dropdown (#33589) (#33591)
|
||||
* Fix various problems (artifact order, api empty slice, assignee check, fuzzy prompt, mirror proxy, adopt git) (#33569) (#33577)
|
||||
* Rework suggestion backend (#33538) (#33546)
|
||||
* Fix context usage (#33554) (#33557)
|
||||
|
||||
[1.34.4]
|
||||
* Update gitea to 1.23.5
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.5)
|
||||
* Compile with Go 1.24.1
|
||||
* Bump x/oauth2 & x/crypto (#33704) (#33727)
|
||||
* Optimize user dashboard loading (#33686) (#33708)
|
||||
* Fix navbar dropdown item align (#33782)
|
||||
* Fix inconsistent closed issue list icon (#33722) (#33728)
|
||||
* Fix for Maven Package Naming Convention Handling (#33678) (#33679)
|
||||
* Improve Open-with URL encoding (#33666) (#33680)
|
||||
* Deleting repository should unlink all related packages (#33653) (#33673)
|
||||
* Fix omitempty bug (#33663) (#33670)
|
||||
* Upgrade go-crypto from 1.1.4 to 1.1.6 (#33745) (#33754)
|
||||
* Fix OCI image.version annotation for releases to use full semver (#33698) (#33701)
|
||||
* Try to fix ACME path when renew (#33668) (#33693)
|
||||
* Fix mCaptcha bug (#33659) (#33661)
|
||||
* Git graph: don't show detached commits (#33645) (#33650)
|
||||
|
||||
[1.35.0]
|
||||
* Base image 5
|
||||
|
||||
[1.35.1]
|
||||
* Fix hard coded mysql hostname
|
||||
|
||||
[1.35.2]
|
||||
* Update gitea to 1.23.6
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.6)
|
||||
* Fix LFS URL (#33840) (#33843)
|
||||
* Update jwt and redis packages (#33984) (#33987)
|
||||
* Update golang crypto and net (#33989)
|
||||
* Drop timeout for requests made to the internal hook api (#33947) (#33970)
|
||||
* Fix maven panic when no package exists (#33888) (#33889)
|
||||
* Fix markdown render (#33870) (#33875)
|
||||
* Fix auto concurrency cancellation skips commit status updates (#33764) (#33849)
|
||||
* Fix oauth2 auth (#33961) (#33962)
|
||||
|
||||
[1.35.3]
|
||||
* Update gitea to 1.23.7
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.7)
|
||||
* Compile with Go 1.23.8
|
||||
* Add a config option to block "expensive" pages for anonymous users ([#​34024](https://github.com/go-gitea/gitea/issues/34024)) ([#​34071](https://github.com/go-gitea/gitea/issues/34071))
|
||||
* Also check default ssh-cert location for host ([#​34099](https://github.com/go-gitea/gitea/issues/34099)) ([#​34100](https://github.com/go-gitea/gitea/issues/34100)) ([#​34116](https://github.com/go-gitea/gitea/issues/34116))
|
||||
* Fix discord webhook 400 status code when description limit is exceeded ([#​34084](https://github.com/go-gitea/gitea/issues/34084)) ([#​34124](https://github.com/go-gitea/gitea/issues/34124))
|
||||
* Get changed files based on merge base when checking `pull_request` actions trigger ([#​34106](https://github.com/go-gitea/gitea/issues/34106)) ([#​34120](https://github.com/go-gitea/gitea/issues/34120))
|
||||
* Fix invalid version in RPM package path ([#​34112](https://github.com/go-gitea/gitea/issues/34112)) ([#​34115](https://github.com/go-gitea/gitea/issues/34115))
|
||||
* Return default avatar url when user id is zero rather than updating database ([#​34094](https://github.com/go-gitea/gitea/issues/34094)) ([#​34095](https://github.com/go-gitea/gitea/issues/34095))
|
||||
* Add additional ReplaceAll in pathsep to cater for different pathsep ([#​34061](https://github.com/go-gitea/gitea/issues/34061)) ([#​34070](https://github.com/go-gitea/gitea/issues/34070))
|
||||
* Try to fix check-attr bug ([#​34029](https://github.com/go-gitea/gitea/issues/34029)) ([#​34033](https://github.com/go-gitea/gitea/issues/34033))
|
||||
* Git client will follow 301 but 307 ([#​34005](https://github.com/go-gitea/gitea/issues/34005)) ([#​34010](https://github.com/go-gitea/gitea/issues/34010))
|
||||
|
||||
[1.35.4]
|
||||
* Update gitea to 1.23.8
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.8)
|
||||
* Fix a bug when uploading file via lfs ssh command ([#34408](https://github.com/go-gitea/gitea/issues/34408)) ([#34411](https://github.com/go-gitea/gitea/issues/34411))
|
||||
* Update net package ([#34228](https://github.com/go-gitea/gitea/issues/34228)) ([#34232](https://github.com/go-gitea/gitea/issues/34232))
|
||||
* Fix releases sidebar navigation link ([#34436](https://github.com/go-gitea/gitea/issues/34436)) [#34439](https://github.com/go-gitea/gitea/issues/34439)
|
||||
* Fix bug webhook milestone is not right. ([#34419](https://github.com/go-gitea/gitea/issues/34419)) [#34429](https://github.com/go-gitea/gitea/issues/34429)
|
||||
* Fix two missed null value checks on the wiki page. ([#34205](https://github.com/go-gitea/gitea/issues/34205)) ([#34215](https://github.com/go-gitea/gitea/issues/34215))
|
||||
* Swift files can be passed either as file or as form value ([#34068](https://github.com/go-gitea/gitea/issues/34068)) ([#34236](https://github.com/go-gitea/gitea/issues/34236))
|
||||
* Fix bug when API get pull changed files for deleted head repository ([#34333](https://github.com/go-gitea/gitea/issues/34333)) ([#34368](https://github.com/go-gitea/gitea/issues/34368))
|
||||
* Upgrade github v61 -> v71 to fix migrating bug ([#34389](https://github.com/go-gitea/gitea/issues/34389))
|
||||
* Fix bug when visiting comparation page ([#34334](https://github.com/go-gitea/gitea/issues/34334)) ([#34364](https://github.com/go-gitea/gitea/issues/34364))
|
||||
* Fix wrong review requests when updating the pull request ([#34286](https://github.com/go-gitea/gitea/issues/34286)) ([#34304](https://github.com/go-gitea/gitea/issues/34304))
|
||||
|
||||
[1.35.5]
|
||||
* Update gitea to 1.23.8
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.8)
|
||||
* Fix a bug when uploading file via lfs ssh command ([#34408](https://github.com/go-gitea/gitea/issues/34408)) ([#34411](https://github.com/go-gitea/gitea/issues/34411))
|
||||
* Update net package ([#34228](https://github.com/go-gitea/gitea/issues/34228)) ([#34232](https://github.com/go-gitea/gitea/issues/34232))
|
||||
* Fix releases sidebar navigation link ([#34436](https://github.com/go-gitea/gitea/issues/34436)) [#34439](https://github.com/go-gitea/gitea/issues/34439)
|
||||
* Fix bug webhook milestone is not right. ([#34419](https://github.com/go-gitea/gitea/issues/34419)) [#34429](https://github.com/go-gitea/gitea/issues/34429)
|
||||
* Fix two missed null value checks on the wiki page. ([#34205](https://github.com/go-gitea/gitea/issues/34205)) ([#34215](https://github.com/go-gitea/gitea/issues/34215))
|
||||
* Swift files can be passed either as file or as form value ([#34068](https://github.com/go-gitea/gitea/issues/34068)) ([#34236](https://github.com/go-gitea/gitea/issues/34236))
|
||||
* Fix bug when API get pull changed files for deleted head repository ([#34333](https://github.com/go-gitea/gitea/issues/34333)) ([#34368](https://github.com/go-gitea/gitea/issues/34368))
|
||||
* Upgrade github v61 -> v71 to fix migrating bug ([#34389](https://github.com/go-gitea/gitea/issues/34389))
|
||||
* Fix bug when visiting comparation page ([#34334](https://github.com/go-gitea/gitea/issues/34334)) ([#34364](https://github.com/go-gitea/gitea/issues/34364))
|
||||
* Fix wrong review requests when updating the pull request ([#34286](https://github.com/go-gitea/gitea/issues/34286)) ([#34304](https://github.com/go-gitea/gitea/issues/34304))
|
||||
|
||||
[1.36.0]
|
||||
* Update gitea to 1.24.0
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.24.0)
|
||||
* Make Gitea always use its internal config, ignore `/etc/gitconfig` ([#33076](https://github.com/go-gitea/gitea/issues/33076))
|
||||
* Improve log format ([#33814](https://github.com/go-gitea/gitea/issues/33814))
|
||||
* Fix markdown render behaviors ([#34122](https://github.com/go-gitea/gitea/issues/34122))
|
||||
* Add package version api endpoints ([#34173](https://github.com/go-gitea/gitea/issues/34173))
|
||||
* Enforce two-factor auth (2FA: TOTP or WebAuthn) ([#34187](https://github.com/go-gitea/gitea/issues/34187))
|
||||
* Add fullscreen mode as a more efficient operation way to view projects ([#34081](https://github.com/go-gitea/gitea/issues/34081))
|
||||
* Add anonymous access support for private/unlisted repositories ([#34051](https://github.com/go-gitea/gitea/issues/34051))
|
||||
* Support public code/issue access for private repositories ([#33127](https://github.com/go-gitea/gitea/issues/33127))
|
||||
* Add middleware for request prioritization ([#33951](https://github.com/go-gitea/gitea/issues/33951))
|
||||
* Add cli flags LDAP group configuration ([#33933](https://github.com/go-gitea/gitea/issues/33933))
|
||||
|
||||
[1.36.1]
|
||||
* Update gitea to 1.24.1
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.24.1)
|
||||
* Improve alignment of commit status icon on commit page ([#​34750](https://github.com/go-gitea/gitea/issues/34750)) ([#​34757](https://github.com/go-gitea/gitea/issues/34757))
|
||||
* Support title and body query parameters for new MRs ([#​34537](https://github.com/go-gitea/gitea/issues/34537)) ([#​34752](https://github.com/go-gitea/gitea/issues/34752))
|
||||
* When using rules to delete packages, remove unclean bugs ([#​34632](https://github.com/go-gitea/gitea/issues/34632)) ([#​34761](https://github.com/go-gitea/gitea/issues/34761))
|
||||
* Fix ghost user in feeds when pushing in an actions, it should be gitea-actions ([#​34703](https://github.com/go-gitea/gitea/issues/34703)) ([#​34756](https://github.com/go-gitea/gitea/issues/34756))
|
||||
* Prevent double markdown link brackets when pasting URL ([#​34745](https://github.com/go-gitea/gitea/issues/34745)) ([#​34748](https://github.com/go-gitea/gitea/issues/34748))
|
||||
* Prevent duplicate form submissions when creating forks ([#​34714](https://github.com/go-gitea/gitea/issues/34714)) ([#​34735](https://github.com/go-gitea/gitea/issues/34735))
|
||||
* Fix markdown wrap ([#​34697](https://github.com/go-gitea/gitea/issues/34697)) ([#​34702](https://github.com/go-gitea/gitea/issues/34702))
|
||||
* Fix pull requests API convert panic when head repository is deleted. ([#​34685](https://github.com/go-gitea/gitea/issues/34685)) ([#​34687](https://github.com/go-gitea/gitea/issues/34687))
|
||||
* Fix commit message rendering and some UI problems ([#​34680](https://github.com/go-gitea/gitea/issues/34680)) ([#​34683](https://github.com/go-gitea/gitea/issues/34683))
|
||||
* Fix container range bug ([#​34725](https://github.com/go-gitea/gitea/issues/34725)) ([#​34732](https://github.com/go-gitea/gitea/issues/34732))
|
||||
|
||||
[1.36.2]
|
||||
* Update gitea to 1.24.2
|
||||
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.24.2)
|
||||
* Fix container range bug ([#​34795](https://github.com/go-gitea/gitea/issues/34795)) ([#​34796](https://github.com/go-gitea/gitea/issues/34796))
|
||||
* Upgrade chi to v5.2.2 ([#​34798](https://github.com/go-gitea/gitea/issues/34798)) ([#​34799](https://github.com/go-gitea/gitea/issues/34799))
|
||||
|
||||
|
@@ -4,16 +4,20 @@
|
||||
"author": "Gitea developers",
|
||||
"description": "file://DESCRIPTION.md",
|
||||
"tagline": "A painless self-hosted Git Service",
|
||||
"version": "1.32.3",
|
||||
"upstreamVersion": "1.21.3",
|
||||
"version": "1.36.2",
|
||||
"upstreamVersion": "1.24.1",
|
||||
"healthCheckPath": "/explore",
|
||||
"httpPort": 3000,
|
||||
"memoryLimit": 536870912,
|
||||
"addons": {
|
||||
"mysql": { },
|
||||
"sendmail": { "supportsDisplayName": true },
|
||||
"localstorage": { },
|
||||
"oidc": { "loginRedirectUri": "/user/oauth2/cloudron/callback" }
|
||||
"mysql": {},
|
||||
"sendmail": {
|
||||
"supportsDisplayName": true
|
||||
},
|
||||
"localstorage": {},
|
||||
"oidc": {
|
||||
"loginRedirectUri": "/user/oauth2/cloudron/callback"
|
||||
}
|
||||
},
|
||||
"tcpPorts": {
|
||||
"SSH_PORT": {
|
||||
@@ -34,10 +38,23 @@
|
||||
"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", "github", "bitbucket", "gitlab" ],
|
||||
"tags": [
|
||||
"version control",
|
||||
"git",
|
||||
"code hosting",
|
||||
"development",
|
||||
"github",
|
||||
"bitbucket",
|
||||
"gitlab"
|
||||
],
|
||||
"changelog": "file://CHANGELOG.md",
|
||||
"postInstallMessage": "file://POSTINSTALL.md",
|
||||
"minBoxVersion": "7.5.1",
|
||||
"checklist": {
|
||||
"change-default-password": {
|
||||
"message": "Change the default admin password"
|
||||
}
|
||||
},
|
||||
"minBoxVersion": "8.1.0",
|
||||
"forumUrl": "https://forum.cloudron.io/category/19/gitea",
|
||||
"documentationUrl": "https://docs.cloudron.io/apps/gitea/"
|
||||
"documentationUrl": "https://docs.cloudron.io/packages/gitea/"
|
||||
}
|
||||
|
28
Dockerfile
28
Dockerfile
@@ -1,27 +1,27 @@
|
||||
FROM cloudron/base:4.2.0@sha256:46da2fffb36353ef714f97ae8e962bd2c212ca091108d768ba473078319a47f4
|
||||
FROM cloudron/base:5.0.0@sha256:04fd70dbd8ad6149c19de39e35718e024417c3e01dc9c6637eaf4a41ec4e596c
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y openssh-server git asciidoctor pandoc && \
|
||||
apt-get install -y openssh-server git asciidoctor pandoc pipx && \
|
||||
rm -rf /etc/ssh_host_* && \
|
||||
rm -r /var/cache/apt /var/lib/apt/lists
|
||||
RUN pip3 install jupyter
|
||||
|
||||
# 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 mkdir -p /home/git/gitea
|
||||
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
|
||||
|
||||
# for autosign feature
|
||||
ENV GNUPGHOME="/app/data/gnupg"
|
||||
|
||||
ARG VERSION=1.21.3
|
||||
# renovate: datasource=github-releases depName=go-gitea/gitea versioning=semver extractVersion=^v(?<version>.+)$
|
||||
ARG GITEA_VERSION=1.24.2
|
||||
|
||||
RUN curl -L https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 -o /home/git/gitea/gitea \
|
||||
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
|
||||
@@ -31,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
|
||||
|
||||
|
@@ -3,8 +3,6 @@ This app is pre-setup with an admin account. The initial credentials are:
|
||||
**Username**: root<br/>
|
||||
**Password**: changeme<br/>
|
||||
|
||||
Please change the admin password immediately.
|
||||
|
||||
<sso>
|
||||
Use the `Local` authentication source for logging in as admin.
|
||||
</sso>
|
||||
|
4
renovate.json5
Normal file
4
renovate.json5
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": ["local>devops/renovator//default.renovate.json5"]
|
||||
}
|
97
sshd_config
97
sshd_config
@@ -1,80 +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
|
||||
ListenAddress ::
|
||||
Protocol 2
|
||||
# HostKeys for protocol version 2
|
||||
|
||||
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_*
|
||||
|
||||
|
15
start.sh
15
start.sh
@@ -4,23 +4,15 @@ set -eu -o pipefail
|
||||
|
||||
mkdir -p /run/gitea/tmp/uploads /run/sshd /run/gitea/sessions
|
||||
|
||||
migrate_ldap_users_to_oidc() {
|
||||
set -eu
|
||||
|
||||
echo "==> migrate LDAP to OIDC"
|
||||
mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h mysql --database="${CLOUDRON_MYSQL_DATABASE}" -N -B -e \
|
||||
"UPDATE user u, (select id from login_source WHERE name='cloudron' and type='6') ls SET u.login_type=6, u.login_source=ls.id WHERE u.login_type=2 AND u.login_source=1"
|
||||
}
|
||||
|
||||
# CLOUDRON_OIDC_PROVIDER_NAME not supported as it will be used in rest route!
|
||||
setup_oidc_source() {
|
||||
set -eu
|
||||
|
||||
echo "==> Setup OIDC source"
|
||||
|
||||
now=$(date +%s)
|
||||
mysql -u"${CLOUDRON_MYSQL_USERNAME}" -p"${CLOUDRON_MYSQL_PASSWORD}" -h mysql --database="${CLOUDRON_MYSQL_DATABASE}" -e \
|
||||
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_root_user() {
|
||||
@@ -47,10 +39,9 @@ setup_auth() {
|
||||
|
||||
if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
|
||||
setup_oidc_source
|
||||
migrate_ldap_users_to_oidc
|
||||
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
|
||||
if [[ "${user_count}" == "0" ]]; then
|
||||
echo "==> Setting up root user for first run"
|
||||
|
2321
test/package-lock.json
generated
2321
test/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,10 +9,10 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"chromedriver": "^120.0.0",
|
||||
"chromedriver": "^137.0.4",
|
||||
"expect.js": "^0.3.1",
|
||||
"mocha": "^10.2.0",
|
||||
"selenium-webdriver": "^4.16.0",
|
||||
"superagent": "^8.1.2"
|
||||
"mocha": "^11.7.0",
|
||||
"selenium-webdriver": "^4.33.0",
|
||||
"superagent": "^10.2.1"
|
||||
}
|
||||
}
|
||||
|
89
test/test.js
89
test/test.js
@@ -1,11 +1,7 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/* jshint esversion: 8 */
|
||||
/* global it:false */
|
||||
/* global xit:false */
|
||||
/* global describe:false */
|
||||
/* global before:false */
|
||||
/* global after:false */
|
||||
/* global it, xit, describe, before, after, afterEach */
|
||||
|
||||
'use strict';
|
||||
|
||||
@@ -29,21 +25,22 @@ describe('Application life cycle test', function () {
|
||||
|
||||
const TIMEOUT = parseInt(process.env.TIMEOUT, 10) || 5000;
|
||||
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
|
||||
const LOCATION = 'test';
|
||||
const LOCATION = process.env.LOCATION || 'test';
|
||||
const SSH_PORT = 29420;
|
||||
|
||||
let app, browser;
|
||||
var athenticated_by_oidc = false;
|
||||
|
||||
const repodir = '/tmp/testrepo';
|
||||
const reponame = 'testrepo';
|
||||
|
||||
const username = process.env.USERNAME;
|
||||
const password = process.env.PASSWORD;
|
||||
const email = process.env.EMAIL;
|
||||
|
||||
before(function () {
|
||||
browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build();
|
||||
const chromeOptions = new Options().windowSize({ width: 1280, height: 1024 });
|
||||
if (process.env.CI) chromeOptions.addArguments('no-sandbox', 'disable-dev-shm-usage', 'headless');
|
||||
browser = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
|
||||
if (!fs.existsSync('./screenshots')) fs.mkdirSync('./screenshots');
|
||||
});
|
||||
|
||||
after(function () {
|
||||
@@ -51,8 +48,19 @@ describe('Application life cycle test', function () {
|
||||
fs.rmSync(repodir, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
afterEach(async function () {
|
||||
if (!process.env.CI || !app) return;
|
||||
|
||||
const currentUrl = await browser.getCurrentUrl();
|
||||
if (!currentUrl.includes(app.domain)) return;
|
||||
expect(this.currentTest.title).to.be.a('string');
|
||||
|
||||
const screenshotData = await browser.takeScreenshot();
|
||||
fs.writeFileSync(`./screenshots/${new Date().getTime()}-${this.currentTest.title.replaceAll(' ', '_')}.png`, screenshotData, 'base64');
|
||||
});
|
||||
|
||||
function getAppInfo() {
|
||||
var inspect = JSON.parse(execSync('cloudron inspect'));
|
||||
const inspect = JSON.parse(execSync('cloudron inspect'));
|
||||
app = inspect.apps.filter(function (a) { return a.location.indexOf(LOCATION) === 0; })[0];
|
||||
expect(app).to.be.an('object');
|
||||
}
|
||||
@@ -99,7 +107,7 @@ describe('Application life cycle test', function () {
|
||||
await login('root', 'changeme');
|
||||
}
|
||||
|
||||
async function loginOIDC(username, password) {
|
||||
async function loginOIDC(username, password, alreadyAuthenticated = true) {
|
||||
browser.manage().deleteAllCookies();
|
||||
await browser.get(`https://${app.fqdn}/user/login`);
|
||||
await browser.sleep(2000);
|
||||
@@ -108,15 +116,13 @@ describe('Application life cycle test', function () {
|
||||
await browser.findElement(By.xpath('//a[contains(@class, "openidConnect") and contains(., "Sign in with cloudron")]')).click();
|
||||
await browser.sleep(2000);
|
||||
|
||||
if (!athenticated_by_oidc) {
|
||||
await waitForElement(By.xpath('//input[@name="username"]'));
|
||||
await browser.findElement(By.xpath('//input[@name="username"]')).sendKeys(username);
|
||||
await browser.findElement(By.xpath('//input[@name="password"]')).sendKeys(password);
|
||||
if (!alreadyAuthenticated) {
|
||||
await waitForElement(By.id('inputUsername'));
|
||||
await browser.findElement(By.id('inputUsername')).sendKeys(username);
|
||||
await browser.findElement(By.id('inputPassword')).sendKeys(password);
|
||||
await browser.sleep(2000);
|
||||
await browser.findElement(By.xpath('//button[@type="submit" and contains(text(), "Sign in")]')).click();
|
||||
await browser.findElement(By.id('loginSubmitButton')).click();
|
||||
await browser.sleep(2000);
|
||||
|
||||
athenticated_by_oidc = true;
|
||||
}
|
||||
|
||||
await waitForElement(By.xpath('//img[contains(@class, "avatar")]'));
|
||||
@@ -132,7 +138,8 @@ describe('Application life cycle test', function () {
|
||||
}
|
||||
|
||||
async function addPublicKey() {
|
||||
var publicKey = fs.readFileSync(__dirname + '/id_ed25519.pub', 'utf8');
|
||||
const publicKey = fs.readFileSync(__dirname + '/id_ed25519.pub', 'utf8');
|
||||
execSync(`chmod g-rw,o-rw ${__dirname}/id_ed25519`); // ssh will complain about perms later
|
||||
|
||||
await browser.get('https://' + app.fqdn + '/user/settings/keys');
|
||||
|
||||
@@ -147,25 +154,9 @@ describe('Application life cycle test', function () {
|
||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
|
||||
}
|
||||
|
||||
async function addPublicKeyOld() {
|
||||
var publicKey = fs.readFileSync(__dirname + '/id_ed25519.pub', 'utf8');
|
||||
|
||||
await browser.get('https://' + app.fqdn + '/user/settings/keys');
|
||||
|
||||
await browser.wait(until.elementLocated(By.id('add-ssh-button')), TIMEOUT);
|
||||
await browser.findElement(By.id('add-ssh-button')).click();
|
||||
await browser.findElement(By.id('ssh-key-title')).sendKeys('testkey');
|
||||
await browser.findElement(By.id('ssh-key-content')).sendKeys(publicKey.trim()); // #3480
|
||||
var button = browser.findElement(By.xpath('//button[contains(text(), "Add Key")]'));
|
||||
await browser.executeScript('arguments[0].scrollIntoView(false)', button);
|
||||
await browser.findElement(By.xpath('//button[contains(text(), "Add Key") and contains(@class, "green")]')).click();
|
||||
|
||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
|
||||
}
|
||||
|
||||
async function createRepo() {
|
||||
var getRepoPage = await browser.get('https://' + app.fqdn + '/repo/create');
|
||||
|
||||
await browser.get(`https://${app.fqdn}/repo/create`);
|
||||
await browser.wait(until.elementLocated(By.id('repo_name')));
|
||||
await browser.findElement(By.id('repo_name')).sendKeys(reponame);
|
||||
var button = browser.findElement(By.xpath('//button[contains(text(), "Create Repository")]'));
|
||||
await browser.executeScript('arguments[0].scrollIntoView(true)', button);
|
||||
@@ -179,14 +170,6 @@ describe('Application life cycle test', function () {
|
||||
}, TIMEOUT);
|
||||
}
|
||||
|
||||
async function checkCloneUrl() {
|
||||
await browser.get('https://' + app.fqdn + '/' + username + '/' + reponame);
|
||||
await browser.findElement(By.id('repo-clone-ssh')).click();
|
||||
|
||||
var cloneUrl = await browser.findElement(By.id('repo-clone-url')).getAttribute('value');
|
||||
expect(cloneUrl).to.be(`ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame}.git`);
|
||||
}
|
||||
|
||||
function cloneRepo() {
|
||||
fs.rmSync(repodir, { recursive: true, force: true });
|
||||
var env = Object.create(process.env);
|
||||
@@ -207,13 +190,13 @@ describe('Application life cycle test', function () {
|
||||
}
|
||||
|
||||
async function sendMail() {
|
||||
await browser.get(`https://${app.fqdn}/admin/config`);
|
||||
|
||||
var button = await browser.findElement(By.xpath('//button[contains(text(), "Send")]'));
|
||||
await browser.get(`https://${app.fqdn}/-/admin/config`);
|
||||
await browser.sleep(3000);
|
||||
const button = await browser.findElement(By.xpath('//button[contains(., "Send")]'));
|
||||
await browser.executeScript('arguments[0].scrollIntoView(true)', button);
|
||||
await browser.findElement(By.xpath('//input[@name="email"]')).sendKeys('test@cloudron.io');
|
||||
await browser.findElement(By.xpath('//button[contains(text(), "Send")]')).click();
|
||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "A testing email has been sent")]')), TIMEOUT);
|
||||
await browser.findElement(By.xpath('//button[contains(., "Send")]')).click();
|
||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(., "A testing email has been sent")]')), TIMEOUT);
|
||||
}
|
||||
|
||||
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
|
||||
@@ -225,7 +208,7 @@ describe('Application life cycle test', function () {
|
||||
it('can send mail', sendMail);
|
||||
it('can logout', logout);
|
||||
|
||||
it('can login', loginOIDC.bind(null, username, password));
|
||||
it('can login', loginOIDC.bind(null, username, password, false));
|
||||
it('can set avatar', setAvatar);
|
||||
it('can get avatar', checkAvatar);
|
||||
|
||||
@@ -233,8 +216,6 @@ describe('Application life cycle test', function () {
|
||||
|
||||
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);
|
||||
@@ -242,7 +223,6 @@ describe('Application life cycle test', function () {
|
||||
it('can restart app', function () { execSync('cloudron restart --app ' + app.id); });
|
||||
|
||||
xit('can login', loginOIDC.bind(null, username, password)); // no need to relogin since session persists
|
||||
it('displays correct clone url', checkCloneUrl);
|
||||
it('can clone the url', cloneRepo);
|
||||
it('file exists in repo', fileExists);
|
||||
|
||||
@@ -265,7 +245,6 @@ describe('Application life cycle test', function () {
|
||||
|
||||
it('can login', loginOIDC.bind(null, username, password));
|
||||
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); });
|
||||
|
||||
|
Reference in New Issue
Block a user