{"name":"@deckyard/forgejo","description":"A client for the Forgejo REST API: repositories, issues, pull requests, releases with assets, branches, tags and files","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-forgejo.git","ref":"0.1.0","commit":"0b61f7f37b20e876b32f30c05e13fe8f0c14389b","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.26.0"},"capabilities":["net"],"keywords":["forgejo","gitea","codeberg","git","issues"],"description":"A client for the Forgejo REST API: repositories, issues, pull requests, releases with assets, branches, tags and files","publishedAt":"1793817429","repoId":1446044482,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/forgejo\n\n[![test](https://github.com/deckyard/deck-forgejo/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-forgejo/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-forgejo/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-forgejo)](https://github.com/deckyard/deck-forgejo/releases/latest)\n\nA client for the Forgejo REST API, for\n[Jennifer](https://jennifer-lang.dev/) programs: Codeberg or a self-hosted\nForgejo. Repositories with their settings, collaborators and webhooks;\nissues, comments, labels and milestones; pull requests, reviews and\nmerging; releases with their assets; branches, tags and files; commits,\ncommit statuses and Forgejo Actions. `call` and `getAll` reach every other\nendpoint. Gitea speaks most of the same API.\n\n**[Documentation](https://deckyard.github.io/deck-forgejo/)**\n\n## Install\n\n```sh\njvc add @deckyard/forgejo\n```\n\nThis vendors the deck to `vendor/\u003cscope\u003e/forgejo/`. Without `jvc`, unpack the\n`src/` subtree of a release archive (`\u003cscope\u003e-forgejo-\u003cversion\u003e.tar.gz`) there.\n\n## Usage\n\n```jennifer\nimport \"@deckyard/forgejo/\" as forgejo;\n\ndef c as forgejo.Client init forgejo.client(\"codeberg.org\");\n$c = forgejo.withToken($c, fs.readString(\"/run/secrets/forgejo\"));\n\nfor (def i in forgejo.issues($c, \"me/app\", \"open\")) {\n    io.printf(\"#%d %s\\n\", $i.number, $i.title);\n}\ndef rel as forgejo.Release init forgejo.createRelease($c, \"me/app\", \"1.2.0\", \"\", \"\", \"Notes\", false);\nforgejo.uploadAsset($c, \"me/app\", $rel.id, \"app.tar.gz\", fs.readBytes(\"dist/app.tar.gz\"));\n```\n\n## Requirements\n\nJennifer 0.26.0 or newer, the default `jennifer` binary (not\n`jennifer-tiny`), and the `net` capability.\n\n## Development\n\n```sh\ntools/check-all.sh                   # the full gate, as CI runs it\njennifer test src/forgejo_test.j     # the test overlay\ntools/check-docs.sh                  # docs against the code\ntools/pack.sh dist                   # build the release archive\n```\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n\n`tools/check-headers.sh` checks every source file's SPDX header against\n`deck.toml`.\n"}