Commit graph

60 commits

Author SHA1 Message Date
codex-bot-andresmgsl
2efc76f23e fix: address apt install review round
All checks were successful
labels / labels (pull_request) Successful in 10s
ci / test (pull_request) Successful in 14s
2026-08-31 15:14:12 +00:00
codex-bot-andresmgsl
9cc9576116 fix: limit apt opt-in to known sqv failure
All checks were successful
labels / labels (pull_request) Successful in 12s
ci / test (pull_request) Successful in 17s
2026-08-31 10:57:32 +00:00
codex-bot-andresmgsl
a89eafaebc fix: require opt-in for unverified apt sources
All checks were successful
labels / labels (pull_request) Successful in 12s
ci / test (pull_request) Successful in 17s
2026-08-31 10:48:42 +00:00
claude-lead-andresmgsl
9f34641545 fix: stop attributing the sqv rejection to the key algorithm
All checks were successful
labels / labels (pull_request) Successful in 11s
ci / test (pull_request) Successful in 17s
Refs #1.

`scripts/install-apt.sh` explained the sqv rejection as a malformed MPI
encoding in an Ed25519 key. The registry does not serve one: at
`api/packages/heavy-duty/debian/repository.key`, `gpg --list-packets`
reports `algo 1` (RSA) with a 2048-bit `pkey[0]`. The explanation was
therefore wrong about the only part of itself that was checkable.

The comment now states the measurement and points at #1 for the cause,
rather than naming a mechanism nobody verified. This satisfies #1's
criterion that `git grep -in 25519` return no hits outside test fixtures,
which it now does.

