admin/.gitea/BRANCH_PROTECTION.md
alisaza a307400f83 ci: migrate Actions from GitHub to Gitea registry [skip ci]
Move workflows under .gitea/workflows and publish images to
git.ghabilee.ir instead of ghcr.io so deploy runs on self-hosted Gitea.
2026-09-13 14:49:37 +03:30

50 lines
1.6 KiB
Markdown

# Branch protection on `main` (Gitea)
Configure in Gitea:
**Repository → Settings → Branches → Add branch protection rule → Branch name pattern: `main`**
Recommended settings:
- [x] Enable push
- [x] Enable merge
- [x] Require pull request reviews (optional for solo work)
- [x] Enable status check
- [x] Require branches to be up to date before merging
### Required status checks
- `Dependency vulnerability scan`
- `Secret scan`
- `Build, test, and quality checks`
Until status checks are wired, use **Pull Request → merge** (not direct push) and rely on
local Husky `pre-push` (`pnpm prepush:check`).
### Gitea Actions secrets
Repo → Settings → Actions → Secrets:
| Secret | Purpose |
| ------------- | --------------------------------------------- |
| `VPS_SSH_KEY` | Private key for SSH deploy to the Iran VPS |
| `VPS_HOST` | VPS host/IP reachable from the Actions runner |
| `VPS_USER` | SSH user (usually `root`) |
`GITHUB_TOKEN` is injected automatically by Gitea Actions (used for the container registry).
### Container registry
Images publish to: `git.ghabilee.ir/<owner>/<repo>:<sha>`
### Telegram deploy alerts
Notify scripts SSH into the VPS and use Telegram credentials already on the server
(`/opt/ghabilee-admin` / shared ops env). No extra Gitea secrets are required for notify
unless you change `scripts/notify-via-vps.sh`.
### Remotes
- Gitea (canonical): `https://git.ghabilee.ir/AliSaZa/admin.git`
- Git SSH: `ssh://git@git.ghabilee.ir:222/AliSaZa/admin.git`