gabriel / muse public
feat patch task/hub-attestation-cli #1 / 1
AI Agent gabriel · 128 days ago · May 7, 2026 · Diff

feat: add muse hub attestation create/list/revoke CLI commands

Implements the Phase 2 CLI acceptance criteria from issue #28.

- muse hub attestation create: signs ATTEST canonical message with the local Ed25519 key from ~/.muse/identity.toml, POSTs to /api/profiles/{subject}/attestations - muse hub attestation list: fetches from /api/profiles/{handle}/attestations with optional client-side --attester and --type filtering - muse hub attestation revoke: DELETE with revoker= query param

All three commands support --hub override, --json, and standard exit codes.

sha256:6f7f25a406a0f0e973eb0100bf715088ba82c812da443442b11b50bdb677e504 sha
+24 ~10 symbols
sha256:f2c7b42439153e7d66f99b21b32e5f9ded87a1c5a48172c00f629d4881dd278d snapshot
+24
symbols added
~10
symbols modified
0
dead code introduced
Semantic Changes 34 symbols
~ muse/cli/commands/hub/attestations.py .py 23 symbols added
+ _MAX_METADATA_LEN variable variable _MAX_METADATA_LEN L72–72
+ _attestation_canonical function function _attestation_canonical L79–90
+ _b64url function function _b64url L75–76
+ _claim_type function function _claim_type L378–383
+ _parse_expiry function function _parse_expiry L386–408
+ ExitCode import import ExitCode L62–62
+ _get_hub_and_identity import import _get_hub_and_identity L62–62
+ _hub_api import import _hub_api L62–62
+ _resolve_hub_override import import _resolve_hub_override L62–62
+ argparse import import argparse L55–55
+ base64 import import base64 L56–56
+ datetime import import datetime L60–60
+ json import import json L57–57
+ make_envelope import import make_envelope L62–62
+ sanitize_display import import sanitize_display L62–62
+ start_timer import import start_timer L62–62
+ sys import import sys L58–58
+ timezone import import timezone L60–60
+ parse import import urllib.parse L59–59
+ register function function register L413–541
+ run_attestation_create function function run_attestation_create L93–240
+ run_attestation_list function function run_attestation_list L243–315
+ run_attestation_revoke function function run_attestation_revoke L318–373
~ muse/cli/commands/hub/__init__.py .py 1 symbol added, 10 symbols modified
+ attestations import import attestations L25–25
~ issues
~ labels
~ repos
~ users
← Older Oldest on task/hub-attestation-cli
All commits
Newer → Latest on task/hub-attestation-cli

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:6f7f25a406a0f0e973eb0100bf715088ba82c812da443442b11b50bdb677e504 --body "your comment"