feat: implement Trello authentication & connection plugin
Add TrelloClient for Trello REST API interaction with env-var-based credential management (TRELLO_API_KEY, TRELLO_TOKEN). Implements: - trello_verify_credentials — verify API key/token against Trello API - trello_list_boards — list accessible Trello boards - trello_disconnect — clear in-memory credentials Includes full test suite (18 tests), spec document, and plugin metadata. Issue: #1
This commit is contained in:
@@ -1,3 +1,95 @@
|
||||
# trello-plugin
|
||||
|
||||
Hermes Agent plugin for Trello board integration
|
||||
Hermes Agent plugin for Trello board integration.
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. Get Trello Credentials
|
||||
|
||||
1. Get your **API Key** from: https://trello.com/app-key
|
||||
2. Generate a **Token** from the same page (click "Token" under API Key)
|
||||
3. Set these as environment variables in your Hermes profile config (`.env` or `config.yaml`):
|
||||
|
||||
```bash
|
||||
export TRELLO_API_KEY="your-trello-api-key"
|
||||
export TRELLO_TOKEN="your-trello-token"
|
||||
```
|
||||
|
||||
### 2. Install
|
||||
|
||||
```bash
|
||||
cd trello-plugin
|
||||
pip install .
|
||||
```
|
||||
|
||||
For development:
|
||||
|
||||
```bash
|
||||
pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
### 3. Register with Hermes Agent
|
||||
|
||||
Add the plugin to your Hermes config (`~/.hermes/config.yaml` or profile):
|
||||
|
||||
```yaml
|
||||
plugins:
|
||||
- trello-plugin
|
||||
```
|
||||
|
||||
## Available Tools
|
||||
|
||||
Once configured, the agent has access to these tools:
|
||||
|
||||
### `trello_verify_credentials`
|
||||
Verifies your Trello API key and token are valid by calling the Trello API.
|
||||
|
||||
```
|
||||
✓ Trello credentials verified successfully (authenticated as your-username)
|
||||
```
|
||||
|
||||
### `trello_list_boards`
|
||||
Lists all Trello boards accessible with your credentials.
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `id` | Trello board ID |
|
||||
| `name` | Board name |
|
||||
| `url` | Direct Trello URL |
|
||||
| `closed` | Whether the board is archived |
|
||||
| `starred` | Whether the board is starred |
|
||||
|
||||
### `trello_disconnect`
|
||||
Clears Trello credentials from the in-memory client. Since credentials are stored in environment variables, the agent can reconnect automatically on the next tool call.
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Install dev dependencies
|
||||
pip install -e ".[dev]"
|
||||
|
||||
# Run tests
|
||||
PYTHONPATH=src python3 -m pytest tests/ -v
|
||||
|
||||
# Lint
|
||||
pip install ruff
|
||||
ruff check src/
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
trello-plugin/
|
||||
├── src/
|
||||
│ └── trello_plugin/
|
||||
│ ├── __init__.py # Package exports
|
||||
│ ├── client.py # TrelloClient — REST API wrapper
|
||||
│ └── tools.py # Hermes tool definitions
|
||||
├── tests/
|
||||
│ └── test_auth.py # Test suite (18 tests)
|
||||
├── docs/
|
||||
│ └── backend/
|
||||
│ └── trello-auth-spec.md
|
||||
├── pyproject.toml
|
||||
└── README.md
|
||||
```
|
||||
Reference in New Issue
Block a user