Rust CLI for tangled

Implement spindle config, list, and logs commands master

- Add spindle field to Repository struct - Implement update_repo_spindle() to enable/disable CI for repos - Implement list_pipelines() to fetch pipeline records from PDS - Add Pipeline, TriggerMetadata, TriggerRepo, and Workflow structs - Implement spindle config command: - Enable/disable spindle for a repository - Support custom spindle URL via --url flag - Update repo record's spindle field - Implement spindle list command: - List all pipeline runs for a repository - Display trigger kind, repo, and workflows - Implement spindle logs command: - Stream logs from a workflow execution via WebSocket - Support both full job_id format (knot:rkey:name) and short format (name) - Add --lines and --follow flags for log control - Add WebSocket dependencies: tokio-tungstenite and futures-util - Keep spindle run as stub (to be implemented later)


+443 -12
5 changed files