Codeberg
codeberg.org
Codeberg is a non-profit, community-run Git host running Forgejo. Its Gitea-compatible API exposes public repositories, issues, releases, commits, users, organisation repositories and file contents.
GET /v1/data/codeberg/commits1Request
User or organisation login that owns the repository.
Repository name as it appears in the URL after the owner.
Commits per page.
Page number.
curl "https://api.fastcrw.com/v1/data/codeberg/commits?owner=forgejo&repo=forgejo&limit=10&page=1" \ -H "Authorization: Bearer $FASTCRW_API_KEY"
2Response example
A sample shape. Press Run to see live data from Codeberg.
[
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/1d9703c28a34dd8e35b37703cd4fa4d320da63d2",
"sha": "1d9703c28a34dd8e35b37703cd4fa4d320da63d2",
"created": "2026-10-23T13:34:38+02:00",
"html_url": "https://codeberg.org/forgejo/forgejo/commit/1d9703c28a34dd8e35b37703cd4fa4d320da63d2",
"commit": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/1d9703c28a34dd8e35b37703cd4fa4d320da63d2",
"author": {
"name": "Mathieu Fenniak",
"email": "mathieu@fenniak.net",
"date": "2026-10-23T13:34:38+02:00"
},
"committer": {
"name": "Andreas Ahlenstorf",
"email": "aahlenst@noreply.codeberg.org",
"date": "2026-10-23T13:34:38+02:00"
},
"message": "fix: when last step of an Action is skipped, post step logs aren't available (#14978)\n\nFixes https://code.forgejo.org/forgejo/runner/issues/1772.\n\nOnly the \"success\" and \"failure\" statuses were taken into account for when to start grouping together remaining logs into the \"Completed job\" logs. This adds the skipped status for consideration, and handles the fact that skipped jobs don't have an appropriate timestamp so the last run job is still used for that.\n\n### Compliance\n\n- [x] I confirm that I make this contribution in accordance with [Forgejo's AI Agreement](https://codeberg.org/forgejo/governance/src/commit/9084720dc6a7fbf1d3f358919d46bd6adfb55287/AIAgreement.md).\n\n### Tests for Go changes\n\n- I added test coverage for Go changes...\n - [x] in their respective `*_test.go` for unit tests.\n - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server.\n- I ran...\n - [x] `make pr-go` before pushing\n\n### Documentation\n\n- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.\n- [x] I did not document these changes and I do not expect someone else to do it.\n\n### Release notes\n\n- [x] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change.\n- [ ] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change.\n\n<!--start release-notes-assistant-->\n\n## Release notes\n<!--URL:https://codeberg.org/forgejo/forgejo-->\n- Bug fixes\n - [PR](https://codeberg.org/forgejo/forgejo/pulls/14978): <!--number 14978 --><!--line 0 --><!--description d2hlbiBsYXN0IHN0ZXAgb2YgYW4gQWN0aW9uIGlzIHNraXBwZWQsIHBvc3Qgc3RlcCBsb2dzIGFyZW4ndCBhdmFpbGFibGU=-->when last step of an Action is skipped, post step logs aren't available<!--description-->\n<!--end release-notes-assistant-->\n\nReviewed-on: https:…",
"tree": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/trees/1d9703c28a34dd8e35b37703cd4fa4d320da63d2",
"sha": "1d9703c28a34dd8e35b37703cd4fa4d320da63d2",
"created": "2026-10-23T13:34:38+02:00"
},
"verification": {
"verified": false,
"reason": "gpg.error.not_signed_commit",
"signature": "",
"signer": null,
"payload": ""
}
},
"author": {
"id": 222642,
"login": "mfenniak",
"login_name": "",
"source_id": 0,
"full_name": "Mathieu Fenniak",
"email": "mfenniak@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/561ee781e72bbbfd2865db7b4ba4fbf50f64da3d3cb0f4e1897b6da25224a2a7",
"html_url": "https://codeberg.org/mfenniak",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2024-10-16T15:50:37+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Calgary, Alberta, Canada",
"pronouns": "he/him",
"website": "https://mathieu.fenniak.net/",
"description": "Open Source Software Developer. My hobbies include poorly maintaining too many bicycles, running distances that are too far, GM-ing TTRPGs, and, well, more software development obviously.",
"visibility": "public",
"followers_count": 20,
"following_count": 0,
"starred_repos_count": 4,
"username": "mfenniak"
},
"committer": {
"id": 468676,
"login": "aahlenst",
"login_name": "",
"source_id": 0,
"full_name": "Andreas Ahlenstorf",
"email": "aahlenst@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/d15066c8d70752866771e90b9204536d",
"html_url": "https://codeberg.org/aahlenst",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2025-08-13T21:30:25+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Switzerland",
"pronouns": "he/him",
"website": "https://aahlenst.dev/",
"description": "",
"visibility": "public",
"followers_count": 5,
"following_count": 0,
"starred_repos_count": 0,
"username": "aahlenst"
},
"parents": [
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/f36a03136c2579782020d03eb3d473a5535f12c4",
"sha": "f36a03136c2579782020d03eb3d473a5535f12c4",
"created": "0001-01-01T00:00:00Z"
}
],
"files": [
{
"filename": "modules/actions/task_state.go",
"status": "modified"
},
{
"filename": "modules/actions/task_state_test.go",
"status": "modified"
}
],
"stats": {
"total": 28,
"additions": 27,
"deletions": 1
}
},
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/f36a03136c2579782020d03eb3d473a5535f12c4",
"sha": "f36a03136c2579782020d03eb3d473a5535f12c4",
"created": "2026-10-23T05:19:50+02:00",
"html_url": "https://codeberg.org/forgejo/forgejo/commit/f36a03136c2579782020d03eb3d473a5535f12c4",
"commit": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/f36a03136c2579782020d03eb3d473a5535f12c4",
"author": {
"name": "oliverpool",
"email": "git@olivier.pfad.fr",
"date": "2026-10-23T05:19:50+02:00"
},
"committer": {
"name": "0ko",
"email": "0ko@noreply.codeberg.org",
"date": "2026-10-23T05:19:50+02:00"
},
"message": "git(mirror): properly handle all refs/pull/... deletion cases (#14885)\n\nFixes #14882, regression introduced in #13661\n\nIn some [convoluted setup](https://codeberg.org/forgejo/forgejo/issues/14882#issuecomment-25500268), `git push --mirror` attempts to delete refs pointing to non-existing PRs:\n\n1. Create pull mirror from a remote repository (via \"new migration\") **this repo will have `refs/pull/.../head` references**\n2. Convert that pull mirror to a normal repository\n3. Create a push mirror from the remote repository to the local repository\n\nI think that such refs should not exist in the first place, hence I propose to delete them, when such push occurs.\n\nIdeally (in dedicated PRs?), we should:\n- check why those internal refs are created in the first place, when doing a migration (when the PRs are not migrated)\n- add some doctor operation to delete such unexpected refs\n\nCheckout the commits before the fixes and run `make test-sqlite#TestGitPushMirror` to see the failing test.\n\nReviewed-on: https://codeberg.org/forgejo/forgejo/pulls/14885\nReviewed-by: famfo-cb <famfo-cb@noreply.codeberg.org>\nReviewed-by: Gusted <gusted@noreply.codeberg.org>\n",
"tree": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/trees/f36a03136c2579782020d03eb3d473a5535f12c4",
"sha": "f36a03136c2579782020d03eb3d473a5535f12c4",
"created": "2026-10-23T05:19:50+02:00"
},
"verification": {
"verified": false,
"reason": "gpg.error.not_signed_commit",
"signature": "",
"signer": null,
"payload": ""
}
},
"author": {
"id": 32636,
"login": "oliverpool",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "oliverpool@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/85a61c808f10b51542b6639704b97f26",
"html_url": "https://codeberg.org/oliverpool",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2021-09-21T09:54:52+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Bad Tölz, Bavaria, Germany",
"pronouns": "he/him",
"website": "https://code.pfad.fr",
"description": "French software developer living in the German Alps.",
"visibility": "public",
"followers_count": 12,
"following_count": 0,
"starred_repos_count": 6,
"username": "oliverpool"
},
"committer": {
"id": 35856,
"login": "0ko",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "0ko@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/679e72b1ca263a192b488b84af24e10c4f32e2c3f46eb2baa7928c986ba460ef",
"html_url": "https://codeberg.org/0ko",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2021-12-05T16:10:16+01:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "",
"pronouns": "",
"website": "",
"description": "Hi! I do things related to Forgejo<br><button><p>⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀<img src=\"0ko/me/raw/f\" height=\"128\"/><pre class=\"code-block is-loading\"></pre>\")</button><br>[**Contact**](0ko/me/src/c.md) ◦ [**Donate**](0ko/me/src/d.md)",
"visibility": "public",
"followers_count": 37,
"following_count": 27,
"starred_repos_count": 30,
"username": "0ko"
},
"parents": [
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"sha": "b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"created": "0001-01-01T00:00:00Z"
}
],
"files": [
{
"filename": "routers/private/hook_pre_receive.go",
"status": "modified"
},
{
"filename": "services/agit/agit.go",
"status": "modified"
},
{
"filename": "tests/integration/git_push_test.go",
"status": "modified"
}
],
"stats": {
"total": 145,
"additions": 124,
"deletions": 21
}
},
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"sha": "b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"created": "2026-10-22T19:26:24+02:00",
"html_url": "https://codeberg.org/forgejo/forgejo/commit/b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"commit": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"author": {
"name": "Gusted",
"email": "postmaster@gusted.xyz",
"date": "2026-10-22T19:26:24+02:00"
},
"committer": {
"name": "Gusted",
"email": "gusted@noreply.codeberg.org",
"date": "2026-10-22T19:26:24+02:00"
},
"message": "chore: bump Node version (#14969)\n\nv20 is eol since March 24 2026.\n\nSince forgejo/forgejo!14564 (3ec8ba228a5b0fae7483254c414a5185e86a47d5) a Node version is required that can run Typescript. This was implemented in Node v22.18.0. https://nodejs.org/learn/typescript/run-natively\n\nReviewed-on: https://codeberg.org/forgejo/forgejo/pulls/14969\nReviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org>\nReviewed-by: Michael Kriese <michael.kriese@gmx.de>\n",
"tree": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/trees/b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"sha": "b021976fb1a87ec18543c3a5586ecfabcc1c06e7",
"created": "2026-10-22T19:26:24+02:00"
},
"verification": {
"verified": false,
"reason": "gpg.error.not_signed_commit",
"signature": "",
"signer": null,
"payload": ""
}
},
"author": {
"id": 26734,
"login": "Gusted",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "gusted@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/44a59264e976fa585ed9f0a92abad9d7",
"html_url": "https://codeberg.org/Gusted",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2021-04-12T21:28:08+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Error 451",
"pronouns": "",
"website": "https://gusted.xyz",
"description": "I’m aware (and the NSA is), that I’m pretty 🌈.\r\n\r\nForgejo contributor \r\nCodeberg executive board member 2025-2026 \r\nCodeberg presidium member 2025-2027 \r\n\r\nFor more interesting repositories: https://git.gusted.xyz/Gusted",
"visibility": "public",
"followers_count": 162,
"following_count": 30,
"starred_repos_count": 103,
"username": "Gusted"
},
"committer": {
"id": 26734,
"login": "Gusted",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "gusted@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/44a59264e976fa585ed9f0a92abad9d7",
"html_url": "https://codeberg.org/Gusted",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2021-04-12T21:28:08+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Error 451",
"pronouns": "",
"website": "https://gusted.xyz",
"description": "I’m aware (and the NSA is), that I’m pretty 🌈.\r\n\r\nForgejo contributor \r\nCodeberg executive board member 2025-2026 \r\nCodeberg presidium member 2025-2027 \r\n\r\nFor more interesting repositories: https://git.gusted.xyz/Gusted",
"visibility": "public",
"followers_count": 162,
"following_count": 30,
"starred_repos_count": 103,
"username": "Gusted"
},
"parents": [
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/42a83c357cbd5551e0cd99c12da1acf8298619c9",
"sha": "42a83c357cbd5551e0cd99c12da1acf8298619c9",
"created": "0001-01-01T00:00:00Z"
}
],
"files": [
{
"filename": "package-lock.json",
"status": "modified"
},
{
"filename": "package.json",
"status": "modified"
}
],
"stats": {
"total": 4,
"additions": 2,
"deletions": 2
}
},
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/42a83c357cbd5551e0cd99c12da1acf8298619c9",
"sha": "42a83c357cbd5551e0cd99c12da1acf8298619c9",
"created": "2026-10-22T15:52:09+02:00",
"html_url": "https://codeberg.org/forgejo/forgejo/commit/42a83c357cbd5551e0cd99c12da1acf8298619c9",
"commit": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/42a83c357cbd5551e0cd99c12da1acf8298619c9",
"author": {
"name": "famfo",
"email": "codeberg@famfo.xyz",
"date": "2026-10-22T15:52:09+02:00"
},
"committer": {
"name": "Gusted",
"email": "gusted@noreply.codeberg.org",
"date": "2026-10-22T15:52:09+02:00"
},
"message": "feat(admin): add menu to edit user quota groups (#13284)\n\nThis adds a new option in the admin user edit page to assign quota groups:\n\nResolves #13270.\n\nReviewed-on: https://codeberg.org/forgejo/forgejo/pulls/13284\nReviewed-by: 0ko <0ko@noreply.codeberg.org>\nReviewed-by: Gusted <gusted@noreply.codeberg.org>\n",
"tree": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/trees/42a83c357cbd5551e0cd99c12da1acf8298619c9",
"sha": "42a83c357cbd5551e0cd99c12da1acf8298619c9",
"created": "2026-10-22T15:52:09+02:00"
},
"verification": {
"verified": false,
"reason": "gpg.error.not_signed_commit",
"signature": "",
"signer": null,
"payload": ""
}
},
"author": {
"id": 1280705,
"login": "famfo-cb",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "famfo-cb@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/e7ebcefa6a9b60bf0c20bbaf0da14408f96a511b26d015736bcf0b3292d47d91",
"html_url": "https://codeberg.org/famfo-cb",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2026-07-01T11:01:41+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "",
"pronouns": "",
"website": "",
"description": "",
"visibility": "public",
"followers_count": 1,
"following_count": 0,
"starred_repos_count": 0,
"username": "famfo-cb"
},
"committer": {
"id": 26734,
"login": "Gusted",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "gusted@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/44a59264e976fa585ed9f0a92abad9d7",
"html_url": "https://codeberg.org/Gusted",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2021-04-12T21:28:08+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Error 451",
"pronouns": "",
"website": "https://gusted.xyz",
"description": "I’m aware (and the NSA is), that I’m pretty 🌈.\r\n\r\nForgejo contributor \r\nCodeberg executive board member 2025-2026 \r\nCodeberg presidium member 2025-2027 \r\n\r\nFor more interesting repositories: https://git.gusted.xyz/Gusted",
"visibility": "public",
"followers_count": 162,
"following_count": 30,
"starred_repos_count": 103,
"username": "Gusted"
},
"parents": [
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"sha": "08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"created": "0001-01-01T00:00:00Z"
}
],
"files": [
{
"filename": "models/quota/group.go",
"status": "modified"
},
{
"filename": "options/locale_next/locale_en-US.json",
"status": "modified"
},
{
"filename": "routers/web/admin/users.go",
"status": "modified"
},
{
"filename": "routers/web/org/setting.go",
"status": "modified"
},
{
"filename": "services/auth/source/source_quota_group_sync.go",
"status": "modified"
},
"… 13 more items"
],
"stats": {
"total": 423,
"additions": 413,
"deletions": 10
}
},
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"sha": "08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"created": "2026-10-22T15:32:14+02:00",
"html_url": "https://codeberg.org/forgejo/forgejo/commit/08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"commit": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"author": {
"name": "Gusted",
"email": "postmaster@gusted.xyz",
"date": "2026-10-22T15:32:14+02:00"
},
"committer": {
"name": "Gusted",
"email": "gusted@noreply.codeberg.org",
"date": "2026-10-22T15:32:14+02:00"
},
"message": "fix: avoid type confusion when checking project access (#14958)\n\n`GetProjectByIDForOwner` did not check if the ID that's given is a ID\nfor a user (or org) or a repository. The IDs of the `user` and\n`repository` table are created sequentially, meaning there are many\ncollisions between them. Also meaning that you can use the ID of the\nuser/org for a repository project and happen to be the right ID and visa\nversa.\n\nUse `CanBeAccessedByOwnerRepo` and pass a repository, if possible, to\ncheck for access.\n\nReviewed-on: https://codeberg.org/forgejo/forgejo/pulls/14958\nReviewed-by: Mathieu Fenniak <mathieu@fenniak.net>\n",
"tree": {
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/trees/08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"sha": "08c88e6ffadd8a0b84849ec7508b77c43d5b8a83",
"created": "2026-10-22T15:32:14+02:00"
},
"verification": {
"verified": false,
"reason": "gpg.error.not_signed_commit",
"signature": "",
"signer": null,
"payload": ""
}
},
"author": {
"id": 26734,
"login": "Gusted",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "gusted@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/44a59264e976fa585ed9f0a92abad9d7",
"html_url": "https://codeberg.org/Gusted",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2021-04-12T21:28:08+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Error 451",
"pronouns": "",
"website": "https://gusted.xyz",
"description": "I’m aware (and the NSA is), that I’m pretty 🌈.\r\n\r\nForgejo contributor \r\nCodeberg executive board member 2025-2026 \r\nCodeberg presidium member 2025-2027 \r\n\r\nFor more interesting repositories: https://git.gusted.xyz/Gusted",
"visibility": "public",
"followers_count": 162,
"following_count": 30,
"starred_repos_count": 103,
"username": "Gusted"
},
"committer": {
"id": 26734,
"login": "Gusted",
"login_name": "",
"source_id": 0,
"full_name": "",
"email": "gusted@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/44a59264e976fa585ed9f0a92abad9d7",
"html_url": "https://codeberg.org/Gusted",
"language": "",
"is_admin": false,
"last_login": "0001-01-01T00:00:00Z",
"created": "2021-04-12T21:28:08+02:00",
"restricted": false,
"active": false,
"prohibit_login": false,
"location": "Error 451",
"pronouns": "",
"website": "https://gusted.xyz",
"description": "I’m aware (and the NSA is), that I’m pretty 🌈.\r\n\r\nForgejo contributor \r\nCodeberg executive board member 2025-2026 \r\nCodeberg presidium member 2025-2027 \r\n\r\nFor more interesting repositories: https://git.gusted.xyz/Gusted",
"visibility": "public",
"followers_count": 162,
"following_count": 30,
"starred_repos_count": 103,
"username": "Gusted"
},
"parents": [
{
"url": "https://codeberg.org/api/v1/repos/forgejo/forgejo/git/commits/7a4aeaaa745b29d854cc08010ea82157457565af",
"sha": "7a4aeaaa745b29d854cc08010ea82157457565af",
"created": "0001-01-01T00:00:00Z"
}
],
"files": [
{
"filename": "routers/web/org/projects.go",
"status": "modified"
},
{
"filename": "routers/web/repo/projects.go",
"status": "modified"
},
{
"filename": "services/project/project.go",
"status": "modified"
},
{
"filename": "services/project/projects_test.go",
"status": "modified"
}
],
"stats": {
"total": 52,
"additions": 23,
"deletions": 29
}
},
"… 5 more items"
]Attribution: Source: Codeberg e.V. (codeberg.org). Repository content is contributed by its authors and licensed per repository; check the repository's own licence before reuse.
Licence: Codeberg does not license the API output itself; it requires every public repository to carry a free licence and says so in its Terms of Use: "§ 2 Allowed Content & Usage (1) By using Codeberg, you agree to adhere to the following rules when posting content (like repository contents, wiki articles, issue comments, etc.): 1. Public repository content shall be made available under a copyright licence which gives all natural and legal persons the following rights in the content: - the right to use the content for any purpose, including both commercial and non-commercial purposes; - the right to make unlimited copies of the content and redistribute those copies to others, with or without charge; - the right to examine the content and determine how it works and/or how it was made; - the right to make their own modifications to the content, to use the content with those modifications privately; - and the right to redistribute copies of the content which include their own modifications, with or without charge. Copyright licences of this kind are referred to as 'licences for free and open source software, free and open source hardware, or free cultural works.'" The Terms also exclude Non-Commercial and No-Derivatives Creative Commons licences from that requirement. Repository metadata (stars, counts, timestamps) is factual and carries no separate grant. Because public repository content is required to permit commercial use and redistribution, both are recorded true; the licence of any individual repository governs that repository's content and is reported by the API.
Ask with this source
A prompt for your agent that names this source and how to call it through the crw MCP.
Repository commits
Use Codeberg (codeberg) from fastCRW Pergamon, capability "Repository commits" (commits). You want to see what changed recently in a repository. Example options: owner=forgejo, repo=forgejo, limit=10. Use the crw MCP tools: crw_find_data to confirm the source and its options, then crw_get_data with provider "codeberg" and capability "commits". Tell me the credits used and cite the licence from the response. If the crw MCP tools are missing, install them with: npx -y crw-mcp install --api-key <your fastCRW API key>
File contents
Use Codeberg (codeberg) from fastCRW Pergamon, capability "File contents" (file-contents). You need the actual text of a file rather than the repository's metadata. Example options: owner=forgejo, repo=forgejo, filepath=README.md. Use the crw MCP tools: crw_find_data to confirm the source and its options, then crw_get_data with provider "codeberg" and capability "file-contents". Tell me the credits used and cite the licence from the response. If the crw MCP tools are missing, install them with: npx -y crw-mcp install --api-key <your fastCRW API key>
Repository issues
Use Codeberg (codeberg) from fastCRW Pergamon, capability "Repository issues" (issues). You are tracking open bugs or feature requests in a repository. Example options: owner=forgejo, repo=forgejo, state=open. Use the crw MCP tools: crw_find_data to confirm the source and its options, then crw_get_data with provider "codeberg" and capability "issues". Tell me the credits used and cite the licence from the response. If the crw MCP tools are missing, install them with: npx -y crw-mcp install --api-key <your fastCRW API key>
Organisation repositories
Use Codeberg (codeberg) from fastCRW Pergamon, capability "Organisation repositories" (org-repos). You want everything a project organisation publishes rather than a keyword search. Example options: org=forgejo, limit=10, page=1. Use the crw MCP tools: crw_find_data to confirm the source and its options, then crw_get_data with provider "codeberg" and capability "org-repos". Tell me the credits used and cite the licence from the response. If the crw MCP tools are missing, install them with: npx -y crw-mcp install --api-key <your fastCRW API key>
