HarperFast / HarperFast/harper-pro

Sign release tags (annotated + GPG-signed)

Open
#165 0 comments 0 reactions 0 assignees View on GitHub
area:ci enhancement from-jira
Dominant language
JavaScript
Stars
3
Forks
0
Avg merge
1d 21h
Merged PRs (30d)
80

Description

Harden the release process by producing **signed, annotated** release tags. Today release tags are lightweight commit refs with no signature:

```
$ git tag -v v5.0.17
error: v5.0.17: cannot verify a non-tag object of type commit.
```

## Ask

- Configure the release workflow to create annotated tags signed with a key controlled by the release identity (or via GitHub's `--sign-tag` automation in `create-release.yaml`).
- Document the signing key (or signer identity) and how to verify a tag.
- Enforce signed-tags on the protected release ref so unsigned tags can't be pushed.

## Why

- Provenance: `git tag -v v5.x.y` should cryptographically confirm the tag came from the release pipeline / authorized signer.
- Defense-in-depth alongside [CORE-3054](https://harperdb.atlassian.net/browse/CORE-3054) (GITHUB_TOKEN audit, [HarperFast/harper#568](https://github.com/HarperFast/harper/issues/568)).

Reference: [GitHub docs — Signing tags](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-tags).

## Acceptance criteria

- Newly-created release tags are annotated and signed.
- `git tag -v ` succeeds against any post-change release.
- Branch/tag-protection rules enforce signing on the release ref.
- Documented in release runbook.

## Scope

Both `HarperFast/harper` and `HarperFast/harper-pro` (harper-pro is what end-users install, so its tags are the customer-facing artifact, but harper's tags should be signed too for consistency).

---

Tracked in Jira: [CORE-3030](https://harperdb.atlassian.net/browse/CORE-3030)

🤖 Filed by Claude on behalf of Kris.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.