Read delivery tokens from files and check selected paths before release
This commit is contained in:
@@ -16,7 +16,7 @@ The current profile fields are:
|
||||
| `checks` | No | Ordered additional child commands, each with an argument vector and optional environment map. |
|
||||
| `validation` | No | Optional shared checks selected by ReleaseKit. |
|
||||
| `build` | No | Optional main package, binary name, and selected `GOOS/GOARCH` target strings. |
|
||||
| `delivery` | No | Optional Gitea `base_url`, `owner`, `repository`, and `token_env` settings for tagged-source delivery. |
|
||||
| `delivery` | No | Optional Gitea `base_url`, `owner`, `repository`, `token_env`, and `token_file` settings for tagged-source delivery. |
|
||||
|
||||
`module_dir` names the selected module's physical location in the repository;
|
||||
ReleaseKit reads its declared import path from that module's own `go.mod`. The
|
||||
@@ -141,12 +141,32 @@ symlink size is the committed link text. Gitlinks have no measured size. Only
|
||||
the captured candidate is checked, one offending file is reported at a time,
|
||||
and historical or aggregate repository size is not measured.
|
||||
|
||||
`validation.untracked_files` is an optional list of literal repository-relative
|
||||
file paths that must be absent from the captured commit. It runs after the Go
|
||||
checks and before other file checks, using the `untracked-files` identity and
|
||||
reporting selected committed paths. Omission, `null`, or `[]` disables it.
|
||||
Paths use slash separators and ordinary relative normalization and must stay
|
||||
within the repository. They are checked against the whole captured repository,
|
||||
independently of the selected module and `shared_files`. The check reads path
|
||||
metadata only; it does not read token contents, follow symlink targets, require
|
||||
local files to exist, or inspect Git history. Existing clean-index/worktree
|
||||
requirements still apply to candidate operations. An ignore rule alone does
|
||||
not remove a previously committed file from the candidate.
|
||||
|
||||
The `delivery` object contains `base_url`, `owner`, `repository`, and optional
|
||||
`token_env`. Its values are required when running `deliver`, but credentials are
|
||||
not required for `check`, `publish`, or `build`. `token_env` names the
|
||||
environment variable containing the Gitea token; it defaults to
|
||||
`RELEASEKIT_GITEA_TOKEN`. The CLI reads this variable only for `deliver` and
|
||||
passes its value explicitly to the library operation.
|
||||
`token_env` and `token_file`. `token_env` names the environment variable
|
||||
containing the Gitea token and defaults to `RELEASEKIT_GITEA_TOKEN`. A nonblank
|
||||
environment value takes precedence. When it is unset or blank, `token_file`
|
||||
selects a plain token-containing file; relative paths resolve from the Git
|
||||
repository root, and absolute paths are used as supplied. The CLI trims leading
|
||||
and trailing whitespace from file contents. An unreadable or blank file, or
|
||||
the absence of both credential sources, returns status 2. Omission of
|
||||
`token_file` retains environment-only loading.
|
||||
|
||||
Credential loading runs only for `deliver` and `ci-deliver`. `check`, `publish`,
|
||||
and `build` do not read the token file or require a token. The CLI passes the
|
||||
resolved value explicitly to the library operation. Selecting a token file and
|
||||
selecting the optional untracked-file validator are independent settings.
|
||||
|
||||
`expected_push_url`, when nonempty, is compared exactly with Git's resolved
|
||||
effective push URL during `publish`, before candidate validation. It applies
|
||||
|
||||
Reference in New Issue
Block a user