Beyond coding. We forge. https://forgejo.org
  • Go 81.5%
  • go-html-template 10.6%
  • JavaScript 2.7%
  • CSS 1.9%
  • TypeScript 1.8%
  • Other 1.3%
Find a file
Andrew Cassidy 252efbda5c fix: LFS GC is never running because of a bug in the parsing of the INI file (#9202)
After https://github.com/go-gitea/gitea/pull/22385 introduced LFS GC, it never worked due to a bug in the INI library: fields in structs embedded more than one level deep are not populated from the INI file.

This PR fixes the issue by replacing the multi-level embedded struct with a single-level struct for parsing the cron.gc_lfs configuration.

Added a new test for retrieving cron settings to demonstrate the bug in the INI package.

---

Fix #9048 by cherrypicking the fix from Gitea

Gitea PR: https://github.com/go-gitea/gitea/pull/35198

Confirmed to work on my own instance, I now see the cron schedule for gc_lfs listed in the site admin menu where it was empty before

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Bug fixes
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/9202): <!--number 9202 --><!--line 0 --><!--description TEZTIEdDIGlzIG5ldmVyIHJ1bm5pbmcgYmVjYXVzZSBvZiBhIGJ1ZyBpbiB0aGUgcGFyc2luZyBvZiB0aGUgSU5JIGZpbGU=-->LFS GC is never running because of a bug in the parsing of the INI file<!--description-->
<!--end release-notes-assistant-->

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9202
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Andrew Cassidy <drewcassidy@me.com>
Co-committed-by: Andrew Cassidy <drewcassidy@me.com>
2025-09-09 22:32:49 +02:00
.devcontainer
.forgejo chore(renovate): don't use go proxy for forgejo-code (#9217) 2025-09-09 11:25:09 +02:00
assets chore: replace gopkg.in/yaml.v3 with go.yaml.in/yaml/v3 (#8956) 2025-08-20 15:31:12 +02:00
build chore(i18n): migrate migration descriptions to json (#9041) 2025-08-31 08:19:19 +02:00
cmd feat: Replace mholt/archiver/v3 with mholt/archives (#7025) 2025-08-08 06:53:20 +02:00
contrib chore: collect coverage using GOCOVERDIR (#9004) 2025-08-26 10:10:46 +02:00
custom/conf feat: Global 2FA enforcement (#8753) 2025-08-15 10:56:45 +02:00
docker
models fix: quota evaluation rules not working properly (#9033) 2025-09-08 01:05:55 +02:00
modules fix: LFS GC is never running because of a bug in the parsing of the INI file (#9202) 2025-09-09 22:32:49 +02:00
options feat: support Markdown editor bold & italic keyboard shortcuts (#9110) 2025-09-08 11:44:21 +02:00
public Add support for migrating from Pagure (#8513) 2025-08-11 16:56:26 +02:00
release-notes fix!: use run ID instead of run Index in artifacts download web views 2025-08-27 08:53:20 +02:00
release-notes-published chore(release-notes): Forgejo v12.0.3 (#9187) 2025-09-06 08:49:02 +02:00
releases/images
routers fix: package cleanup rules are not applied when there are more than 200 packages (depends on MAX_RESPONSE_ITEMS) (#9219) 2025-09-09 17:39:35 +02:00
services fix: LFS GC is never running because of a bug in the parsing of the INI file (#9202) 2025-09-09 22:32:49 +02:00
templates feat: support Markdown editor bold & italic keyboard shortcuts (#9110) 2025-09-08 11:44:21 +02:00
tests fix: package cleanup rules are not applied when there are more than 200 packages (depends on MAX_RESPONSE_ITEMS) (#9219) 2025-09-09 17:39:35 +02:00
tools
web_src feat: support Markdown editor bold & italic keyboard shortcuts (#9110) 2025-09-08 11:44:21 +02:00
.air.toml
.deadcode-out Sent user activities to distant federated server (#8792) 2025-08-06 16:16:13 +02:00
.dockerignore
.editorconfig
.envrc.example
.gitattributes
.gitignore feat(build): improve lint-locale-usage further (#8736) 2025-08-27 23:47:34 +02:00
.gitmodules
.gitpod.yml
.golangci.yml chore: depguard gopkg.in/yaml.v3 (#8980) 2025-08-21 14:17:43 +02:00
.ignore
.mailmap
.markdownlint.yaml
.npmrc
.release-notes-assistant.yaml
.spectral.yaml
.yamllint.yaml
BSDmakefile
CODEOWNERS feat(build): improve lint-locale-usage further (#8736) 2025-08-27 23:47:34 +02:00
CONTRIBUTING.md
DCO
Dockerfile
Dockerfile.rootless
eslint.config.mjs Update dependency eslint-plugin-unicorn to v61 (forgejo) (#9198) 2025-09-07 14:55:32 +02:00
flake.lock
flake.nix
go.mod Update module github.com/go-chi/chi/v5 to v5.2.3 (forgejo) (#9163) 2025-09-04 15:05:36 +02:00
go.sum Update module github.com/go-chi/chi/v5 to v5.2.3 (forgejo) (#9163) 2025-09-04 15:05:36 +02:00
LICENSE
main.go
Makefile refactored for lazy evaluation of MIGRATION_PACKAGES and GO_TEST_PACKAGES (#9208) 2025-09-09 09:48:20 +02:00
manifest.scm
package-lock.json Update dependency wrap-ansi to v9.0.2 (forgejo) (#9213) 2025-09-09 02:12:12 +02:00
package.json Update dependency wrap-ansi to v9.0.2 (forgejo) (#9213) 2025-09-09 02:12:12 +02:00
playwright.config.ts
README.md chore: fix a few typos in the documentation (#9134) 2025-09-04 01:53:40 +02:00
release-notes-assistant.sh
RELEASE-NOTES.md RELEASE-NOTES.md to refer to the release notes directory on master [skip ci] (#8675) 2025-07-25 22:21:37 +02:00
renovate.json chore: fix renovate.json format error (#9148) 2025-09-03 21:42:56 +02:00
shell.nix chore: add missing gotestsum to nix dev shell (#9169) 2025-09-05 01:24:45 +02:00
stylelint.config.js
tailwind.config.js
tsconfig.json
vitest.config.ts
webpack.config.js

Welcome to Forgejo

Hi there! Tired of big platforms playing monopoly? Providing Git hosting for your project, friends, company or community? Forgejo (/for'd͡ʒe.jo/ inspired by forĝejo the Esperanto word for forge) has you covered with its intuitive interface, light and easy hosting and a lot of built-in functionality.

Forgejo was created in 2022 because we think that the project should be owned by an independent community. If you second that, then Forgejo is for you! Our promise: Independent Free/Libre Software forever!

What does Forgejo offer?

If you like any of the following, Forgejo is literally meant for you:

  • Lightweight: Forgejo can easily be hosted on nearly every machine. Running on a Raspberry? Small cloud instance? No problem!
  • Project management: Besides Git hosting, Forgejo offers issues, pull requests, wikis, kanban boards and much more to coordinate with your team.
  • Publishing: Have something to share? Use releases to host your software for download, or use the package registry to publish it for docker, npm and many other package managers.
  • Customizable: Want to change your look? Change some settings? There are many config switches to make Forgejo work exactly like you want.
  • Powerful: Organizations & team permissions, CI integration, Code Search, LDAP, OAuth and much more. If you have advanced needs, Forgejo has you covered.
  • Privacy: From update checker to default settings: Forgejo is built to be privacy first for you and your crew.
  • Federation: (WIP) We are actively working to connect software forges with each other through ActivityPub, and create a collaborative network of personal instances.

Learn more

Dive into the documentation, subscribe to releases and blog post on our website, find us on the Fediverse or hop into our Matrix room if you have any questions or want to get involved.

License

Forgejo is distributed under the terms of the GPL version 3.0 or any later version.

The agreement for this license was documented in June 2023 and implemented during the development of Forgejo v9.0. All Forgejo versions before v9.0 are distributed under the MIT license.

Get involved

If you are interested in making Forgejo better, either by reporting a bug or by changing the governance, please take a look at the contribution guide.