Behaviour is unchanged: this commit edits a comment. The automatic
fallback this file still performs contradicts ruling B and is NOT fixed
here — that work is still owed on !38.
2026-08-31 10:39:02 +00:00
codex-bot-andresmgsl
769a3c8aba fix: read apt credentials through sudo
All checks were successful
labels / labels (pull_request) Successful in 9s
ci / test (pull_request) Successful in 13s
2026-08-30 11:40:41 +00:00
codex-bot-andresmgsl
c7971eefe0 docs: document authenticated apt installs
All checks were successful
labels / labels (pull_request) Successful in 9s
ci / test (pull_request) Successful in 13s
2026-08-30 11:35:08 +00:00
codex-bot-andresmgsl
a28b2ffd74 feat: support private apt registry credentials
All checks were successful
labels / labels (pull_request) Successful in 9s
ci / test (pull_request) Successful in 13s
2026-08-30 11:34:06 +00:00
codex-bot-andresmgsl
acb46d0707 fix: keep apt signature verification on transient failures
All checks were successful
labels / labels (pull_request) Successful in 9s
ci / test (pull_request) Successful in 14s
2026-08-30 11:31:24 +00:00
c09943ea32 Merge pull request 'feat: support organization-owned repository creation' (#35) from build/24-repo-create-owner into main
All checks were successful
ci / test (push) Successful in 24s
Reviewed-on: #35
Reviewed-by: kimi-bot-andresmgsl <andres+4@heavyduty.builders>
Reviewed-by: glm-bot-andresmgsl <andres+5@heavyduty.builders>
Reviewed-by: claude-bot-andresmgsl <andres+1@heavyduty.builders>
2026-08-21 23:18:38 +00:00
codex-bot-andresmgsl
ccaeb8ee4e docs: document repo create owner routing
Some checks failed
labels / labels (pull_request) Successful in 20s
ci / test (pull_request) Has been cancelled
2026-08-21 06:37:04 +00:00
codex-bot-andresmgsl
914e4c444b feat: support organization-owned repo creation
Some checks failed
labels / labels (pull_request) Failing after 19s
ci / test (pull_request) Has been cancelled
2026-08-21 06:35:41 +00:00
95f9eb8060 Merge pull request 'Adopt ceremony labels and review machinery' (#31) from build/30-ceremony-adoption into main
All checks were successful
ci / test (push) Successful in 24s
Reviewed-on: #31
Reviewed-by: kimi-bot-andresmgsl <andres+4@heavyduty.builders>
Reviewed-by: glm-bot-andresmgsl <andres+5@heavyduty.builders>
Reviewed-by: claude-bot-andresmgsl <andres+1@heavyduty.builders>
2026-08-21 06:31:24 +00:00
codex-bot-andresmgsl
db36cf2efc Fix governance roster and mirror claims
All checks were successful
ci / test (pull_request) Successful in 24s
2026-08-20 23:23:51 +00:00
codex-bot-andresmgsl
47aed6f1de Vendor ceremony doctrine and scope mapping
All checks were successful
ci / test (pull_request) Successful in 23s
2026-08-19 20:56:10 +00:00
codex-bot-andresmgsl
9efe4bf717 Verify governance configuration in CI
All checks were successful
ci / test (pull_request) Successful in 23s
2026-08-19 19:26:29 +00:00
codex-bot-andresmgsl
a935b84ef8 Add ceremony label workflows
All checks were successful
ci / test (pull_request) Successful in 22s
2026-08-19 19:25:15 +00:00
codex-bot-andresmgsl
e86ce95180 Add governance config validation
All checks were successful
ci / test (pull_request) Successful in 24s
2026-08-19 19:23:21 +00:00
4c6185898e Merge pull request 'Add label support to issue creation' (#29) from build/26-issue-create-labels into main
All checks were successful
ci / test (push) Successful in 22s
Reviewed-on: #29
Reviewed-by: kimi-bot-andresmgsl <andres+4@heavyduty.builders>
Reviewed-by: glm-bot-andresmgsl <andres+5@heavyduty.builders>
Reviewed-by: cluade-bot-andresmgsl <andres+1@heavyduty.builders>
2026-08-19 19:15:33 +00:00
codex-bot-andresmgsl
a62a753656 Document issue create labels
Some checks failed
ci / test (pull_request) Has been cancelled
2026-08-18 00:46:47 +00:00
codex-bot-andresmgsl
7b372eb2dc Add labels to issue creation
Some checks failed
ci / test (pull_request) Has been cancelled
2026-08-18 00:45:00 +00:00
ee0cb85c7b Merge pull request 'Add issue show/comment, --json output, and pr review --commit' (#20) from feat/issue-cmds-json-review-commit into main
Some checks failed
ci / test (push) Has been cancelled
ci / test (pull_request) Has been cancelled
2026-07-26 22:01:19 +00:00
kimi-reviewer-andresmgsl
0531bde366 Add issue show/comment, --json output, and pr review --commit
Some checks failed
ci / test (pull_request) Has been cancelled
2026-07-26 22:00:47 +00:00
87b3cf98d9 Merge pull request 'auth login: default to least-privilege token scopes' (#19) from fix/auth-login-scopes into main
Some checks are pending
ci / test (push) Waiting to run
2026-07-26 22:00:12 +00:00
907917a870 Merge pull request 'install-apt: fail fast when the registry has no Release file' (#18) from fix/install-apt-fail-fast into main
Some checks are pending
ci / test (push) Waiting to run
2026-07-26 22:00:09 +00:00
c85be2e083 Merge pull request 'Add CI workflow for PRs and main pushes' (#17) from ci/pr-main-tests into main
Some checks are pending
ci / test (push) Waiting to run
2026-07-26 22:00:00 +00:00
kimi-reviewer-andresmgsl
955ce393fc auth login: default to least-privilege token scopes (#9)
Tokens minted by stoke auth login previously got read/write on every
non-admin scope. Default to the reduced set the common issue/PR/repo
commands need (read/write issue + repository, read user + organization),
add --full-scopes to restore the old behavior and --scopes <csv> for a
custom list, and print the granted scopes after login.
2026-07-26 21:43:06 +00:00
kimi-reviewer-andresmgsl
8255c568b1 install-apt: fail fast with a clear message when the registry has no Release file 2026-07-26 21:41:16 +00:00
kimi-reviewer-andresmgsl
b4b38d1d97 Add CI workflow for PRs and main pushes
Some checks failed
ci / test (pull_request) Has been cancelled
2026-07-26 21:39:57 +00:00
1165ee22c3 Merge pull request 'design: stoke brand system (replaces #12, without the 23MB of binaries)' (#16) from design/brand-system-v2 into main
Reviewed-on: #16
2026-07-26 21:28:22 +00:00
f5a44021da design: stoke brand system, without the 23MB of binaries
Replaces #12, which committed every generated render into the repo. Rebuilt on
a clean branch because merging the original would have written those blobs into
main's history permanently, even with a later commit deleting them.

What changed from #12:

- Keeps docs/DESIGN.md and assets/logo-mark.svg (1.4 kB of vector text).
- Drops ~23 MB of PNG/MP4. They live in the Figma file, which was already the
  source of truth and is linked from the doc. stoke's .git is ~23 MB; those
  assets would have doubled it, forever.
- Adds the missing "files" whitelist to package.json. There wasn't one, so
  npm pack shipped the whole working directory: measured 23.7 MB with the
  assets, and it was already shipping the test suite without them. Now 26.7 kB
  across 7 files.

The packaging bug is pre-existing and independent of the design work; the
oversized PR is just what made it visible.

61/61 tests pass; `stoke --version` → 1.3.0.
2026-07-26 21:26:30 +00:00
3e93b20ae6 Add stoke repo clone with ephemeral token handling (#14)
Closes #13.

Independently verified end-to-end: token absent from .git, clean remote URL,
no extraHeader persisted. 53/53 tests pass.
2026-07-26 21:24:42 +00:00
f4b0bdbe4e Merge pull request 'Add release, label, and api commands (v1.3.0)' (#15) from feat/releases-labels-api into main
Some checks failed
release / deb (push) Has been cancelled
Reviewed-on: #15
Reviewed-by: grok-reviewer-andresmgsl <andres+3@heavyduty.builders>
Reviewed-by: codex-reviewer-andresmgsl <andres+2@heavyduty.builders>
2026-07-26 21:02:23 +00:00
036364f844 Address review: pager owns limit/page, reject GET+input, label delete exclusivity 2026-07-26 20:52:29 +00:00
355fcc1f67 Add release, label, and api commands (v1.3.0) 2026-07-26 20:31:07 +00:00
1b990d523a Add stoke repo clone with ephemeral token handling (#13)
Clone repositories from the configured Forgejo instance using the stored
session. The token is passed to git through GIT_CONFIG_* environment-based
config (http.<url>.extraHeader) with GIT_TERMINAL_PROMPT=0, so it never
appears in the remote URL, on the command line, in logs, or in the cloned
repository's .git/config. Git streams its own output and its exit status is
forwarded to the caller.

Supports an optional destination directory plus --branch, --depth and
--origin. Adds tests covering destination handling, exit-status
propagation, remote naming, depth validation and credential redaction.
2026-07-23 22:44:21 +00:00
92a6741e4d Merge pull request 'Harden install-apt Node bootstrap and polish pr review CLI (v1.2.1)' (#6) from improve/cli-and-install-hardening into main 2026-07-23 00:10:03 +00:00
kimi-reviewer-andresmgsl
7deab688a2 Fix install-apt test return after rebase 2026-07-23 00:08:06 +00:00
d959d2a6f4 Polish PR review CLI and harden install-apt (v1.2.1)
- Accept approve/approved review event aliases; print review html_url
- Harden pr show against missing user/head/base; clarify body-file wins
- Add tests for whitespace-only comments, approved alias, review URL
- Timeout the CLI-boundary HTTP fixture; clean up install-apt test trees
- Clearer refuse-to-overwrite message when nodesource.list already exists
- Merge Node 22 NodeSource bootstrap (from fix/apt-nodejs-bootstrap)
2026-07-23 00:06:15 +00:00
41b65a2bbd Merge pull request 'install-apt: bootstrap Node 22 when distro nodejs cannot satisfy the dependency' (#5) from fix/apt-nodejs-bootstrap into main 2026-07-22 23:19:04 +00:00
0ecd935528 install-apt: address review nits — apt-readable file modes, test cleanup, clearer refusal error
- chmod 0644 every keyring and sources.list entry after writing: tee
  inherits the caller's umask, and under e.g. umask 077 apt's
  unprivileged _apt user could not read the keyring
- Tests now run the script under umask 077 and assert the 0644 modes
  (mutation-checked: dropping the chmod fails a test), and remove their
  temp directories on exit
- Refusal error now states that metadata was already refreshed before
  concluding the existing nodesource.list is unsuitable

Verified on fresh debian:13 under umask 077: all four files 0644,
install succeeds. npm test 32/32.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 23:17:20 +00:00
d396e3692b Merge pull request 'Add pr show, comment and review commands' (#4) from add-pr-review-commands into main 2026-07-22 22:24:27 +00:00
444470301c test: stubbed shell tests for the NodeSource bootstrap logic
Covers the scenarios codex-reviewer recommended: suitable candidate
already present (incl. epoch stripping), missing metadata healed by a
refresh, bootstrap on too-old distro nodejs, bootstrap failure, and the
refuse-to-overwrite branch for a user-managed nodesource.list. Every
scenario runs under a localized LC_ALL with an apt-cache stub that only
emits the English Candidate: label under LC_ALL=C, so locale-safe
parsing is regression-tested (mutation-checked: dropping LC_ALL=C fails
3 tests).

install-apt.sh gains STOKE_APT_ETC to redirect /etc/apt to a throwaway
directory under test, following the script's existing env-override
pattern. Real-container flow re-verified on debian:13.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 22:01:51 +00:00
kimi-reviewer-andresmgsl
d88cb484d3 Address PR #4 review feedback
- pr comment now rejects whitespace-only bodies and preserves raw body.
- pr review accepts request_changes alias in addition to request-changes.
- Add CLI-boundary regression test proving review body-file whitespace is
  preserved through the CLI and sent byte-for-byte to the API.
- Update README option help text for the new alias.
2026-07-22 21:57:30 +00:00
5e99006d04 install-apt: address review — locale-safe parsing, metadata refresh, no list clobber, README order
- Parse apt-cache policy under LC_ALL=C (Candidate: label is localized)
- Refresh apt metadata (best effort) and re-check before concluding no
  suitable nodejs source exists
- Refuse to overwrite an existing /etc/apt/sources.list.d/nodesource.list
  instead of silently replacing a user-managed entry
- README: manual path now adds the forge source, then the Node 22 source,
  then runs apt-get update && install — in that order

Verified on fresh debian:13: install, idempotent re-run (NodeSource not
re-added), and the refusal branch with a pre-existing user list.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 21:56:26 +00:00
0b4947b038 install-apt: bootstrap Node 22 via NodeSource when distro nodejs is too old (#1)
The package depends on nodejs (>= 22.12), but Debian 13 ships Node 20 and
Ubuntu 24.04 ships Node 18, so a fresh container failed apt-get install
with an unmet dependency. install-apt.sh now checks whether any configured
apt source can satisfy the requirement and, if not, adds the NodeSource
Node 22 repository before installing. README documents the behaviour and
the manual equivalent.

Verified on fresh debian:13 and ubuntu:24.04 containers: one-line setup,
apt-get install stoke, stoke --version all succeed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 21:39:51 +00:00
kimi-reviewer-andresmgsl
d56e509649 Preserve raw review body while validating emptiness
Validate non-APPROVED reviews using trim().length, but send the original
unmodified body to the API so Markdown whitespace is preserved.
2026-07-22 21:37:56 +00:00
kimi-reviewer-andresmgsl
6b0b3729f3 Fix review event mapping and body validation
- Map CLI 'approve' to Forgejo's expected 'APPROVED' event.
- Require a non-empty body for request-changes and comment events.
- Update API test expectation and add CLI tests for body validation.
2026-07-22 21:32:06 +00:00
kimi-reviewer-andresmgsl
fdb8dacebc Document pr show, comment and review commands in README 2026-07-22 21:21:21 +00:00
kimi-reviewer-andresmgsl
8e6907a11e Add pr show, comment and review commands
Adds CLI commands for inspecting a pull request, posting a comment, and
submitting an APPROVE/REQUEST_CHANGES/COMMENT review. Includes API client
methods, CLI wiring, and tests.
2026-07-22 21:20:46 +00:00
f30f22daf4 Merge pull request 'Add apt distribution: deb packaging, registry publish, release automation' (#3) from feat/apt-packaging into main 2026-07-22 21:18:59 +00:00