chore: agent infra — SOUL, MEMORY, AGENTS, CI, EPIC, README

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-20 05:30:16 +01:00
parent afdbd9b7c5
commit f96fdbdf51
8 changed files with 400 additions and 192 deletions
+31
View File
@@ -0,0 +1,31 @@
# AGENTS — tinqs-git
## This Agent
**tinqs-git** — Go codebase, Cursor IDE, `tinqs-ltd/tinqs-git`. Identity: `.cursor/SOUL.md`. Memory: `.cursor/MEMORY.md`. Domain: self-hosted Git+LFS hosting fork of Gitea v1.26.1.
## Sibling Agents
| Agent | Repo | Coordination |
|-------|------|-------------|
| **CIO (Singularity)** | `tinqs-ltd/docs` | Hub docs, cross-repo orchestration, epic tracking. Plan: `docs/.cursor/plans/tinqs-git-fork.plan.md`. |
| **Platform** | `tinqs-ltd/tinqs-tools` | Platform SSO integration target. OAuth2 client. |
| **Devops** | `tinqs-ltd/devops` | Lightsail, DNS, tinqs-proxy, deploy. |
| **Bot** | `tinqs-ltd/bot` | tinqs-proxy, Team Tool, inference proxy. |
## Delegation
| Task | Action |
|------|--------|
| Epic updates, plan changes | Update `docs/.cursor/plans/tinqs-git-fork.plan.md` |
| Deploy, DNS, infra | Coordinate with devops agent |
| Platform OAuth2 wiring | Coordinate with platform agent |
| Cross-repo decisions | Open issue on docs, flag for CIO |
| Build failures, CI issues | Fix here, notify in MEMORY.md |
## CI
- `.gitea/workflows/build.yml` — builds `tinqs-git` binary on push to `tinqs/main`
- Runner: `lightsail-v2-host` (ID 4)
- Artifact: single `tinqs-git` Linux amd64 binary
- After push: verify CI passes. Skill in docs: `.cursor/skills/ci-pipeline-discipline/SKILL.md`.
+20
View File
@@ -0,0 +1,20 @@
# MEMORY — tinqs-git
Prune past ~30 lines. Old entries archived in git history.
## Facts
- Fork of Gitea v1.26.1 (MIT license). Go module: `code.gitea.io/gitea`.
- Binary name: `tinqs-git`. Product name: `tinqs-git`.
- Domain: `git.tinqs.com` (dev) → eventually replaces `git.arikigame.com` on cutover.
- DB: SQLite (`gitea.db`), compiled into binary via CGo `sqlite` tag.
- LFS: S3 backend (`tinqs-gitea-lfs` bucket), `SERVE_DIRECT = true`.
- Build: `TAGS="bindata sqlite sqlite_unlock_notify" make build` → single binary.
- CI: Gitea Actions on `lightsail-v2-host` runner.
- Upstream sync: quarterly rebase onto upstream main + cherry-pick CVEs.
- Live instance: AWS Lightsail `gitea-tinqs` (46.51.144.31), Ubuntu 24.04.
- Platform integration: OAuth2 SSO between `git.tinqs.com``platform.tinqs.com`.
## Recent
- **2026-05-20 — Repo created, agent infrastructure set up.** Forked Gitea v1.26.1 into `tinqs-ltd/tinqs-git`. Branch `tinqs/main` for our customizations. Full `.cursor/` agent infrastructure (SOUL, MEMORY, AGENTS, rules), CI pipeline (`.gitea/workflows/build.yml`), EPIC.md, README.md. Epic in docs: `tinqs-ltd/docs/.cursor/plans/tinqs-git-fork.plan.md`.
+109
View File
@@ -0,0 +1,109 @@
# SOUL — tinqs-git
**Cold start.** Read this, then `MEMORY.md`, then `AGENTS.md`.
You are the **tinqs-git** agent, working inside Cursor IDE on `tinqs-ltd/tinqs-git` — a fork of Gitea v1.26.1, customized for Tinqs game-dev workflows.
## Identity
- **Product:** `tinqs-git` — self-hosted Git+LFS hosting for game studios, served at `git.tinqs.com`
- **Upstream:** Gitea v1.26.1 (Go 1.26.2+, MIT license)
- **Repo:** `tinqs-ltd/tinqs-git` on Git Studio (`git.arikigame.com`)
- **Docs:** Hub docs live at `tinqs-ltd/docs` — read `docs/.cursor/plans/tinqs-git-fork.plan.md` for the epic
- **DB:** SQLite (compiled into binary via CGo `sqlite` tag)
- **LFS:** S3 backend (`tinqs-gitea-lfs` bucket)
## Build
```bash
TAGS="bindata sqlite sqlite_unlock_notify" make build # full build (backend + frontend)
TAGS="bindata sqlite sqlite_unlock_notify" make backend # Go only (45s)
TAGS="bindata sqlite sqlite_unlock_notify" make frontend # JS/CSS only (90s)
./tinqs-git web --port 4141 # run locally
```
## Dev
```bash
make watch-backend # Go hot reload via air
make watch-frontend # Vite dev server with HMR
make watch # both
```
## Test
```bash
make test # everything
make test-backend # Go unit tests (sqlite)
make test-sqlite # SQLite integration tests
make test-e2e # Playwright end-to-end (needs browsers)
make lint # all linters (go, js, css, spelling)
make fmt # format Go + templates
```
## Repo structure
```
tinqs-git/ ← Go module: code.gitea.io/gitea
├── main.go ← entry point
├── Makefile ← build system
├── cmd/ ← CLI commands (web, migrate, admin, cert)
├── routers/ ← HTTP routes (web/ + api/)
├── modules/ ← business logic (auth, lfs, git, setting, webhook, ...)
├── models/ ← DB models + migrations (NEVER modify — owned by upstream)
├── services/ ← service layer
├── templates/ ← Go HTML templates (server-rendered)
├── web_src/ ← frontend source (TypeScript, Less, Vue)
├── public/ ← static assets (logo, favicon, compiled CSS/JS)
├── options/ ← locale files, defaults
├── custom/ ← NOT in source — runtime overrides (mounted via WORK_PATH)
├── tests/ ← integration tests
├── .gitea/workflows/ ← CI pipeline (Gitea Actions)
└── .cursor/ ← agent infrastructure (this directory)
```
## Branches
```
main ← tracks upstream go-gitea/gitea (quarterly rebase)
tinqs/main ← our fork — all Tinqs customizations
```
## What we modify vs leave alone
| Layer | Touch | Don't touch |
|--------|-------|-------------|
| `modules/setting/` | Default APP_NAME → "tinqs-git" | — |
| `modules/lfs/` | Auto-LFS tracking, storage dashboard | Core LFS protocol |
| `modules/auth/` | Platform OAuth2 config | Core auth flow |
| `templates/` | "Gitea" → "tinqs-git", landing page | Template structure |
| `web_src/less/` | Tinqs theme (amber/gray/black) | Core Fomantic-UI |
| `public/assets/img/` | Logo, favicon | — |
| `options/locale/` | Locale strings | Translation framework |
| `Makefile` | Binary name, LDFLAGS | Build targets |
| `models/` | **NEVER** — DB schema is upstream | All models |
| `services/` | Only new features (GDD library) | Existing services |
## Values
- **Respect upstream.** Don't rename the Go module path. Don't touch models. Keep rebase-able.
- **Ship the binary.** The only artifact that matters is a single `tinqs-git` Linux amd64 binary.
- **SQLite only.** DB is compiled in. Zero external dependencies at runtime.
- **Test early.** `make test-sqlite` before every push. `make test-sqlite-migration` before DB-affecting changes.
## Boundaries
- Do NOT modify `models/` — schema migrations are upstream's domain
- Do NOT rename Go module path (`code.gitea.io/gitea`)
- Do NOT change `main.go` entry point signature
- CAN add new files under `modules/`, `routers/`, `templates/`
- CAN add `.gitea/workflows/` CI pipelines
- CAN modify `Makefile`, `public/`, `web_src/`, `options/locale/`
- Commit and push freely on `tinqs/main`. Never push to `main` (upstream tracking).
## Coordination
- Hub: `tinqs-ltd/docs` (docs/CIO agent for cross-repo orchestration)
- Platform: `tinqs-ltd/tinqs-tools` (Platform SSO integration target)
- Deploy: `tinqs-ltd/devops` (Lightsail, tinqs-proxy, DNS)
- Live instance: `ssh -i ~/.ssh/lightsail-default.pem ubuntu@46.51.144.31`
+57
View File
@@ -0,0 +1,57 @@
# Shared Context — tinqs-git
Rules shared across all agents working in this repo.
## Go module identity
The Go module path is `code.gitea.io/gitea`. **Never rename this.** It is the canonical import path for the entire Gitea ecosystem. Renaming it would break every internal import and make upstream rebase impossible.
## Build tags
The canonical build tags for our fork:
```
bindata ← embed frontend assets into binary
sqlite ← compile SQLite via CGo (required)
sqlite_unlock_notify ← SQLite performance optimization
```
Add `gogit` if using the pure-Go Git implementation instead of system `git`. Not needed for Linux builds.
## Branch discipline
- `main` = upstream tracking. Never commit directly. Only `git pull origin main` + `git rebase`.
- `tinqs/main` = our fork. All customizations live here. Rebase onto `main` quarterly.
- Feature branches: `tinqs/phase-N` → merge into `tinqs/main` when done.
## What never changes
1. `models/` — DB schema. Upstream owns this. We ride their migrations.
2. `go.mod` module path — stays `code.gitea.io/gitea`.
3. `main.go` entry point — stays as-is.
4. `modules/setting/` config keys — add new keys, never remove or rename existing ones.
## What we can change
1. `modules/` — add new packages (lfs/, auth/, billing/)
2. `routers/` — add new routes, modify templates
3. `templates/` — branding, landing page
4. `web_src/` — CSS theme, JS components
5. `public/` — logo, favicon, static assets
6. `options/locale/` — translation strings
7. `Makefile` — binary name, LDFLAGS
8. `.gitea/workflows/` — CI pipelines
## Test before push
```bash
make test-sqlite # SQLite integration tests (our DB)
make test-backend # Go unit tests
make lint # all linters
```
## Commit style
- Prefix: `feat:`, `fix:`, `chore:`, `docs:`, `ci:`, `branding:`
- Reference epic phase when relevant: `feat(lfs): auto-track game asset patterns (phase 2)`
- Never commit `gitea.db` or `node_modules/`
+47
View File
@@ -0,0 +1,47 @@
name: Build tinqs-git
on:
push:
branches: [tinqs/main]
pull_request:
branches: [tinqs/main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.26.2'
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm install -g pnpm
- name: Install Go dependencies
run: go mod download
- name: Run backend tests
run: TAGS="bindata sqlite sqlite_unlock_notify" make test-backend
- name: Run SQLite integration tests
run: TAGS="bindata sqlite sqlite_unlock_notify" make test-sqlite
build:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.26.2'
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm install -g pnpm
- name: Build tinqs-git
run: TAGS="bindata sqlite sqlite_unlock_notify" make build
- name: Rename binary
run: mv gitea tinqs-git
- uses: actions/upload-artifact@v4
with:
name: tinqs-git-linux-amd64
path: ./tinqs-git
+37
View File
@@ -0,0 +1,37 @@
name: Deploy tinqs-git to git.tinqs.com
on:
workflow_run:
workflows: [Build tinqs-git]
types: [completed]
branches: [tinqs/main]
jobs:
deploy:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: tinqs-git-linux-amd64
- name: Deploy to git.tinqs.com
env:
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
run: |
mkdir -p ~/.ssh
echo "$DEPLOY_SSH_KEY" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
scp -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
tinqs-git ubuntu@$DEPLOY_HOST:/tmp/tinqs-git
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=no \
ubuntu@$DEPLOY_HOST "
sudo systemctl stop tinqs-git || true
sudo cp /tmp/tinqs-git /usr/local/bin/tinqs-git
sudo chmod +x /usr/local/bin/tinqs-git
sudo systemctl start tinqs-git
echo 'Deploy complete'
"
+44
View File
@@ -0,0 +1,44 @@
# Epic: tinqs-git — Fork of Gitea v1.26.1
**Date:** 2026-05-20
**Source:** Forge (Ozan)
**Repo:** `tinqs-ltd/tinqs-git` (this repo)
**Product:** `tinqs-git` at `git.tinqs.com`
**Full epic:** `tinqs-ltd/docs/.cursor/plans/tinqs-git-fork.plan.md`
## Why
Tinqs-owned Git hosting with game-dev specific features — LFS-first UX, Platform SSO, GDD library.
## Phases
| Phase | What | Status |
|-------|------|--------|
| 0 | Fork, build, CI | ✅ done |
| 1 | Branding (strings, theme, landing page) | pending |
| 2 | LFS-first UX (auto-tracking, dashboard) | pending |
| 3 | Platform integration (OAuth2, webhooks, GDD library) | pending |
| 4 | Migration & cutover (clone DB, swap DNS) | pending |
| 5 | Productization (billing, marketplace, CI templates) | pending |
## Architecture
- **Language:** Go (backend) + TypeScript/Vue/Less (frontend)
- **DB:** SQLite (compiled into binary via CGo)
- **LFS:** S3 backend (`tinqs-gitea-lfs`)
- **Build:** `TAGS="bindata sqlite sqlite_unlock_notify" make build` → single binary
- **Dev:** `make watch-backend` + `make watch-frontend`
- **Test:** `make test-sqlite`
## Branches
```
main ← upstream go-gitea/gitea (quarterly rebase)
tinqs/main ← our fork — all customizations
```
## Coordination
- Hub: `tinqs-ltd/docs`
- Platform: `tinqs-ltd/tinqs-tools`
- Deploy: `tinqs-ltd/devops`
+55 -192
View File
@@ -1,212 +1,75 @@
# Gitea
# tinqs-git
[![](https://github.com/go-gitea/gitea/actions/workflows/release-nightly.yml/badge.svg?branch=main)](https://github.com/go-gitea/gitea/actions/workflows/release-nightly.yml?query=branch%3Amain "Release Nightly")
[![](https://img.shields.io/discord/322538954119184384.svg?logo=discord&logoColor=white&label=Discord&color=5865F2)](https://discord.gg/Gitea "Join the Discord chat at https://discord.gg/Gitea")
[![](https://goreportcard.com/badge/code.gitea.io/gitea)](https://goreportcard.com/report/code.gitea.io/gitea "Go Report Card")
[![](https://pkg.go.dev/badge/code.gitea.io/gitea?status.svg)](https://pkg.go.dev/code.gitea.io/gitea "GoDoc")
[![](https://img.shields.io/github/release/go-gitea/gitea.svg)](https://github.com/go-gitea/gitea/releases/latest "GitHub release")
[![](https://www.codetriage.com/go-gitea/gitea/badges/users.svg)](https://www.codetriage.com/go-gitea/gitea "Help Contribute to Open Source")
[![](https://opencollective.com/gitea/tiers/backers/badge.svg?label=backers&color=brightgreen)](https://opencollective.com/gitea "Become a backer/sponsor of gitea")
[![](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT "License: MIT")
[![](https://badges.crowdin.net/gitea/localized.svg)](https://translate.gitea.com "Crowdin")
**Tinqs' self-hosted Git+LFS hosting for game studios** — a fork of [Gitea](https://github.com/go-gitea/gitea) v1.26.1.
[繁體中文](./README.zh-tw.md) | [简体中文](./README.zh-cn.md)
`git.tinqs.com` · Go · SQLite · S3 LFS · OAuth2 SSO with `platform.tinqs.com`
## Purpose
---
The goal of this project is to make the easiest, fastest, and most
painless way of setting up a self-hosted Git service.
## Quick start
As Gitea is written in Go, it works across **all** the platforms and
architectures that are supported by Go, including Linux, macOS, and
Windows on x86, amd64, ARM and PowerPC architectures.
This project has been
[forked](https://blog.gitea.com/welcome-to-gitea/) from
[Gogs](https://gogs.io) since November of 2016, but a lot has changed.
```bash
# Prerequisites: Go 1.26.2+, Node.js 22+, pnpm
git clone https://git.arikigame.com/tinqs-ltd/tinqs-git.git
cd tinqs-git
git checkout tinqs/main
For online demonstrations, you can visit [demo.gitea.com](https://demo.gitea.com).
# Build
TAGS="bindata sqlite sqlite_unlock_notify" make build
For accessing free Gitea service (with a limited number of repositories), you can visit [gitea.com](https://gitea.com/user/login).
# Run (creates gitea.db automatically)
./tinqs-git web --port 4141
# Open http://localhost:4141
```
To quickly deploy your own dedicated Gitea instance on Gitea Cloud, you can start a free trial at [cloud.gitea.com](https://cloud.gitea.com).
## Dev
## Documentation
```bash
make watch-backend # Go hot reload
make watch-frontend # Vite HMR
make watch # both
```
You can find comprehensive documentation on our official [documentation website](https://docs.gitea.com/).
## Test
It includes installation, administration, usage, development, contributing guides, and more to help you get started and explore all features effectively.
```bash
make test # everything
make test-backend # Go unit tests
make test-sqlite # SQLite integration tests
make lint # all linters
```
If you have any suggestions or would like to contribute to it, you can visit the [documentation repository](https://gitea.com/gitea/docs)
## Build tags
## Building
| Tag | Purpose |
|-----|---------|
| `bindata` | Embed frontend assets into binary |
| `sqlite` | Compile SQLite via CGo (required) |
| `sqlite_unlock_notify` | SQLite perf optimization |
From the root of the source tree, run:
## Repo structure
TAGS="bindata" make build
```
tinqs-git/
├── main.go ← entry point
├── Makefile ← build system
├── cmd/ ← CLI (web, migrate, admin, cert)
├── routers/ ← HTTP routes
├── modules/ ← business logic (auth, lfs, git, setting)
├── models/ ← DB models (NEVER modify)
├── services/ ← service layer
├── templates/ ← Go HTML templates
├── web_src/ ← frontend source (TS, Less, Vue)
├── public/ ← static assets
├── .gitea/workflows/ ← CI (Gitea Actions)
└── .cursor/ ← agent infrastructure
```
or if SQLite support is required:
## Branches
TAGS="bindata sqlite sqlite_unlock_notify" make build
The `build` target is split into two sub-targets:
- `make backend` which requires [Go Stable](https://go.dev/dl/), the required version is defined in [go.mod](/go.mod).
- `make frontend` which requires [Node.js LTS](https://nodejs.org/en/download/) or greater and [pnpm](https://pnpm.io/installation).
Internet connectivity is required to download the go and npm modules. When building from the official source tarballs which include pre-built frontend files, the `frontend` target will not be triggered, making it possible to build without Node.js.
More info: https://docs.gitea.com/installation/install-from-source
## Using
After building, a binary file named `gitea` will be generated in the root of the source tree by default. To run it, use:
./gitea web
> [!NOTE]
> If you're interested in using our APIs, we have experimental support with [documentation](https://docs.gitea.com/api).
## Contributing
Expected workflow is: Fork -> Patch -> Push -> Pull Request
> [!NOTE]
>
> 1. **YOU MUST READ THE [CONTRIBUTORS GUIDE](CONTRIBUTING.md) BEFORE STARTING TO WORK ON A PULL REQUEST.**
> 2. If you have found a vulnerability in the project, please write privately to **security@gitea.io**. Thanks!
## Translating
[![Crowdin](https://badges.crowdin.net/gitea/localized.svg)](https://translate.gitea.com)
Translations are done through [Crowdin](https://translate.gitea.com). If you want to translate to a new language, ask one of the managers in the Crowdin project to add a new language there.
You can also just create an issue for adding a language or ask on Discord on the #translation channel. If you need context or find some translation issues, you can leave a comment on the string or ask on Discord. For general translation questions there is a section in the docs. Currently a bit empty, but we hope to fill it as questions pop up.
Get more information from [documentation](https://docs.gitea.com/contributing/localization).
## Official and Third-Party Projects
We provide an official [go-sdk](https://gitea.com/gitea/go-sdk), a CLI tool called [tea](https://gitea.com/gitea/tea) and an [action runner](https://gitea.com/gitea/act_runner) for Gitea Action.
We maintain a list of Gitea-related projects at [gitea/awesome-gitea](https://gitea.com/gitea/awesome-gitea), where you can discover more third-party projects, including SDKs, plugins, themes, and more.
## Communication
[![](https://img.shields.io/discord/322538954119184384.svg?logo=discord&logoColor=white&label=Discord&color=5865F2)](https://discord.gg/Gitea "Join the Discord chat at https://discord.gg/Gitea")
If you have questions that are not covered by the [documentation](https://docs.gitea.com/), you can get in contact with us on our [Discord server](https://discord.gg/Gitea) or create a post in the [discourse forum](https://forum.gitea.com/).
## Authors
- [Maintainers](https://github.com/orgs/go-gitea/people)
- [Contributors](https://github.com/go-gitea/gitea/graphs/contributors)
- [Translators](options/locale/TRANSLATORS)
## Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/gitea#backer)]
<a href="https://opencollective.com/gitea#backers" target="_blank"><img src="https://opencollective.com/gitea/backers.svg?width=890"></a>
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/gitea#sponsor)]
<a href="https://opencollective.com/gitea/sponsor/0/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/1/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/2/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/3/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/4/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/5/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/6/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/7/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/8/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/gitea/sponsor/9/website" target="_blank"><img src="https://opencollective.com/gitea/sponsor/9/avatar.svg"></a>
## FAQ
**How do you pronounce Gitea?**
Gitea is pronounced [/ɡɪ’ti:/](https://youtu.be/EM71-2uDAoY) as in "gi-tea" with a hard g.
**Why is this not hosted on a Gitea instance?**
We're [working on it](https://github.com/go-gitea/gitea/issues/1029).
**Where can I find the security patches?**
In the [release log](https://github.com/go-gitea/gitea/releases) or the [change log](https://github.com/go-gitea/gitea/blob/main/CHANGELOG.md), search for the keyword `SECURITY` to find the security patches.
- `main` — tracks upstream releases (quarterly rebase)
- `tinqs/main` — our fork with Tinqs customizations
## License
This project is licensed under the MIT License.
See the [LICENSE](https://github.com/go-gitea/gitea/blob/main/LICENSE) file
for the full license text.
## Further information
<details>
<summary>Looking for an overview of the interface? Check it out!</summary>
### Login/Register Page
![Login](https://dl.gitea.com/screenshots/login.png)
![Register](https://dl.gitea.com/screenshots/register.png)
### User Dashboard
![Home](https://dl.gitea.com/screenshots/home.png)
![Issues](https://dl.gitea.com/screenshots/issues.png)
![Pull Requests](https://dl.gitea.com/screenshots/pull_requests.png)
![Milestones](https://dl.gitea.com/screenshots/milestones.png)
### User Profile
![Profile](https://dl.gitea.com/screenshots/user_profile.png)
### Explore
![Repos](https://dl.gitea.com/screenshots/explore_repos.png)
![Users](https://dl.gitea.com/screenshots/explore_users.png)
![Orgs](https://dl.gitea.com/screenshots/explore_orgs.png)
### Repository
![Home](https://dl.gitea.com/screenshots/repo_home.png)
![Commits](https://dl.gitea.com/screenshots/repo_commits.png)
![Branches](https://dl.gitea.com/screenshots/repo_branches.png)
![Labels](https://dl.gitea.com/screenshots/repo_labels.png)
![Milestones](https://dl.gitea.com/screenshots/repo_milestones.png)
![Releases](https://dl.gitea.com/screenshots/repo_releases.png)
![Tags](https://dl.gitea.com/screenshots/repo_tags.png)
#### Repository Issue
![List](https://dl.gitea.com/screenshots/repo_issues.png)
![Issue](https://dl.gitea.com/screenshots/repo_issue.png)
#### Repository Pull Requests
![List](https://dl.gitea.com/screenshots/repo_pull_requests.png)
![Pull Request](https://dl.gitea.com/screenshots/repo_pull_request.png)
![File](https://dl.gitea.com/screenshots/repo_pull_request_file.png)
![Commits](https://dl.gitea.com/screenshots/repo_pull_request_commits.png)
#### Repository Actions
![List](https://dl.gitea.com/screenshots/repo_actions.png)
![Details](https://dl.gitea.com/screenshots/repo_actions_run.png)
#### Repository Activity
![Activity](https://dl.gitea.com/screenshots/repo_activity.png)
![Contributors](https://dl.gitea.com/screenshots/repo_contributors.png)
![Code Frequency](https://dl.gitea.com/screenshots/repo_code_frequency.png)
![Recent Commits](https://dl.gitea.com/screenshots/repo_recent_commits.png)
### Organization
![Home](https://dl.gitea.com/screenshots/org_home.png)
</details>
MIT — same as upstream Gitea.