- Go 77.3%
- go-html-template 10.9%
- Roff 4.3%
- JavaScript 2.7%
- CSS 2%
- Other 2.6%
Probably fixes (or improves, at least) https://code.forgejo.org/forgejo/runner/issues/1391, paired with the runner implementation https://code.forgejo.org/forgejo/runner/pulls/1393. When the FetchTask() API is invoked to create a task, unpreventable environmental errors may occur; for example, network disconnects and timeouts. It's possible that these errors occur after the server-side has assigned a task to the runner during the API call, in which case the error would cause that task to be lost between the two systems -- the server will think it's assigned to the runner, and the runner never received it. This can cause jobs to appear stuck at "Set up job". The solution implemented here is idempotency in the FetchTask() API call, which means that the "same" FetchTask() API call is expected to return the same values. Specifically, the runner creates a unique identifier which is transmitted to the server as a header `x-runner-request-key` with each FetchTask() invocation which defines the sameness of the call, and the runner retains the value until the API call receives a successful response. The server implementation returns the same tasks back if a second (or Nth) call is received with the same `x-runner-request-key` header. In order to accomplish this is records the `x-runner-request-key` value that is used with each request that assigns tasks. As a complication, the Forgejo server is unable to return the same `${{ secrets.forgejo_token }}` for the task because the server stores that value in a one-way hash in the database. To resolve this, the server regenerates the token when retrieving tasks for a second time. Reviewed-on: forgejo/forgejo#11401 Reviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org> Co-authored-by: Mathieu Fenniak <mathieu@fenniak.net> Co-committed-by: Mathieu Fenniak <mathieu@fenniak.net> (cherry picked from commit 0ae62353862472ebd6bb2bdb44a8cc8354e89c27) |
||
|---|---|---|
| .devcontainer | ||
| .forgejo | ||
| assets | ||
| build | ||
| cmd | ||
| contrib | ||
| custom/conf | ||
| docker | ||
| models | ||
| modules | ||
| options | ||
| public | ||
| release-notes | ||
| release-notes-published | ||
| releases/images | ||
| routers | ||
| services | ||
| templates | ||
| tests | ||
| tools | ||
| web_src | ||
| .air.toml | ||
| .deadcode-out | ||
| .dockerignore | ||
| .editorconfig | ||
| .envrc.example | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .gitpod.yml | ||
| .golangci.yml | ||
| .ignore | ||
| .mailmap | ||
| .markdownlint.yaml | ||
| .node-version | ||
| .npmrc | ||
| .release-notes-assistant.yaml | ||
| .spectral.yaml | ||
| .yamllint.yaml | ||
| BSDmakefile | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| DCO | ||
| Dockerfile | ||
| Dockerfile.rootless | ||
| eslint.config.mjs | ||
| flake.lock | ||
| flake.nix | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| manifest.scm | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| release-notes-assistant.sh | ||
| RELEASE-NOTES.md | ||
| renovate.json | ||
| shell.nix | ||
| stylelint.config.js | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| vitest.config.ts | ||
| webpack.config.js | ||
Forgejo (Codeberg)
Codeberg's fork of Forgejo, a self-hosted lightweight software forge.
Some changes made to Forgejo's source code are:
- Codeberg-specific themes
- Codeberg's custom landing page
- Codeberg's custom footer
- Various optimizations necessary for running a large instance
- Dirty hacks that we needed to deploy as soon as possible
Some of our patches may be helpful if you wish to operate a large Forgejo instance. However, this repository as a whole contains a custom version of Forgejo that is explicitly not intended for private use.
Codeberg and Forgejo work together, but, as projects, they remain separate. For more information about Forgejo and its relationship with Codeberg, take a look at Forgejo's FAQ.
Reporting Issues
If you wish to report an issue for the changes that Codeberg has made or are not sure where you should open an issue for a service hosted by Codeberg, please create an issue on Codeberg/Community.
Additionally, Forgejo maintains its own Issue Tracker for bug reports and feature requests.
Hosting
If you wish to host Forgejo on your own, please visit forgejo.org.
You can find some other repositories that help us operate codeberg.org in the Codeberg-Infrastructure organisation.
Our instance's Forgejo configuration files can be found here: Codeberg-Infrastructure/build-deploy-forgejo
Tip
The configuration files include the settings required to enable the Codeberg-specific Forgejo themes, i.e.
codeberg-auto,codeberg-light,codeberg-darkin your local Forgejo instance.
Contributing
We follow the upstream Forgejo tree and most of the decisions that they make for everyone else.
If you want to send a patch to codeberg.org, the best way to do that is probably sending a patch to Forgejo.
Branding
Codeberg has a set of design-related guidelines, which can be found here.
Reporting Vulnerabilities
See security.txt