56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
zzpyjenkins is a CLI tool to interact with Jenkins servers for building jobs. It wraps the `python-jenkins` library with a user-friendly CLI using Click and rich terminal output.
|
|
|
|
## Development Commands
|
|
|
|
```bash
|
|
# Install dependencies
|
|
uv sync
|
|
|
|
# Run the CLI
|
|
uv run zzpyjenkins --help
|
|
|
|
# Format code
|
|
uv run ruff format .
|
|
|
|
# Lint
|
|
uv run ruff check .
|
|
|
|
# Run tests
|
|
uv run pytest
|
|
```
|
|
|
|
## Architecture
|
|
|
|
- **`src/zzpyjenkins/cli.py`**: Click-based CLI entry point. Defines commands (`info`, `list`, `build`, `status`, `watch`) and handles parameter parsing. Uses `get_client()` to create `JenkinsClient` from environment variables.
|
|
|
|
- **`src/zzpyjenkins/jenkins_client.py`**: `JenkinsClient` class that wraps `python-jenkins` library. Handles all Jenkins API interactions and formats output using Rich (tables, colored status).
|
|
|
|
## Configuration
|
|
|
|
Credentials are read from `~/.config/zzpyjenkins/config.toml`. Create this file with your Jenkins server configurations:
|
|
|
|
```toml
|
|
[work]
|
|
url = "https://jenkins.work.com"
|
|
username = "myuser"
|
|
password = "mypassword"
|
|
|
|
[home]
|
|
url = "http://localhost:8080"
|
|
username = "admin"
|
|
password = "admin123"
|
|
```
|
|
|
|
Use `-s/--server` option to select which server to use:
|
|
|
|
```bash
|
|
zzpyjenkins -s work info
|
|
zzpyjenkins --server home list
|
|
```
|