forge attest runs .forge/ci in a clean worktree of each commit and signs the result into refs/notes/ci; forge push sends it with the branch. The script installs the JavaScript dependencies with npm ci, then runs make verify: Go tests, go vet, the bundle check and the JavaScript tests.
- commit
- e06f6c9390854c97978cc796fe2cd4cbecb402b5
- parent
- 92682824e5668ced1ecd25f7358730d82194beb3
- author
- cat <admin@dev.site>
- ci
- ✓ passed in 67s, signed by cat
ci attestation
forge-attestation 1 type ci commit e06f6c9390854c97978cc796fe2cd4cbecb402b5 tree d51a779939d5f35286ecf3435e9c4fa42a17db26 script .forge/ci 12c85fa99583bf26da36726b6614d85bdfa82ace result pass exit 0 started 2026-10-17T22:55:37Z duration 67s runner (not shown here; refs/notes/ci has it) system Darwin 25.5.0 arm64 env host log sha256:7600ff84436c38c518a935be6047abb1b61da7d72471aad82a0d6a7ea7a4ecd9 1917 lines | duration_ms: 2.730208 | type: 'test' | ... |# Subtest: a new page signs d, title and summary and opens the page |ok 301 - a new page signs d, title and summary and opens the page | --- | duration_ms: 42.282291 | type: 'test' | ... |# Subtest: the name field wins over the title and is normalized |ok 302 - the name field wins over the title and is normalized | --- | duration_ms: 4.162292 | type: 'test' | ... |# Subtest: another signer publishes a fork of the version in view |ok 303 - another signer publishes a fork of the version in view | --- | duration_ms: 5.56025 | type: 'test' | ... |# Subtest: propose publishes the fork and then a merge request to the author |ok 304 - propose publishes the fork and then a merge request to the author | --- | duration_ms: 8.672625 | type: 'test' | ... |# Subtest: the author's own edit carries no fork tags and cannot be proposed |ok 305 - the author's own edit carries no fork tags and cannot be proposed | --- | duration_ms: 4.650667 | type: 'test' | ... |# Subtest: missing fields, a changed signature and a relay refusal stop before or after one event |ok 306 - missing fields, a changed signature and a relay refusal stop before or after one event | --- | duration_ms: 10.425625 | type: 'test' | ... |# Subtest: nostr-react signs the reaction the pressed button carries |ok 307 - nostr-react signs the reaction the pressed button carries | --- | duration_ms: 13.798792 | type: 'test' | ... |# Subtest: nostr-react refuses unknown reactions and bad addresses before signing |ok 308 - nostr-react refuses unknown reactions and bad addresses before signing | --- | duration_ms: 3.240166 | type: 'test' | ... |1..308 |# tests 308 |# suites 0 |# pass 308 |# fail 0 |# cancelled 0 |# skipped 0 |# todo 0 |# duration_ms 8280.239625
Signature: good, cat
| A | .forge/ | 6 | ++++++ |