Add TUI add and preview commands

Use charmbracelet/huh for an interactive add flow. Add a preview
subcommand to enter/exit per-project pre-release tags. Move stamp.toml
into .stamp/ and add ConfigPath helper. Prefer --snapshot then project
PreTag when computing versions and promote bumps to pre-release when
appropriate. Export CurrentVersion and add required TUI deps to go.mod.
This commit is contained in:
Thomas
2026-03-12 22:59:20 +01:00
parent fb347eaa54
commit 8049c505a0
12 changed files with 323 additions and 87 deletions

View File

@@ -32,9 +32,9 @@ Or build from source:
go install git.thokra.dev/thokra/stamp/cmd/stamp@latest
```
### 2. Create stamp.toml
### 2. Create .stamp/stamp.toml
At the root of your repository:
Inside the `.stamp/` directory at the root of your repository:
```toml
[[projects]]
@@ -48,6 +48,8 @@ version = "0.1.0"
artifacts = ["dist/my-app-*"]
```
Because `stamp.toml` lives inside `.stamp/`, git will track the directory without needing a `.gitignore` file in it.
See [`examples/stamp.toml`](../examples/stamp.toml) for a fully annotated example.
---
@@ -77,6 +79,8 @@ bumps:
Added X feature
```
> Stamp files live alongside `stamp.toml` in the `.stamp/` directory.
Commit and push the stamp file alongside your code changes.
### Checking pending stamps
@@ -177,7 +181,7 @@ jobs:
## Stamp File Format
Stamp files live in `.stamp/` and use Markdown with either YAML or TOML frontmatter.
Stamp files live in `.stamp/` alongside `stamp.toml`, and use Markdown with either YAML or TOML frontmatter.
### YAML frontmatter (default)
@@ -224,6 +228,6 @@ Short description.
| Variable | Purpose |
|----------|---------|
| `STAMP_REPO` | Repository slug `owner/repo` used by publish and comment |
| `GITHUB_TOKEN` | GitHub personal access token for releases and PR comments |
| `GITEA_TOKEN` | Gitea access token |
| `GITHUB_TOKEN` | GitHub token for releases and PR comments — automatically provided by the GitHub Actions runner; no manual setup needed |
| `GITEA_TOKEN` | Gitea access token **must be created manually**; create a token in your Gitea account settings and store it as a repository secret |
| `GITEA_BASE_URL` | Gitea instance URL (e.g. `https://gitea.example.com`) — also used to detect Gitea mode |