Metadata-Version: 2.4
Name: plugsync-cli
Version: 0.3.0
Summary: Command-line client for plugsync HubSpot connectors -- manage connectors and plugins like code, no repo checkout required
Author-email: Exelab <hello@plugsync.com>
License: Proprietary
Project-URL: Homepage, https://plugsync.com
Project-URL: Documentation, https://github.com/exelab/plugsync/blob/main/docs/content/reference/plugins/dev-loop.md
Project-URL: Repository, https://github.com/exelab/plugsync
Project-URL: Issues, https://github.com/exelab/plugsync/issues
Keywords: plugsync,hubspot,cli,connectors,integration
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: click>=8.1
Requires-Dist: httpx>=0.27
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
Requires-Dist: respx>=0.21; extra == "dev"

# plugsync-cli

Command-line client for [plugsync](https://plugsync.com), managing HubSpot
connectors like code: pull a connector's config to a local directory, edit
it, push it back to the draft, diff against a published version, validate,
preview a publish, and manage plugins -- all without cloning the plugsync
backend repo.

`push` writes the draft and stops. Publishing is opt-in (`push --publish`),
so a config never reaches production as a side effect of saving a file.

## Install

```bash
pip install plugsync-cli
```

Requires Python 3.12+.

## Quickstart

```bash
plugsync auth login -e you@example.com
plugsync pull my-connector
```

`api_url` defaults to the hosted platform (`https://app.plugsync.com`), so
there's nothing to configure for the common case. Point it elsewhere with
`plugsync config set api_url <url>`. `plugsync auth login` saves a bearer
credential to `~/.plugsync/config.yaml` that every subsequent command
reuses. `PLUGSYNC_API_URL` / `PLUGSYNC_API_KEY` environment variables
override the config file, handy for CI.

## Commands

| Command | Purpose |
|---|---|
| `plugsync auth login` / `logout` | Authenticate (email/password JWT, or a long-lived org API key with `--token`) |
| `plugsync config set/get/show` | Manage `~/.plugsync/config.yaml` |
| `plugsync pull <name>` | Download a connector's draft as a local directory (`--revision N` for a published version) |
| `plugsync push <name>` | Upload a local connector directory to the draft (`--publish` to also publish) |
| `plugsync diff <name>` | Diff local files vs. a published version |
| `plugsync validate <name>` | Preflight the draft; non-zero exit on an error |
| `plugsync preview <name>` | Preview a publish's effects and its preflight findings |
| `plugsync log <name>` | Show a connector's published version history |
| `plugsync rollback <name>` | Restore a published version into the draft |
| `plugsync plugin init/push/list/status/logs/metrics/invoke/promote/publish/rollback` | Author and manage plugins (Enterprise tier) |

Run `plugsync --help` or `plugsync <command> --help` for the full option list.

## Compatibility

This CLI ships on its own release cadence, independent of the plugsync
backend. It declares the minimum API version it expects and checks it
against the API at the start of any command that talks to it, warning
(never failing outright) if the API is older than expected.

## Documentation

Full reference docs, including the plugin authoring dev-loop, live at
[docs.plugsync.com](https://docs.plugsync.com) and in the
[plugsync repository](https://github.com/exelab/plugsync/tree/main/docs).

## License

Proprietary. This CLI talks to the plugsync SaaS API; see
[plugsync.com/terms](https://plugsync.com/terms) for the terms governing use
of the plugsync service.
