Beyond coding. We forge.
Find a file
Gusted 4e8363fad4
[DB] Forgejo database migrations
- Implements https://codeberg.org/forgejo/discussions/issues/32#issuecomment-918737
- Allows to add Forgejo-specific migrations that don't interfere with Gitea's migration logic. Please do note that we cannot liberally add migrations for Gitea tables, as they might do their own migrations in a future version on that table, and that could undo our migrations. Luckily,  we don't have a scenario where that's needed and thus not taken into account.

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/795
(cherry picked from commit 8ee32978c0)
(cherry picked from commit c240b34f59)
(cherry picked from commit 03936c6492)
(cherry picked from commit a20ed852f8)
(cherry picked from commit 1dfa82676f)
(cherry picked from commit c39ae0bf8a)
(cherry picked from commit cfaff08996)
(cherry picked from commit 94a458835a)
(cherry picked from commit 61a3cf77df)
(cherry picked from commit abb350fde8)
(cherry picked from commit 5194829d6b)
(cherry picked from commit 89239a60f2)
(cherry picked from commit 683cfd86ef)
(cherry picked from commit f4546cfed9)
(cherry picked from commit 86614d5826)
(cherry picked from commit e4b9c32187)
(cherry picked from commit 8c253719af)
(cherry picked from commit 857365d6c1)
(cherry picked from commit a488b3952f)
(cherry picked from commit 98313c4910)
(cherry picked from commit 430d95e824)
(cherry picked from commit 08bf9d918f)
(cherry picked from commit f8a170e2d0)
(cherry picked from commit d20e325378)
(cherry picked from commit 6c0aa7dd4f)
(cherry picked from commit 46c08c26c7)
(cherry picked from commit 9ee22153c4)

[DB] Ensure forgejo migration up to date (squash)

- Hook Forgejo's `EnsureUpToDate` to Gitea's `EnsureUpToDate`, such that
the Forgejo migrations are also being checked to be up to date.
- I'm not sure how I missed this and if this has caused any problems,
but due to the lack of any open issue about it it seems to not be a big
problem.

(cherry picked from commit 6c65b6dcf6)
(cherry picked from commit 6d45c37d84)

[DB] Add test for TestEnsureUpToDate (squash)

- Add a test for the behavior of `EnsureUpToDate`, to ensure it will
error when needed and succeed when the forgejo version is up to date.
- Add forgejo_migrations package to GO_TEST_PACKAGES, to avoid running
it with `test-unit` and instead test it with `test-*-migration`.

