aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Prefer native parser for SSH public key parsing (#23798)Leon Busch-George2023-04-115-7/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this patch, the setting SSH.StartBuiltinServer decides whether the native (Go) implementation is used rather than calling 'ssh-keygen'. It's possible for 'using ssh-keygen' and 'using the built-in server' to be independent. In fact, the gitea rootless container doesn't ship ssh-keygen and can be configured to use the host's SSH server - which will cause the public key parsing mechanism to break. This commit changes the decision to be based on SSH.KeygenPath instead. Any existing configurations with a custom KeygenPath set will continue to function. The new default value of '' selects the native version. The downside of this approach is that anyone who has relying on plain 'ssh-keygen' to have special properties will now be using the native version instead. I assume the exec-variant is only there because /x/crypto/ssh didn't support ssh-ed25519 until 2016. I don't see any other reason for using it so it might be an acceptable risk. Fixes #23363 EDIT: this message was garbled when I tried to get the commit description back in.. Trying to reconstruct it: ## :warning: BREAKING :warning: Users who don't have SSH.KeygenPath explicitly set and rely on the ssh-keygen binary need to set SSH.KeygenPath to 'ssh-keygen' in order to be able to continue using it for public key parsing. There was something else but I can't remember at the moment. EDIT2: It was about `make test` and `make lint`. Can't get them to run. To reproduce the issue, I installed `golang` in `docker.io/node:16` and got: ``` ... go: mvdan.cc/xurls/v2@v2.4.0: unknown revision mvdan.cc/xurls/v2.4.0 go: gotest.tools/v3@v3.4.0: unknown revision gotest.tools/v3.4.0 ... go: gotest.tools/v3@v3.0.3: unknown revision gotest.tools/v3.0.3 ... go: error loading module requirements ``` Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
* Avoid recursing into sub-sub-sub-docs folders when looking for READMEs. (#23695)Nick2023-04-102-5/+5
| | | | | | | Fixes a bug introduced in https://github.com/go-gitea/gitea/pull/22177 which allows finding READMEs like docs/docs/docs/.gitea/.github/docs/README.md Fixes https://github.com/go-gitea/gitea/issues/23694
* [skip ci] Updated translations via CrowdinGiteaBot2023-04-113-17/+35
|
* Use auto-updating, natively hoverable, localized time elements (#23988)Yarden Shoham2023-04-1145-336/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added [GitHub's `relative-time` element](https://github.com/github/relative-time-element) - Converted all formatted timestamps to use this element - No more flashes of unstyled content around time elements - These elements are localized using the `lang` property of the HTML file - Relative (e.g. the activities in the dashboard) and duration (e.g. server uptime in the admin page) time elements are auto-updated to keep up with the current time without refreshing the page - Code that is not needed anymore such as `formatting.js` and parts of `since.go` have been deleted Replaces #21440 Follows #22861 ## Screenshots ### Localized ![image](https://user-images.githubusercontent.com/20454870/230775041-f0af4fda-8f6b-46d3-b8e3-d340c791a50c.png) ![image](https://user-images.githubusercontent.com/20454870/230673393-931415a9-5729-4ac3-9a89-c0fb5fbeeeb7.png) ### Tooltips #### Native for dates ![image](https://user-images.githubusercontent.com/20454870/230797525-1fa0a854-83e3-484c-9da5-9425ab6528a3.png) #### Interactive for relative ![image](https://user-images.githubusercontent.com/115237/230796860-51e1d640-c820-4a34-ba2e-39087020626a.png) ### Auto-update ![rec](https://user-images.githubusercontent.com/20454870/230672159-37480d8f-435a-43e9-a2b0-44073351c805.gif) --------- Signed-off-by: Yarden Shoham <git@yardenshoham.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: delvh <dev.lh@web.de>
* Reserve ".png" suffix for user/org names (#23992)65432023-04-102-1/+13
| | | | | Org/User names ending with ".png" where not functional, so reserve them alternative / close #23908
* Allow adding SSH keys even if SSH server is disabled (#24025)Dmitry Sharshakov2023-04-103-12/+9
| | | | | This is useful in case you want to use them for signature verification. A notice is added to avoid confusion.
* Add placeholder and aria attributes to release and wiki edit page (#24031)silverwind2023-04-104-18/+26
| | | | | - Add placeholders and aria-label all input fields on these two pages - Add margin before wiki change message - Remove labels from release page, replacing them with aria-label
* Add --quiet option to gitea dump (#22969)Fredrik Eriksson2023-04-101-1/+17
| | | | | | | | | | | | Fixes: #19687 The --quiet options to gitea dump silences informational and less important messages, but will still log warnings and errors to console. Very useful in combination with cron backups and '-f -'. Since --verbose and --quiet are incompatible with each other I made it an error to specify both. To get the error message to be printed to stderr I had to make this test after the NewServices()-call, which is why there are three new blocks of code instead of two.
* Remove "inverted" class on creating new label and cancel buttons (#24030)Hester Gong2023-04-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | "inverted" class might not be needed because background of these two buttons is light color. inverted related rule from `semantic.css`: ```css .ui.inverted.green.basic.buttons .button, .ui.inverted.green.buttons .basic.button, .ui.inverted.green.basic.button { background-color: transparent; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) inset; color: #FFFFFF; } ``` Before: <img width="771" alt="截屏2023-04-10 17 21 22" src="https://user-images.githubusercontent.com/17645053/230873878-cc64b3d6-ffa9-4cae-9280-07b06f7829b2.png"> After: <img width="765" alt="截屏2023-04-10 17 22 14" src="https://user-images.githubusercontent.com/17645053/230873956-9412054f-b739-4878-9ee9-57ff65eb7910.png">
* Use actions job link as commit status URL instead of run link (#24023)Jason Song2023-04-101-1/+20
| | | | | | | A commit status is bound to a job, not a run. --------- Co-authored-by: silverwind <me@silverwind.io>
* Make label templates have consistent behavior and priority (#23749)wxiaoguang2023-04-1011-87/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix https://github.com/go-gitea/gitea/issues/23715 Other related PRs: * #23717 * #23716 * #23719 This PR is different from others, it tries to resolve the problem fundamentally (and brings more benefits) Although it looks like some more lines are added, actually many new lines are for tests. ---- Before, the code was just "guessing" the file type and try to parse them. <details> ![image](https://user-images.githubusercontent.com/2114189/228002245-57d58e27-1078-4da9-bf42-5bc0b264c6ce.png) </details> This PR: * Always remember the original option file names, and always use correct parser for them. * Another benefit is that we can sort the Label Templates now (before there was a map, its key order is undefined) ![image](https://user-images.githubusercontent.com/2114189/228002432-931b9f18-3908-484b-a36b-04760c9ad132.png)
* Add actions support to package auth verification (#23729)yp053272023-04-102-37/+22
| | | | | | | | | | | Partly fixes https://github.com/go-gitea/gitea/issues/23642 Error info: ![image](https://user-images.githubusercontent.com/18380374/227827027-4280a368-ec9e-49e0-bb93-6b496ada7cd9.png) ActionsUser (userID -2) is used to login in to docker in action jobs. Due to we have no permission policy settings of ActionsUser now, ActionsUser can only access public registry by this quick fix.
* Fix protected branch for API (#24013)Lunny Xiao2023-04-091-4/+8
| | | Fix #23998
* [skip ci] Updated translations via CrowdinGiteaBot2023-04-1026-109/+75
|
* Fix markdownlint (#24024)silverwind2023-04-091-1/+1
| | | | Should fix the currently broken CI, and also validate via new `complicance-docs` pipeline.
* Introduce lint-md and compliance-docs pipeline (#24021)silverwind2023-04-092-18/+52
| | | | | | | - Add new Make target `lint-md` - Add new Drone pipeline `compliance-docs` - Add `*.md` to docs exclusion/inclusion - Consistently quote `path.include` and `path.exclude` statements in YAML
* Fix https setup doc zh-cn (#24015)Lunny Xiao2023-04-091-6/+6
|
* Replace tribute with text-expander-element for textarea (#23985)silverwind2023-04-096-5/+172
| | | | | | | | | | | | | | The completion popup now behaves now much more as expected than before for the raw textarea: - You can press <kbd>Tab</kbd> or <kbd>Enter</kbd> once the completion popup is open to accept the selected item - The menu does not close automatically when moving the cursor - When you delete text, previously correct suggestions are shown again - If you delete all text until the opening char (`@` or `:`) after applying a suggestion, the popup reappears again - Menu UI has been improved <img width="278" alt="Screenshot 2023-04-07 at 19 43 42" src="https://user-images.githubusercontent.com/115237/230653601-d6517b9f-0988-445e-aa57-5ebfaf5039f3.png">
* Improve GetBoards and getDefaultBoard (#22981)yp053272023-04-093-8/+8
| | | | | | | | Change `GetBoards(ctx context.Context, projectID int64)` to `(p *Project) GetBoards(ctx context.Context) (BoardList, error)` `getDefaultBoard` is same.
* Expand/Collapse all changed files (#23639)sillyguodong2023-04-096-19/+45
| | | | | | | | | | close #23628 Now in `...` dropdown, you can expand or collapse all diff files that have loaded. https://user-images.githubusercontent.com/33891828/227749688-2d406916-3347-49f6-93a5-4092a00e8809.mov Co-authored-by: silverwind <me@silverwind.io>
* Show errors for KaTeX and mermaid on the preview tab (#24009)silverwind2023-04-091-0/+1
| | | | | | | | There is a conflicting fomantic rule that hid the error messages inside the markdown preview tab for things like mermaid or katex. Overruled it to always show these errors. <img width="774" alt="image" src="https://user-images.githubusercontent.com/115237/230738528-322814c1-8994-495e-b901-bbb79b924ccb.png">
* Show protected branch rule names again (#23907)Hester Gong2023-04-091-3/+4
| | | | | | | | | | | | | | | | | | `!important`s for one of the primary label selectors are removed by #23774, so the repository branch protection settings ui will not have the demanding css. This PR modifies `.ui.primary.label` to fix it. Before: <img width="1408" alt="飞书20230404-115410" src="https://user-images.githubusercontent.com/17645053/229683221-ef9c7d5c-68a8-42b0-ba19-ef2d5dfce5f9.png"> After: <img width="1419" alt="截屏2023-04-04 11 56 32" src="https://user-images.githubusercontent.com/17645053/229683469-70cfc92d-d7ef-4323-a7f5-2247810fabce.png"> --------- Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
* Reference the `zh-CN` version of `reverse-proxies` in `https-support` (#24016)Yarden Shoham2023-04-091-1/+1
|
* Fix lint problem in `https-support.zh-cn.md` (#24014)Yarden Shoham2023-04-091-1/+1
| | | https://github.com/DavidAnson/markdownlint/blob/v0.26.2/doc/Rules.md#md051
* docs: HTTPS configuration for zh-cn (#23039)阿卡林刘2023-04-091-0/+101
| | | | | added the Use HTTPS Configuration section Translation Chinese Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
* Re-add initial wiki page text when editing the page (#23984)wxiaoguang2023-04-091-0/+1
| | | | | The `$content` was prepared above, but forgot to put it into the editor Fix #23979
* [skip ci] Updated translations via CrowdinGiteaBot2023-04-092-0/+72
|
* fix: do not escape space between PyPI repository url and package name… ↵Daniel Gunzinger2023-04-081-1/+1
| | | | | | | | | | | | (#23981) …; add trailing slash to PyPI repository URL (in accordance to PEP-503) This should solve Issue #23980, by moving the space in front of the package name and the package name out of the `gitea-origin-url` block. It also adds a trailing slash to the PyPI repository URL in accordance to [Python PEP-503](https://peps.python.org/pep-0503/). Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
* Make bindata static build parse builtin templates correctly (#24003)wxiaoguang2023-04-081-10/+11
| | | | | | | | | | | | | | | | Close #24002 Two problems before: 1. The `log.Fatal` is missing after these `wrapFatal` calls, so the error is not shown to users. 2. `GetTemplateAssetNames` has different behaviors for local files and builtin assets, for builtin assets, it also returns directories, so we need to check the extension again. I have tested with `TAGS="bindata sqlite sqlite_unlock_notify" make build && ./gitea` , it works well now. Before, the server responds internal server error (because it doesn't complete the template parsing)
* Group template helper functions, remove `Printf`, improve template error ↵wxiaoguang2023-04-0815-285/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | messages (#23982) Follow #23328 Major changes: * Group the function in `templates/help.go` by their purposes. It could make future work easier. * Remove the `Printf` helper function, there is already a builtin `printf`. * Remove `DiffStatsWidth`, replace with `Eval` in template * Rename the `NewTextFuncMap` to `mailSubjectTextFuncMap`, it's for subject text template only, no need to make it support HTML functions. ---- And fine tune template error messages, to make it more friendly to developers and users. ![image](https://user-images.githubusercontent.com/2114189/230714245-4fd202d1-2b25-41b2-8be5-03c5fee45091.png) ![image](https://user-images.githubusercontent.com/2114189/230714277-66783577-2a03-49d5-8e8c-ceba5e07a2d4.png) --------- Co-authored-by: silverwind <me@silverwind.io>
* Adjust sticky pr header to cover background (#23956)silverwind2023-04-081-4/+4
| | | | | | | | | | | | Very minor CSS tweak: Adjust sticky PR header to cover the box-shadow of selected files. Before: <img width="1250" alt="Screenshot 2023-04-06 at 22 54 59" src="https://user-images.githubusercontent.com/115237/230492218-4d71da48-a362-4c52-a7f7-01daf4ffa458.png"> After: <img width="1255" alt="Screenshot 2023-04-06 at 22 54 46" src="https://user-images.githubusercontent.com/115237/230492227-c7142210-e535-4da8-b610-37d33dcbb549.png">
* Update github.com/google/go-github to v51 (#23946)harryzcy2023-04-086-38/+45
| | | | `github.com/google/go-github` has new major version releases frequently. It is required to update all import path, in additional to `go.mod`
* Show visibility status of email in own profile (#23900)n0toose2023-04-083-13/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've heard many reports of users getting scared when they see their own email address for their own profile, as they believe that the email field is also visible to other users. Currently, using Incognito mode or going over the Settings is the only "reasonable" way to verify this from the perspective of the user. A locked padlock should be enough to indicate that the email is not visible to anyone apart from the user and the admins. An unlocked padlock is used if the email address is only shown to authenticated users. Some additional string-related changes in the Settings were introduced as well to ensure consistency, and the comments in the relevant tests were improved so as to allow for easier modifications in the future. --- #### Screenshot (EDIT: Scroll down for more up-to-date screenshots) ***Please remove this section before merging.*** ![image](https://user-images.githubusercontent.com/30193966/229572425-909894aa-a7d5-4bf3-92d3-23b1921dcc90.png) This lock should only appear if the email address is explicitly hidden using the `Hide Email Address` setting. The change was originally tested on top of and designed for the Forgejo fork, but I don't expect any problems to arise from this and I don't think that a documentation-related change is strictly necessary. --------- Co-authored-by: silverwind <me@silverwind.io>
* Add eslint-plugin-custom-elements (#23991)silverwind2023-04-083-0/+25
| | | | | Add [eslint-plugin-custom-elements](https://github.com/github/eslint-plugin-custom-elements) and enable all rules that I've found sensible.
* Fix redirect bug when creating issue from a project (#23971)Lunny Xiao2023-04-081-2/+2
| | | Fix #23966
* Drop "unrolled/render" package (#23965)wxiaoguang2023-04-089-73/+77
| | | | | | | | | | | | None of the features of `unrolled/render` package is used. The Golang builtin "html/template" just works well. Then we can improve our HTML render to resolve the "$.root.locale.Tr" problem as much as possible. Next step: we can have a template render pool (by Clone), then we can inject global functions with dynamic context to every `Execute` calls. Then we can use `{{Locale.Tr ....}}` directly in all templates , no need to pass the `$.root.locale` again and again.
* Bump vm2 from 3.9.14 to 3.9.15 (#23990)dependabot[bot]2023-04-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [vm2](https://github.com/patriksimek/vm2) from 3.9.14 to 3.9.15. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/patriksimek/vm2/releases">vm2's releases</a>.</em></p> <blockquote> <h2>3.9.15</h2> <p><strong>Fixes</strong></p> <p><a href="https://github.com/patriksimek/vm2/commit/d534e5785f38307b70d3aac1945260a261a94d50">https://github.com/patriksimek/vm2/commit/d534e5785f38307b70d3aac1945260a261a94d50</a>: Ensure no host objects are passed through to <code>Error.prepareStackTrace</code>. (Thanky to Seongil Wi from KAIST <a href="https://wsp-lab.github.io/">WSP Lab</a>)</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/patriksimek/vm2/blob/master/CHANGELOG.md">vm2's changelog</a>.</em></p> <blockquote> <h2>v3.9.15 (2023-04-06)</h2> <p>[fix] Security fix (see <a href="https://redirect.github.com/patriksimek/vm2/issues/515">patriksimek/vm2#515</a>).</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/patriksimek/vm2/commit/115d1644b7308a5570cba58ec461ae61b96a583c"><code>115d164</code></a> Release 3.9.15</li> <li><a href="https://github.com/patriksimek/vm2/commit/d534e5785f38307b70d3aac1945260a261a94d50"><code>d534e57</code></a> Wrap host objects passes through prepareStackTrace</li> <li>See full diff in <a href="https://github.com/patriksimek/vm2/compare/3.9.14...3.9.15">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vm2&package-manager=npm_and_yarn&previous-version=3.9.14&new-version=3.9.15)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/go-gitea/gitea/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add job.duration in web ui (#23963)yp053272023-04-072-2/+6
| | | | | | | ![image](https://user-images.githubusercontent.com/18380374/230532947-271ac389-8134-4c5e-8f2f-ced4a4fd0ebe.png) ![image](https://user-images.githubusercontent.com/18380374/230532963-e76532c5-7ca1-4b01-ae77-cc1223350fe7.png) Maybe we can change the location of it.
* Fix markup background, improve wiki rendering (#23750)silverwind2023-04-074-27/+29
| | | | | | | | | | | | | | | Fix regression from https://github.com/go-gitea/gitea/pull/23578. Only visible on arc-green. Before: <img width="997" alt="Screenshot 2023-03-27 at 19 14 21" src="https://user-images.githubusercontent.com/115237/228016589-e7cabfb9-bfd0-45fd-9407-6b76c665ed1a.png"> After: <img width="1000" alt="Screenshot 2023-03-27 at 19 14 05" src="https://user-images.githubusercontent.com/115237/228016600-db2e6002-4e2c-4d18-8393-9d7e1f525acb.png"> Fixes: https://github.com/go-gitea/gitea/issues/20625 Fixes: https://github.com/go-gitea/gitea/issues/23718
* Set `ref` to fully-formed of the tag when trigger event is `release` (#23944)sillyguodong2023-04-073-6/+7
| | | | | Fix #23943 When trigger event is `release`, ref should be like `refs/tags/<tag_name>` instead of `CommitID`
* Remove docs from automatically building in Gitpod (#23978)Yarden Shoham2023-04-071-9/+0
| | | | | | | I couldn't find a way to build the docs without `trans-copy` and spinning up a dev environment that generates files untracked by git on startup is not a good development experience Signed-off-by: Yarden Shoham <git@yardenshoham.com>
* Discolor pull request tab labels (#23950)silverwind2023-04-071-3/+3
| | | | | | | | | | | | | | | https://github.com/go-gitea/gitea/pull/22687 has discolored the repo tab labels. This does the same for PR tabs for consistency. Value `0` is still rendered like before. Before: <img width="502" alt="Screenshot 2023-04-06 at 19 35 24" src="https://user-images.githubusercontent.com/115237/230454329-db6244ff-7d7e-4a2f-9240-f618a1c57f8c.png"> After: <img width="497" alt="Screenshot 2023-04-06 at 19 35 07" src="https://user-images.githubusercontent.com/115237/230454321-a0be6551-8c31-45e4-a1fb-ffc0d85d87bf.png"> <img width="497" alt="Screenshot 2023-04-06 at 19 38 37" src="https://user-images.githubusercontent.com/115237/230454570-2fe2aa67-dfa7-4b2e-8c04-8dd40e6e99fc.png">
* Highlight selected file in the PR file tree (#23947)yusifeng2023-04-072-11/+29
| | | | | | | | | before ![before](https://user-images.githubusercontent.com/36984894/230327904-6e712ca2-f777-4cad-99f3-53bc20008180.gif) after ![after](https://user-images.githubusercontent.com/36984894/230327966-6e5dd971-f0df-427a-a80b-6a9b6db6065d.gif)
* Improve markdown editor: width, height, preferred (#23895)wxiaoguang2023-04-077-54/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow #23876 1. Fine tune the heights of the editors (like before) * Auto expand the editor (increase/decrease the height) when editing 2. Remember user's last used editor (textarea/easymde) in LocalStorage, then next time the editor will be switched automatically * No need to introduce extra config option, it satisfies all users, including who prefer EasyMDE 3. Also fix the width problem of Review Panel Screenshot: <details> ![image](https://user-images.githubusercontent.com/2114189/229518585-2e05827e-8355-48f3-a20c-2c8b9e60ce74.png) ![image](https://user-images.githubusercontent.com/2114189/229518173-4caa6da7-6ad9-40e9-bf1a-ceddfcd4b37f.png) ![image](https://user-images.githubusercontent.com/2114189/229507886-148e9b84-9b58-46d1-ba3f-727e1396f476.png) ![image](https://user-images.githubusercontent.com/2114189/229518258-9f522294-1e64-4b06-91ab-ab43b0353aaa.png) ![image](https://user-images.githubusercontent.com/2114189/229507752-6d540ac7-7748-4bb6-bc09-28acab32d31b.png) ![image](https://user-images.githubusercontent.com/2114189/229510899-de322af5-57e8-4dc5-9a61-771a3b1bee79.png) </details> --------- Co-authored-by: silverwind <me@silverwind.io>
* Use Get/Set instead of Rename when Regenerate session id (#23975)wxiaoguang2023-04-071-4/+9
| | | | | | Do not use Rename here, because the old sid and new sid may be in different redis cluster slot. Fix #23869
* Allow repo admins too to delete the repo (#23940)yp053272023-04-073-2/+22
| | | | | | Fixes https://github.com/go-gitea/gitea/issues/23934 We need to check `AccessModeAdmin` in `CanUserDelete` instead of `AccessModeOwner`
* Merge template functions "dict/Dict/mergeinto" (#23932)wxiaoguang2023-04-0716-178/+162
| | | | | | | | | | | | | | | | | | One of the steps in #23328 Before there were 3 different but similar functions: dict/Dict/mergeinto The code was just copied & pasted, no test. This PR defines a new stable `dict` function, it covers all the 3 old functions behaviors, only +160 -171 Future developers do not need to think about or guess the different dict functions, just use one: `dict` Why use `dict` but not `Dict`? Because there are far more `dict` than `Dict` in code already ......
* Use a general Eval function for expressions in templates. (#23927)wxiaoguang2023-04-0715-157/+529
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the proposals in #23328 This PR introduces a simple expression calculator (templates/eval/eval.go), it can do basic expression calculations. Many untested template helper functions like `Mul` `Add` can be replaced by this new approach. Then these `Add` / `Mul` / `percentage` / `Subtract` / `DiffStatsWidth` could all use this `Eval`. And it provides enhancements for Golang templates, and improves readability. Some examples: ---- * Before: `{{Add (Mul $glyph.Row 12) 12}}` * After: `{{Eval $glyph.Row "*" 12 "+" 12}}` ---- * Before: `{{if lt (Add $i 1) (len $.Topics)}}` * After: `{{if Eval $i "+" 1 "<" (len $.Topics)}}` ## FAQ ### Why not use an existing expression package? We need a highly customized expression engine: * do the calculation on the fly, without pre-compiling * deal with int/int64/float64 types, to make the result could be used in Golang template. * make the syntax could be used in the Golang template directly * do not introduce too much complex or strange syntax, we just need a simple calculator. * it needs to strictly follow Golang template's behavior, for example, Golang template treats all non-zero values as truth, but many 3rd packages don't do so. ### What's the benefit? * Developers don't need to add more `Add`/`Mul`/`Sub`-like functions, they were getting more and more. Now, only one `Eval` is enough for all cases. * The new code reads better than old `{{Add (Mul $glyph.Row 12) 12}}`, the old one isn't familiar to most procedural programming developers (eg, the Golang expression syntax). * The `Eval` is fully covered by tests, many old `Add`/`Mul`-like functions were never tested. ### The performance? It doesn't use `reflect`, it doesn't need to parse or compile when used in Golang template, the performance is as fast as native Go template. ### Is it too complex? Could it be unstable? The expression calculator program is a common homework for computer science students, and it's widely used as a teaching and practicing purpose for developers. The algorithm is pretty well-known. The behavior can be clearly defined, it is stable.
* Do not crash when parsing an invalid workflow file (#23972)Jason Song2023-04-073-3/+13
| | | | | Fix #23658. Related to https://gitea.com/gitea/act/pulls/39
* Support "." char as user name for User/Orgs in RSS/ATOM/GPG/KEYS path ... ↵65432023-04-077-15/+107
| | | | | | | (#23874) - close #22301 workaround for https://github.com/go-chi/chi/issues/781