From 1502bb6b051b657f3a3d35cf7199720239afa818 Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Thu, 8 Jan 2026 21:59:06 +0100 Subject: [PATCH] docs: add CLAUDE.md for Claude Code guidance --- CLAUDE.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..ee2fe6d --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,32 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Repository Overview + +This repository contains reusable Gitea Actions workflows for Unbound Software repositories. These workflows are called from other repositories using Gitea's `workflow_call` trigger. + +## Architecture + +- **Location**: Workflows are stored in `.gitea/workflows/` (not `.github/workflows/`) +- **Platform**: Gitea Actions (compatible with GitHub Actions syntax but runs on Gitea) +- **Base images**: Uses pinned Alpine and git-cliff images with SHA256 digests for reproducibility + +### Release.yml Workflow + +The main workflow automates semantic versioning releases using git-cliff for changelog generation: + +1. **preconditions**: Validates release token exists at `/runner-secrets/release-token` +2. **changelog**: Generates changelog, determines version bump, checks for changes +3. **handle-pr**: Creates/updates a `next-release` branch and PR with CHANGELOG.md and .version +4. **prepare-release**: Prepares release artifacts when triggered +5. **create-release** or **create-tag**: Creates Gitea release or tag based on `tag_only` input + +Version tracking uses a `.version` JSON file containing `{"version":"vX.Y.Z"}`. + +## Development Notes + +- No build/test commands exist - this is a workflow-only repository +- Workflows use Gitea API directly via curl (not gh CLI) +- Authentication reads from file-based token at `/runner-secrets/release-token` +- Container images should include SHA256 digests for security -- 2.52.0