Skip to content

Conversation

@lunny
Copy link
Member

@lunny lunny commented Jul 24, 2025

Partially fix #32018

git config and git remote write operations create a temporary file named config.lock. Since these operations are not atomic, they must not be run in parallel. If two requests attempt to modify the same repository concurrently—such as during a compare operation—one may fail due to the presence of an existing config.lock file.

In cases where config.lock is left behind due to an unexpected program exit, a global lock mechanism could allow us to safely remove the stale lock file when a related error is detected. While this behavior is not yet implemented in this PR, it is planned for a future enhancement.

…lve possible conflict when updating repository git config file
@lunny lunny added the type/bug label Jul 24, 2025
@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Jul 24, 2025
@github-actions github-actions bot added modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code labels Jul 24, 2025
@wxiaoguang
Copy link
Contributor

No, it doesn't fix #32018

Copy link
Contributor

@wxiaoguang wxiaoguang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't see why it is worth or right to do so, and don't see why it fixes that issue

@GiteaBot GiteaBot added lgtm/blocked A maintainer has reservations with the PR and thus it cannot be merged and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Jul 24, 2025
@lunny
Copy link
Member Author

lunny commented Jul 24, 2025

Don't see why it is worth or right to do so, and don't see why it fixes that issue

git config and git remote write operations create a temporary file named config.lock. Since these operations are not atomic, they must not be run in parallel. If two requests attempt to modify the same repository concurrently—such as during a compare operation—one may fail due to the presence of an existing config.lock file.

In cases where config.lock is left behind due to an unexpected program exit, a global lock mechanism could allow us to safely remove the stale lock file when a related error is detected. While this behavior is not yet implemented in this PR, it is planned for a future enhancement.

@wxiaoguang
Copy link
Contributor

wxiaoguang commented Jul 25, 2025

So it is an improvement but doesn't "Fix #32018", right?

But does it really need the "global lock"? Is it possible that git already uses "*.lock" files by flock for global lock? Then Gitea shouldn't do anything more?

@lunny
Copy link
Member Author

lunny commented Jul 25, 2025

So it is an improvement but doesn't "Fix #32018", right?

But does it really need the "global lock"? Is it possible that git already uses "*.lock" files by flock for global lock? Then Gitea shouldn't do anything more?

The Git command-line interface is primarily designed for human interaction. When a git config write operation is initiated and a config.lock file is created, any subsequent git config write operation will immediately fail instead of waiting for the first one to complete.

While I couldn’t find official documentation confirming this behavior, the implementation can be found in the Git source code here:
https://github.com/git/git/blob/97e14d99f6def189b0f786ac6207b792ca3197b1/config.c#L3199

Based on this, it appears that Git does not implement a locking mechanism that causes subsequent operations to wait—it simply fails fast.

I believe this change partially addresses #32018, as there are three possible causes for the issue:

  • Concurrent requests attempting to compare between the same base and forked repositories.
  • A Git command exits unexpectedly, leaving behind a config.lock file. I plan to implement automatic cleanup of stale config.lock files in another PR, which would help resolve this case.
  • An administrator manually runs Git commands on the Gitea server. This scenario is outside the scope of this PR, and I don’t believe it’s something we can reliably handle within the application.

@wxiaoguang
Copy link
Contributor

wxiaoguang commented Jul 25, 2025

Git already does a file-based "global lock"

https://github.com/git/git/blob/master/lockfile.c#L104 (config.c hold_lock_file_for_update -> lockfile.c lock_file_timeout )

I do not think this PR is worth or right.


Update: git passes timeout=0, so it only locks "once"

@wxiaoguang wxiaoguang dismissed their stale review July 25, 2025 02:28

dismiss

@GiteaBot GiteaBot added lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. and removed lgtm/blocked A maintainer has reservations with the PR and thus it cannot be merged labels Jul 25, 2025
@wxiaoguang wxiaoguang marked this pull request as draft July 25, 2025 03:15
@lunny lunny marked this pull request as ready for review July 26, 2025 18:06
@lunny lunny requested a review from wxiaoguang July 26, 2025 18:06
@GiteaBot GiteaBot added the lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. label Aug 28, 2025
@lunny lunny added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Sep 1, 2025
@GiteaBot
Copy link
Collaborator

GiteaBot commented Sep 1, 2025

@lunny please fix the merge conflicts. 🍵

