# Forgejo Configuration

This directory contains configuration files for Forgejo (self-hosted Git service).

## Pull Request Template

The `pull_request_template.md` is automatically loaded when creating a new Pull Request. It provides a checklist and instructions for the PR workflow, including how to run the full test suite before merging.

## Branch Protection Setup

To enforce the full test suite before merging to `main`, configure branch protection in Forgejo:

### Steps:

1. Go to **Repository Settings** → **Branches** → **Protected Branches**
2. Add a new rule for branch: `main`
3. Configure the following settings:
   - ☑️ **Enable Branch Protection**
   - ☑️ **Require status checks to pass before merging**
     - Add required check: `check-full`
   - ☐ **Require approvals** (optional, based on team preference)
   - ☑️ **Block if there are outstanding requests** (optional)

### What this does:

- The **"Merge"** button in PRs will only be enabled after `check-full` passes
- `check-full` is triggered by **promoting** a build in Drone CI (see PR template)
- This ensures all tests (including slow and UI tests) run before merging

## Workflow

1. **Create PR** → Fast test suite (`check-fast`) runs automatically
2. **Development** → Fast tests run on every push for quick feedback
3. **Ready to merge:**
   - Remove `WIP:` from PR title
   - Go to Drone CI and **promote** the build to `production`
   - This triggers `check-full` (full test suite)
4. **After full tests pass** → Merge button becomes available
5. **Merge to main** → Container is built and published

## Secrets Required

Make sure the following secrets are configured in Drone CI:

- `DRONE_REGISTRY_USERNAME` - For container registry
- `DRONE_REGISTRY_TOKEN` - For container registry
- `RENOVATE_TOKEN` - For Renovate bot
- `GITHUB_COM_TOKEN` - For Renovate bot (GitHub dependencies)