(cherry picked from commit b172a50691)
(cherry picked from commit d8af308820)
(cherry picked from commit e69e64a32c)
2023-12-18 15:10:54 +01:00
.devcontainer devpod use go1.21 (#26637) 2023-08-21 16:20:50 +00:00
.forgejo [CI] Switch to non-coverage unit test (squash) 2023-12-18 14:39:08 +01:00
.gitea [WORKFLOW] issues & pr templates 2023-12-18 15:08:21 +01:00
assets bump go-deps (#27489) 2023-10-07 05:55:08 +00:00
build Use Set[Type] instead of map[Type]bool/struct{}. (#26804) 2023-08-30 06:55:25 +00:00
cmd [CLI] implement forgejo-cli 2023-12-18 14:39:08 +01:00
contrib Update environment-to-ini flag parsing (#27914) 2023-11-06 21:36:58 +01:00
custom/conf [FEAT] Use OpenStreetMap in USER_LOCATION_MAP_URL by default 2023-12-18 15:10:54 +01:00
docker Dockerfile small refactor (#27757) 2023-10-29 09:44:06 +08:00
docs Add option to disable ambiguous unicode characters detection (#28454) 2023-12-17 14:38:54 +00:00
models [DB] Forgejo database migrations 2023-12-18 15:10:54 +01:00
modules [FEAT] Use OpenStreetMap in USER_LOCATION_MAP_URL by default 2023-12-18 15:10:54 +01:00
options [skip ci] Updated translations via Crowdin 2023-12-18 00:25:45 +00:00
public [API] Forgejo API /api/forgejo/v1 2023-12-18 15:10:54 +01:00
releases/images [DOCS] RELEASE-NOTES.md 2023-12-18 15:10:52 +01:00
routers [API] Forgejo API /api/forgejo/v1 2023-12-18 15:10:54 +01:00
services [TESTS] oauth2: make it possible to use an alternate http.Client 2023-12-18 15:10:54 +01:00
snap set version in snapcraft yaml 2023-09-13 23:20:46 -04:00
templates [API] Forgejo API /api/forgejo/v1 2023-12-18 15:10:54 +01:00
tests [TESTS] increase test-sqlite log level to Trace 2023-12-18 15:10:54 +01:00
web_src [API] Forgejo API /api/forgejo/v1 2023-12-18 15:10:54 +01:00
.air.toml Reduce verbosity of dev commands (#24917) 2023-05-24 20:11:04 +00:00
.changelog.yml Adapt .changelog.yml to new labeling system (#27701) 2023-10-20 00:22:00 +02:00
.dockerignore Move public asset files to the proper directory (#25907) 2023-07-18 18:06:43 +02:00
.editorconfig Add markdownlint (#20512) 2022-07-28 09:22:47 +08:00
.eslintrc.yaml Update JS and PY dependencies (#28120) 2023-11-20 01:02:57 +01:00
.gitattributes [META] Use correct language for .tmpl 2023-12-18 15:10:54 +01:00
.gitignore [CI] gitignore: emacs backups 2023-12-18 14:39:08 +01:00
.gitpod.yml Add Github related extensions in devcontainer (#25800) 2023-07-14 15:58:02 +08:00
.golangci.yml Remove go versions from .golangci.yml (#27953) 2023-11-07 22:03:27 +01:00
.ignore Add /public/assets to .ignore (#26232) 2023-07-30 12:34:20 +02:00
.markdownlint.yaml Enable markdownlint no-duplicate-header (#27500) 2023-10-07 15:30:21 +02:00
.npmrc Upgrade to npm lockfile v3 and explicitely set it (#23561) 2023-03-18 19:38:10 +01:00
.spectral.yaml Add spectral linter for Swagger (#20321) 2022-07-11 18:07:16 -05:00
.stylelintrc.yaml Enable shorthands in declaration-strict-value linter (#27597) 2023-10-13 08:19:21 +00:00
.yamllint.yaml fully replace drone with actions (#27556) 2023-10-11 06:39:32 +00:00
BSDmakefile Fix build errors on BSD (in BSDMakefile) (#27594) 2023-10-13 15:38:27 +00:00
build.go User/Org Feed render description as per web (#23887) 2023-04-04 04:39:47 +01:00
CHANGELOG.md Fix release link in changelog for v1.21.0 2023-11-14 15:03:49 +01:00
CONTRIBUTING.md [DOCS] CONTRIBUTING 2023-12-18 15:08:21 +01:00
DCO Remove address from DCO (#22595) 2023-01-24 18:52:38 +00:00
Dockerfile [CI] Forgejo Actions based release process 2023-12-18 14:39:08 +01:00
Dockerfile.rootless [CI] Forgejo Actions based release process 2023-12-18 14:39:08 +01:00
go.mod Improve CLI code and descriptions (#28482) 2023-12-15 15:49:01 +00:00
go.sum Improve CLI code and descriptions (#28482) 2023-12-15 15:49:01 +00:00
LICENSE [DOCS] LICENSE: add Forgejo Authors 2023-12-18 15:10:54 +01:00
main.go Fix incorrect CLI exit code and duplicate error message (#26346) 2023-08-05 23:36:45 +08:00
MAINTAINERS Apply to become a maintainer (#27522) 2023-10-08 10:36:40 -04:00
Makefile [DB] Forgejo database migrations 2023-12-18 15:10:54 +01:00
package-lock.json Update JS and PY dependencies (#28120) 2023-11-20 01:02:57 +01:00
package.json Update JS and PY dependencies (#28120) 2023-11-20 01:02:57 +01:00
playwright.config.js Update JS dependencies and eslint config (#21388) 2022-10-10 20:02:20 +08:00
poetry.lock Update JS and PY dependencies (#28120) 2023-11-20 01:02:57 +01:00
poetry.toml Clean up pyproject.toml and package.json, fix poetry options (#25327) 2023-06-18 18:13:08 +00:00
pyproject.toml Update JS and PY dependencies (#28120) 2023-11-20 01:02:57 +01:00
README.md [DOCS] README 2023-12-18 15:08:21 +01:00
RELEASE-NOTES.md [DOCS] RELEASE-NOTES.md 2023-12-18 15:10:52 +01:00
vitest.config.js Use vitest globals (#27102) 2023-09-27 04:37:13 +00:00
webpack.config.js [API] Forgejo API /api/forgejo/v1 2023-12-18 15:10:54 +01:00

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 builtin 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.

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.