@GiteaBot GiteaBot removed the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Sep 1, 2025
@lunny lunny added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Sep 1, 2025
@lunny lunny enabled auto-merge (squash) September 1, 2025 18:26
@lunny lunny merged commit d2e994d into go-gitea:main Sep 1, 2025
26 checks passed
@GiteaBot GiteaBot removed the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Sep 1, 2025
@lunny lunny deleted the lunny/fix_git_config_conflict branch September 1, 2025 18:48
hiifong added a commit to hiifong/gitea that referenced this pull request Sep 2, 2025
* main:
  [skip ci] Updated translations via Crowdin
  Use github.com/mholt/archives replace github.com/mholt/archiver (go-gitea#35390)
  Move some functions from package git to gitrepo (go-gitea#33910)
  Move git config/remote to gitrepo package and add global lock to resolve possible conflict when updating repository git config file (go-gitea#35151)
  Move HasWiki to repository service package (go-gitea#33912)
  Rename UpdateBranch API to RenameBranch API (go-gitea#35374)
zjjhot added a commit to zjjhot/gitea that referenced this pull request Sep 2, 2025
* giteaofficial/main:
  [skip ci] Updated translations via Crowdin
  Use github.com/mholt/archives replace github.com/mholt/archiver (go-gitea#35390)
  Move some functions from package git to gitrepo (go-gitea#33910)
  Move git config/remote to gitrepo package and add global lock to resolve possible conflict when updating repository git config file (go-gitea#35151)
  Move HasWiki to repository service package (go-gitea#33912)
  Rename UpdateBranch API to RenameBranch API (go-gitea#35374)
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Oct 30, 2025
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gitea/gitea](https://github.com/go-gitea/gitea) | minor | `1.24.7` -> `1.25.0` |

---

### Release Notes

<details>
<summary>go-gitea/gitea (gitea/gitea)</summary>

### [`v1.25.0`](https://github.com/go-gitea/gitea/releases/tag/v1.25.0)

[Compare Source](go-gitea/gitea@v1.24.7...v1.25.0)

- BREAKING
  - Return 201 Created for CreateVariable API responses ([#&#8203;34517](go-gitea/gitea#34517))
  - Add label 'state' to metric 'gitea\_users' ([#&#8203;34326](go-gitea/gitea#34326))
- SECURITY
  - Upgrade security public key ([#&#8203;34956](go-gitea/gitea#34956))
  - Also include all security fixes in 1.24.x after 1.25.0-rc0
- FEATURES
  - Stream repo zip/tar.gz/bundle achives by default ([#&#8203;35487](go-gitea/gitea#35487))
  - Use configurable remote name for git commands ([#&#8203;35172](go-gitea/gitea#35172))
  - Send email on Workflow Run Success/Failure ([#&#8203;34982](go-gitea/gitea#34982))
  - Refactor OpenIDConnect to support SSH/FullName sync ([#&#8203;34978](go-gitea/gitea#34978))
  - Refactor repo contents API and add "contents-ext" API ([#&#8203;34822](go-gitea/gitea#34822))
  - Add support for 3D/CAD file formats preview ([#&#8203;34794](go-gitea/gitea#34794))
  - Improve instance wide ssh commit signing ([#&#8203;34341](go-gitea/gitea#34341))
  - Edit file workflow for creating a fork and proposing changes ([#&#8203;34240](go-gitea/gitea#34240))
  - Follow file symlinks in the UI to their target ([#&#8203;28835](go-gitea/gitea#28835))
  - Allow renaming/moving binary/LFS files in the UI ([#&#8203;34350](go-gitea/gitea#34350))
- PERFORMANCE
  - Improve the performance when detecting the file editable ([#&#8203;34653](go-gitea/gitea#34653))
- ENHANCEMENTS
  - Enable more markdown paste features in textarea editor ([#&#8203;35494](go-gitea/gitea#35494))
  - Don't store repo archives on `gitea dump` ([#&#8203;35467](go-gitea/gitea#35467))
  - Always return the relevant status information, even if no status exists. ([#&#8203;35335](go-gitea/gitea#35335))
  - Add start time on perf trace because it seems some steps haven't been recorded. ([#&#8203;35282](go-gitea/gitea#35282))
  - Remove deprecated auth sources ([#&#8203;35272](go-gitea/gitea#35272))
  - When sorting issues by nearest due date, issues without due date should be sorted ascending ([#&#8203;35267](go-gitea/gitea#35267))
  - Disable field count validation of CSV viewer ([#&#8203;35228](go-gitea/gitea#35228))
  - Add `has_code` to repository REST API ([#&#8203;35214](go-gitea/gitea#35214))
  - Display pull request in merged commit view ([#&#8203;35202](go-gitea/gitea#35202))
  - Support Basic Authentication for archive downloads ([#&#8203;35087](go-gitea/gitea#35087))
  - Add hover background to table rows in user and repo admin page ([#&#8203;35072](go-gitea/gitea#35072))
  - Partially refresh notifications list ([#&#8203;35010](go-gitea/gitea#35010))
  - Also display "recently pushed branch" alert on PR view ([#&#8203;35001](go-gitea/gitea#35001))
  - Refactor time tracker UI ([#&#8203;34983](go-gitea/gitea#34983))
  - Improve CLI commands ([#&#8203;34973](go-gitea/gitea#34973))
  - Improve project & label color picker and image scroll ([#&#8203;34971](go-gitea/gitea#34971))
  - Improve NuGet API Parity ([#&#8203;21291](go-gitea/gitea#21291)) ([#&#8203;34940](go-gitea/gitea#34940))
  - Support getting last commit message using contents-ext API ([#&#8203;34904](go-gitea/gitea#34904))
  - Adds title on branch commit counts ([#&#8203;34869](go-gitea/gitea#34869))
  - Add "Cancel workflow run" button to Actions list page ([#&#8203;34817](go-gitea/gitea#34817))
  - Improve img lazy loading ([#&#8203;34804](go-gitea/gitea#34804))
  - Forks repository list page follow other repositories page ([#&#8203;34784](go-gitea/gitea#34784))
  - Add ff\_only parameter to POST /repos/{owner}/{repo}/merge-upstream ([#&#8203;34770](go-gitea/gitea#34770))
  - Rework delete org and rename org UI ([#&#8203;34762](go-gitea/gitea#34762))
  - Improve nuget/rubygems package registries ([#&#8203;34741](go-gitea/gitea#34741))
  - Add repo file tree item link behavior ([#&#8203;34730](go-gitea/gitea#34730))
  - Add issue delete notifier ([#&#8203;34592](go-gitea/gitea#34592))
  - Improve Actions list ([#&#8203;34530](go-gitea/gitea#34530))
  - Add a default tab on repo header when migrating ([#&#8203;34503](go-gitea/gitea#34503))
  - Add post-installation redirect based on admin account status ([#&#8203;34493](go-gitea/gitea#34493))
  - Trigger 'unlabeled' event when label is Deleted from PR ([#&#8203;34316](go-gitea/gitea#34316))
  - Support annotated tags when using create release API ([#&#8203;31840](go-gitea/gitea#31840))
  - Use lfs label for lfs file rather than a long description ([#&#8203;34363](go-gitea/gitea#34363))
  - Add "View workflow file" to Actions list page ([#&#8203;34538](go-gitea/gitea#34538))
  - Move organization's visibility change to danger zone. ([#&#8203;34814](go-gitea/gitea#34814))
  - Don't block site admin's operation if SECRET\_KEY is lost ([#&#8203;35721](go-gitea/gitea#35721))
  - Make restricted users can access public repositories ([#&#8203;35693](go-gitea/gitea#35693))
  - The status icon of the Action step is consistent with GitHub ([#&#8203;35618](go-gitea/gitea#35618)) [#&#8203;35621](go-gitea/gitea#35621)
- BUGFIXES
  - Update tab title when navigating file tree ([#&#8203;35757](go-gitea/gitea#35757)) [#&#8203;35772](go-gitea/gitea#35772)
  - Fix "ref-issue" handling in markup ([#&#8203;35739](go-gitea/gitea#35739)) [#&#8203;35771](go-gitea/gitea#35771)
  - Fix webhook to prevent tag events from bypassing branch filters targets ([#&#8203;35567](go-gitea/gitea#35567)) [#&#8203;35577](go-gitea/gitea#35577)
  - Fix markup init after issue comment editing ([#&#8203;35536](go-gitea/gitea#35536)) [#&#8203;35537](go-gitea/gitea#35537)
  - Fix creating pull request failure when the target branch name is the same as some tag ([#&#8203;35552](go-gitea/gitea#35552)) [#&#8203;35582](go-gitea/gitea#35582)
  - Fix auto-expand and auto-scroll for actions logs ([#&#8203;35570](go-gitea/gitea#35570)) ([#&#8203;35583](go-gitea/gitea#35583)) [#&#8203;35586](go-gitea/gitea#35586)
  - Use inputs context when parsing workflows ([#&#8203;35590](go-gitea/gitea#35590)) [#&#8203;35595](go-gitea/gitea#35595)
  - Fix diffpatch API endpoint ([#&#8203;35610](go-gitea/gitea#35610)) [#&#8203;35613](go-gitea/gitea#35613)
  - Creating push comments before invoke pull request checking ([#&#8203;35647](go-gitea/gitea#35647)) [#&#8203;35668](go-gitea/gitea#35668)
  - Fix missing Close when error occurs and abused connection pool ([#&#8203;35658](go-gitea/gitea#35658)) [#&#8203;35670](go-gitea/gitea#35670)
  - Fix build ([#&#8203;35674](go-gitea/gitea#35674))
  - Use LFS object size instead of blob size when viewing a LFS file ([#&#8203;35679](go-gitea/gitea#35679))
  - Fix workflow run event status while rerunning a failed job ([#&#8203;35689](go-gitea/gitea#35689))
  - Avoid emoji mismatch and allow to only enable chosen emojis ([#&#8203;35692](go-gitea/gitea#35692))
  - Refactor legacy code, fix LFS auth bypass, fix symlink bypass ([#&#8203;35708](go-gitea/gitea#35708))
  - Fix various trivial problems ([#&#8203;35714](go-gitea/gitea#35714))
  - Fix attachment file size limit in server backend ([#&#8203;35519](go-gitea/gitea#35519))
  - Honor delete branch on merge repo setting when using merge API ([#&#8203;35488](go-gitea/gitea#35488))
  - Fix external render, make iframe render work ([#&#8203;35727](go-gitea/gitea#35727), [#&#8203;35730](go-gitea/gitea#35730))
  - Upgrade go mail to 0.7.2 ([#&#8203;35748](go-gitea/gitea#35748))
  - Revert [#&#8203;18491](go-gitea/gitea#18491), fix oauth2 client link account ([#&#8203;35745](go-gitea/gitea#35745))
  - Fix different behavior in status check pattern matching with double stars ([#&#8203;35474](go-gitea/gitea#35474))
  - Fix overflow in notifications list ([#&#8203;35446](go-gitea/gitea#35446))
  - Fix package link setting can only list limited repositories ([#&#8203;35394](go-gitea/gitea#35394))
  - Extend comment treepath length ([#&#8203;35389](go-gitea/gitea#35389))
  - Fix font-size in inline code comment preview ([#&#8203;35209](go-gitea/gitea#35209))
  - Move git config/remote to gitrepo package and add global lock to resolve possible conflict when updating repository git config file ([#&#8203;35151](go-gitea/gitea#35151))
  - Change some columns from text to longtext and fix column wrong type caused by xorm ([#&#8203;35141](go-gitea/gitea#35141))
  - Redirect to a presigned URL of HEAD for HEAD requests ([#&#8203;35088](go-gitea/gitea#35088))
  - Fix git commit committer parsing and add some tests ([#&#8203;35007](go-gitea/gitea#35007))
  - Fix OCI manifest parser ([#&#8203;34797](go-gitea/gitea#34797))
  - Refactor FindOrgOptions to use enum instead of bool, fix membership visibility ([#&#8203;34629](go-gitea/gitea#34629))
  - Fix notification count positioning for variable-width elements ([#&#8203;34597](go-gitea/gitea#34597))
  - Keeping consistent between UI and API about combined commit status state and fix some bugs ([#&#8203;34562](go-gitea/gitea#34562))
  - Fix possible panic ([#&#8203;34508](go-gitea/gitea#34508))
  - Fix autofocus behavior ([#&#8203;34397](go-gitea/gitea#34397))
  - Fix Actions API ([#&#8203;35204](go-gitea/gitea#35204))
  - Fix ListWorkflowRuns OpenAPI response model. ([#&#8203;35026](go-gitea/gitea#35026))
  - Small fix in Pull Requests page ([#&#8203;34612](go-gitea/gitea#34612))
  - Fix http auth header parsing ([#&#8203;34936](go-gitea/gitea#34936))
  - Fix modal + form abuse ([#&#8203;34921](go-gitea/gitea#34921))
  - Fix PR toggle WIP ([#&#8203;34920](go-gitea/gitea#34920))
  - Fix log fmt ([#&#8203;34810](go-gitea/gitea#34810))
  - Replace stopwatch toggle with explicit start/stop actions ([#&#8203;34818](go-gitea/gitea#34818))
  - Fix some package registry problems ([#&#8203;34759](go-gitea/gitea#34759))
  - Fix RPM package download routing & missing package version count ([#&#8203;34909](go-gitea/gitea#34909))
  - Fix repo search input height ([#&#8203;34330](go-gitea/gitea#34330))
  - Fix "The sidebar of the repository file list does not have a fixed height [#&#8203;34298](go-gitea/gitea#34298)" ([#&#8203;34321](go-gitea/gitea#34321))
  - Fix minor typos in two files #HSFDPMUW ([#&#8203;34944](go-gitea/gitea#34944))
  - Fix actions skipped commit status indicator ([#&#8203;34507](go-gitea/gitea#34507))
  - Fix job status aggregation logic ([#&#8203;35000](go-gitea/gitea#35000))
  - Fix broken OneDev migration caused by various REST API changes in OneDev 7.8.0 and later ([#&#8203;35216](go-gitea/gitea#35216))
  - Fix typo in oauth2\_full\_name\_claim\_name string ([#&#8203;35199](go-gitea/gitea#35199))
  - Fix typo in locale\_en-US.ini ([#&#8203;35196](go-gitea/gitea#35196))
- API
  - Exposing TimeEstimate field in the API ([#&#8203;35475](go-gitea/gitea#35475))
  - UpdateBranch API supports renaming a branch ([#&#8203;35374](go-gitea/gitea#35374))
  - Add `owner` and `parent` fields clarification to docs ([#&#8203;35023](go-gitea/gitea#35023))
  - Improve OAuth2 provider (correct Issuer, respect ENABLED) ([#&#8203;34966](go-gitea/gitea#34966))
  - Add a `login`/`login-name`/`username` disambiguation to affected endpoint parameters and response/request models ([#&#8203;34901](go-gitea/gitea#34901))
  - Do not mutate incoming options to SearchRepositoryByName ([#&#8203;34553](go-gitea/gitea#34553))
  - Do not mutate incoming options to RenderUserSearch and SearchUsers  ([#&#8203;34544](go-gitea/gitea#34544))
  - Export repo's manual merge settings ([#&#8203;34502](go-gitea/gitea#34502))
  - Add date range filtering to commit retrieval endpoints ([#&#8203;34497](go-gitea/gitea#34497))
  - Add endpoint deleting workflow run ([#&#8203;34337](go-gitea/gitea#34337))
  - Add workflow\_run api + webhook ([#&#8203;33964](go-gitea/gitea#33964))
- REFACTOR
  - Move updateref and removeref to gitrepo and remove unnecessary open repository ([#&#8203;35511](go-gitea/gitea#35511))
  - Remove unused param `doer` ([#&#8203;34545](go-gitea/gitea#34545))
  - Split GetLatestCommitStatus as two functions ([#&#8203;34535](go-gitea/gitea#34535))
  - Use gitrepo.SetDefaultBranch when set default branch of wiki repository ([#&#8203;33911](go-gitea/gitea#33911))
  - Refactor editor ([#&#8203;34780](go-gitea/gitea#34780))
  - Refactor packages ([#&#8203;34777](go-gitea/gitea#34777))
  - Refactor container package ([#&#8203;34877](go-gitea/gitea#34877))
  - Refactor "change file" API ([#&#8203;34855](go-gitea/gitea#34855))
  - Rename pull request GetGitRefName to GetGitHeadRefName to prepare introducing GetGitMergeRefName ([#&#8203;35093](go-gitea/gitea#35093))
  - Move git command to git/gitcmd ([#&#8203;35483](go-gitea/gitea#35483))
  - Use db.WithTx/WithTx2 instead of TxContext when possible ([#&#8203;35428](go-gitea/gitea#35428))
  - Support Node.js 22.6 with type stripping ([#&#8203;35427](go-gitea/gitea#35427))
  - Migrate tools and configs to typescript, require node.js >= 22.18.0 ([#&#8203;35421](go-gitea/gitea#35421))
  - Check user and repo for redirects when using git via SSH transport ([#&#8203;35416](go-gitea/gitea#35416))
  - Remove the duplicated function GetTags ([#&#8203;35375](go-gitea/gitea#35375))
  - Refactor to use reflect.TypeFor ([#&#8203;35370](go-gitea/gitea#35370))
  - Deleting branch could delete broken branch which has database record but git branch is missing ([#&#8203;35360](go-gitea/gitea#35360))
  - Exit with success when already up to date ([#&#8203;35312](go-gitea/gitea#35312))
  - Split admin config settings templates to make it maintain easier ([#&#8203;35294](go-gitea/gitea#35294))
  - A small refactor to use context in the service layer ([#&#8203;35179](go-gitea/gitea#35179))
  - Refactor and update mail templates ([#&#8203;35150](go-gitea/gitea#35150))
  - Use db.WithTx/WithTx2 instead of TxContext when possible ([#&#8203;35130](go-gitea/gitea#35130))
  - Align `issue-title-buttons` with `list-header` ([#&#8203;35018](go-gitea/gitea#35018))
  - Add Notifications section in User Settings ([#&#8203;35008](go-gitea/gitea#35008))
  - Tweak placement of diff file menu ([#&#8203;34999](go-gitea/gitea#34999))
  - Refactor mail template and support preview ([#&#8203;34990](go-gitea/gitea#34990))
  - Rerun job only when run is done ([#&#8203;34970](go-gitea/gitea#34970))
  - Merge index.js ([#&#8203;34963](go-gitea/gitea#34963))
  - Refactor "delete-button" to "link-action" ([#&#8203;34962](go-gitea/gitea#34962))
  - Refactor webhook and fix feishu/lark secret ([#&#8203;34961](go-gitea/gitea#34961))
  - Exclude devtest.ts from tailwindcss ([#&#8203;34935](go-gitea/gitea#34935))
  - Refactor head navbar icons ([#&#8203;34922](go-gitea/gitea#34922))
  - Improve html escape ([#&#8203;34911](go-gitea/gitea#34911))
  - Improve tags list page ([#&#8203;34898](go-gitea/gitea#34898))
  - Improve `labels-list` rendering ([#&#8203;34846](go-gitea/gitea#34846))
  - Remove unused variable HUGO\_VERSION ([#&#8203;34840](go-gitea/gitea#34840))
  - Correct migration tab name ([#&#8203;34826](go-gitea/gitea#34826))
  - Refactor template helper ([#&#8203;34819](go-gitea/gitea#34819))
  - Use `shallowRef` instead of `ref` in `.vue` files where possible ([#&#8203;34813](go-gitea/gitea#34813))
  - Use standalone function to update repository cols ([#&#8203;34811](go-gitea/gitea#34811))
  - Refactor wiki ([#&#8203;34805](go-gitea/gitea#34805))
  - Remove unnecessary duplicate code ([#&#8203;34733](go-gitea/gitea#34733))
  - Refactor embedded assets and drop unnecessary dependencies ([#&#8203;34692](go-gitea/gitea#34692))
  - Update x/crypto package and make builtin SSH use default parameters ([#&#8203;34667](go-gitea/gitea#34667))
  - Add `--color-logo`, matching the logo's primary color ([#&#8203;34639](go-gitea/gitea#34639))
  - Add openssh-keygen to rootless image ([#&#8203;34625](go-gitea/gitea#34625))
  - Replace update repository function in some places ([#&#8203;34566](go-gitea/gitea#34566))
  - Change "rejected" to "changes requested" in 3rd party PR review notification ([#&#8203;34481](go-gitea/gitea#34481))
  - Remove legacy template helper functions ([#&#8203;34426](go-gitea/gitea#34426))
  - Use run-name and evaluate workflow variables ([#&#8203;34301](go-gitea/gitea#34301))
  - Move HasWiki to repository service package ([#&#8203;33912](go-gitea/gitea#33912))
  - Move some functions from package git to gitrepo ([#&#8203;33910](go-gitea/gitea#33910))
- TESTING
  - Add webhook test for push event ([#&#8203;34442](go-gitea/gitea#34442))
  - Add a webhook push test for dev branch ([#&#8203;34421](go-gitea/gitea#34421))
  - Add migrations tests ([#&#8203;34456](go-gitea/gitea#34456)) ([#&#8203;34498](go-gitea/gitea#34498))
- STYLE
  - Enforce explanation for necessary nolints and fix bugs ([#&#8203;34883](go-gitea/gitea#34883))
  - Fix remaining issues after `gopls modernize` formatting ([#&#8203;34771](go-gitea/gitea#34771))
  - Update gofumpt, add go.mod ignore directive ([#&#8203;35434](go-gitea/gitea#35434))
  - Enforce nolint scope ([#&#8203;34851](go-gitea/gitea#34851))
  - Enable gocritic `equalFold` and fix issues ([#&#8203;34952](go-gitea/gitea#34952))
  - Run `gopls modernize` on codebase ([#&#8203;34751](go-gitea/gitea#34751))
  - Upgrade `gopls` to v0.19.0, add `make fix` ([#&#8203;34772](go-gitea/gitea#34772))
- BUILD
  - bump archives\&rar dep ([#&#8203;35637](go-gitea/gitea#35637)) [#&#8203;35638](go-gitea/gitea#35638)
  - Use github.com/mholt/archives replace github.com/mholt/archiver ([#&#8203;35390](go-gitea/gitea#35390))
  - Update JS and PY dependencies ([#&#8203;35444](go-gitea/gitea#35444))
  - Upgrade devcontainer go version to 1.24.6 ([#&#8203;35298](go-gitea/gitea#35298))
  - Upgrade golang to 1.25.1 and add descriptions for the swagger structs' fields ([#&#8203;35418](go-gitea/gitea#35418))
  - Update JS and PY deps ([#&#8203;35191](go-gitea/gitea#35191))
  - Update JS and PY dependencies ([#&#8203;34391](go-gitea/gitea#34391))
  - Update go tool dependencies ([#&#8203;34845](go-gitea/gitea#34845))
  - Update `uint8-to-base64`, remove type stub ([#&#8203;34844](go-gitea/gitea#34844))
  - Switch to `@resvg/resvg-wasm` for `generate-images` ([#&#8203;35415](go-gitea/gitea#35415))
  - Switch to pnpm ([#&#8203;35274](go-gitea/gitea#35274))
  - Update chroma to v2.20.0 ([#&#8203;35220](go-gitea/gitea#35220))
  - Migrate to urfave v3 ([#&#8203;34510](go-gitea/gitea#34510))
  - Update JS deps, regenerate SVGs ([#&#8203;34640](go-gitea/gitea#34640))
  - Upgrade dependencies ([#&#8203;35384](go-gitea/gitea#35384))
  - Bump `@github/relative-time-element` to v4.4.8 ([#&#8203;34413](go-gitea/gitea#34413))
  - Update JS dependencies ([#&#8203;34951](go-gitea/gitea#34951))
  - Upgrade orgmode to v1.8.0 ([#&#8203;34721](go-gitea/gitea#34721))
  - Raise minimum Node.js version to 20, test on 24 ([#&#8203;34713](go-gitea/gitea#34713))
  - Update JS deps ([#&#8203;34701](go-gitea/gitea#34701))
  - Upgrade htmx to 2.0.6 ([#&#8203;34887](go-gitea/gitea#34887))
  - Update eslint to v9 ([#&#8203;35485](go-gitea/gitea#35485))
  - Update js dependencies ([#&#8203;35429](go-gitea/gitea#35429))
  - Clean up npm dependencies ([#&#8203;35508](go-gitea/gitea#35508))
  - Clean up npm dependencies ([#&#8203;35484](go-gitea/gitea#35484))
  - Bump setup-node to v5 ([#&#8203;35448](go-gitea/gitea#35448))
- MISC
  - Add gitignore rules to exclude LLM instruction files ([#&#8203;35076](go-gitea/gitea#35076))
  - Gitignore: Visual Studio settings folder ([#&#8203;34375](go-gitea/gitea#34375))
  - Improve language in en-US locale strings ([#&#8203;35124](go-gitea/gitea#35124))
  - Fixed all grammatical errors in locale\_en-US.ini ([#&#8203;35053](go-gitea/gitea#35053))
  - Docs/fix typo and grammar in CONTRIBUTING.md ([#&#8203;35024](go-gitea/gitea#35024))
  - Improve english grammar and readability in locale\_en-US.ini ([#&#8203;35017](go-gitea/gitea#35017))

Instances on **[Gitea Cloud](https://cloud.gitea.com)** will be automatically upgraded to this version during the specified maintenance window.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbWFnZSJdfQ==-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/1903
Co-authored-by: Renovate Bot <[email protected]>
Co-committed-by: Renovate Bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code type/bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GetCompareInfo, AddRemote: exit status 128 - error: could not lock config file config: File exists

5 participants