Metadata-Version: 2.4
Name: pypus
Version: 2.2.1
Summary: A modern, typed CLI toolkit for the Octopus Deploy API
License: MIT
License-File: LICENSE
Author: Michael MacKenna
Author-email: mmackenna@unitedfiregroup.com
Requires-Python: >=3.13,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: rich (>=13.9.4,<14.0.0)
Requires-Dist: typer (>=0.27.1,<0.28.0)
Description-Content-Type: text/markdown

# Pypus

Pypus is a modern, typed CLI tool for Octopus Deploy API tasks — inspecting Spaces,
Projects, Environments, and Machines; migrating variables between servers or spaces;
searching every variable in a Space by name or value; managing Runbooks; and
redeploying current releases to specific targets across a project group.

Built on [Typer](https://typer.tiangolo.com/) and [Rich](https://rich.readthedocs.io/),
targeting **Python 3.13+**.

## Install

Pypus uses [uv](https://docs.astral.sh/uv/) to create its virtual environment and
[Poetry](https://python-poetry.org/) to manage dependencies:

```bash
uv venv --python 3.13 .venv
source .venv/bin/activate
poetry install
```

Alternatively, once published:

```bash
pip install pypus
```

## Configure

```bash
export OCTOPUS_API_KEY=API-EXAMPLE1234567890
export OCTOPUS_SERVER_URI=https://deploys.example.com/api
pypus check-env
```

## Examples

Display a project's deployment process:

```bash
pypus get-process MySpace "My Project"
```

Redeploy every application in a project group, previewing what would happen first:

```bash
pypus redeploy Digital "Image Server Applications" --check
pypus redeploy Digital "Image Server Applications" --environment Production --target web01
```

## Documentation

Full documentation, including the complete CLI reference and API reference, is
built with [MkDocs](https://www.mkdocs.org/) + [Material](https://squidfunk.github.io/mkdocs-material/):

```bash
mkdocs serve
```

## Development

```bash
poetry install
pytest              # run the test suite (100% coverage)
ruff check .        # lint
mypy src/pypus       # type-check
mkdocs build --strict
```

