kctl-glitchtip 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kctl_glitchtip-0.2.0/.gitignore +11 -0
- kctl_glitchtip-0.2.0/PKG-INFO +138 -0
- kctl_glitchtip-0.2.0/README.md +113 -0
- kctl_glitchtip-0.2.0/pyproject.toml +60 -0
- kctl_glitchtip-0.2.0/skills/glitchtip-admin/SKILL.md +270 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/__init__.py +1 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/__main__.py +3 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/cli.py +136 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/__init__.py +0 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/alerts.py +110 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/config_cmd.py +498 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/doctor_cmd.py +82 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/events.py +79 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/health.py +200 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/issues.py +175 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/orgs.py +75 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/projects.py +253 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/skill_cmd.py +76 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/teams.py +172 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/uptime.py +166 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/commands/users.py +90 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/core/__init__.py +0 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/core/callbacks.py +30 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/core/client.py +106 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/core/config.py +120 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/core/exceptions.py +21 -0
- kctl_glitchtip-0.2.0/src/kctl_glitchtip/core/plugins.py +13 -0
- kctl_glitchtip-0.2.0/tests/__init__.py +0 -0
- kctl_glitchtip-0.2.0/tests/conftest.py +60 -0
- kctl_glitchtip-0.2.0/tests/test_core.py +383 -0
- kctl_glitchtip-0.2.0/tests/test_smoke.py +132 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kctl-glitchtip
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Kodemeio GlitchTip CLI - manage GlitchTip error tracking platform
|
|
5
|
+
Author-email: Kodemeio <dev@kodeme.io>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: cli,error-tracking,glitchtip,kodemeio,sentry
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: System Administrators
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Classifier: Topic :: System :: Systems Administration
|
|
15
|
+
Requires-Python: >=3.12
|
|
16
|
+
Requires-Dist: httpx>=0.28.0
|
|
17
|
+
Requires-Dist: kctl-lib>=0.4.0
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Requires-Dist: mypy>=1.14.0; extra == 'dev'
|
|
20
|
+
Requires-Dist: pytest-httpx>=0.35.0; extra == 'dev'
|
|
21
|
+
Requires-Dist: pytest>=8.3.0; extra == 'dev'
|
|
22
|
+
Requires-Dist: ruff>=0.9.0; extra == 'dev'
|
|
23
|
+
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
|
|
26
|
+
# kctl-glitchtip
|
|
27
|
+
|
|
28
|
+
Kodemeio CLI for managing GlitchTip error tracking — projects, issues, teams, uptime monitors, alerts, and platform health.
|
|
29
|
+
|
|
30
|
+
## Installation
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Install from PyPI
|
|
34
|
+
uv tool install kctl-glitchtip
|
|
35
|
+
|
|
36
|
+
# Or add to workspace (monorepo)
|
|
37
|
+
uv add kctl-glitchtip
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Quick Start
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Initialize config
|
|
44
|
+
kctl-glitchtip config init
|
|
45
|
+
|
|
46
|
+
# List all projects
|
|
47
|
+
kctl-glitchtip projects list
|
|
48
|
+
|
|
49
|
+
# List unresolved issues in an org
|
|
50
|
+
kctl-glitchtip issues list --org kodemeio --status unresolved
|
|
51
|
+
|
|
52
|
+
# Show platform dashboard
|
|
53
|
+
kctl-glitchtip health dashboard
|
|
54
|
+
|
|
55
|
+
# List uptime monitors
|
|
56
|
+
kctl-glitchtip uptime list --org kodemeio
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Command Groups
|
|
60
|
+
|
|
61
|
+
| Group | Commands | Description |
|
|
62
|
+
|-------|----------|-------------|
|
|
63
|
+
| `projects` | `list`, `get`, `create`, `update`, `delete`, `dsn`, `dsn-create`, `stats` | Manage projects and DSN keys |
|
|
64
|
+
| `issues` | `list`, `get`, `resolve`, `ignore`, `delete`, `bulk-resolve` | Manage error issues |
|
|
65
|
+
| `events` | `list`, `cleanup` | View and clean up error events |
|
|
66
|
+
| `teams` | `list`, `get`, `create`, `delete`, `add-member`, `remove-member` | Manage teams and membership |
|
|
67
|
+
| `orgs` | `list`, `get` | View organizations and members |
|
|
68
|
+
| `users` | `list`, `create` | Manage users and invitations |
|
|
69
|
+
| `alerts` | `list`, `test-alert`, `test-webhook`, `test-email` | Manage alerts and notifications |
|
|
70
|
+
| `uptime` | `list`, `create`, `delete`, `checks` | Manage uptime monitors |
|
|
71
|
+
| `health` | `check`, `dashboard`, `celery-status`, `redis-info` | Platform health and diagnostics |
|
|
72
|
+
| `config` | `init`, `add`, `use`, `show`, `validate`, `remove`, `set`, `profiles`, `current` | Manage CLI profiles |
|
|
73
|
+
|
|
74
|
+
## Global Options
|
|
75
|
+
|
|
76
|
+
| Option | Description |
|
|
77
|
+
|--------|-------------|
|
|
78
|
+
| `--json` | Output as JSON |
|
|
79
|
+
| `--format / -f` | Output format: `pretty`, `json`, `csv`, `yaml` |
|
|
80
|
+
| `--quiet / -q` | Suppress informational messages |
|
|
81
|
+
| `--no-header` | Omit header row in CSV output |
|
|
82
|
+
| `--profile / -p` | Select config profile by name |
|
|
83
|
+
| `--url` | Override API URL for this invocation |
|
|
84
|
+
| `--token` | Override API token for this invocation |
|
|
85
|
+
| `--version / -V` | Show version and exit |
|
|
86
|
+
|
|
87
|
+
## Configuration
|
|
88
|
+
|
|
89
|
+
Config lives in `~/.config/kodemeio/config.yaml` under the `glitchtip` key.
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Initialize a profile interactively
|
|
93
|
+
kctl-glitchtip config init
|
|
94
|
+
|
|
95
|
+
# Add a named profile
|
|
96
|
+
kctl-glitchtip config add --profile prod \
|
|
97
|
+
--url https://glitchtip.kodeme.io \
|
|
98
|
+
--token YOUR_API_TOKEN
|
|
99
|
+
|
|
100
|
+
# Switch active profile
|
|
101
|
+
kctl-glitchtip config use prod
|
|
102
|
+
|
|
103
|
+
# Show current profile (token masked)
|
|
104
|
+
kctl-glitchtip config show
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Example `~/.config/kodemeio/config.yaml`:
|
|
108
|
+
|
|
109
|
+
```yaml
|
|
110
|
+
glitchtip:
|
|
111
|
+
default_profile: prod
|
|
112
|
+
profiles:
|
|
113
|
+
prod:
|
|
114
|
+
url: https://glitchtip.kodeme.io
|
|
115
|
+
token: ${GLITCHTIP_TOKEN}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Environment variables expand automatically — set `GLITCHTIP_TOKEN` in your shell or `.env`.
|
|
119
|
+
|
|
120
|
+
## Development
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Install dev dependencies
|
|
124
|
+
cd packages/kctl-glitchtip
|
|
125
|
+
uv sync --all-extras
|
|
126
|
+
|
|
127
|
+
# Run tests
|
|
128
|
+
uv run pytest tests/ -v
|
|
129
|
+
|
|
130
|
+
# Lint
|
|
131
|
+
uv run ruff check src/
|
|
132
|
+
|
|
133
|
+
# Type check
|
|
134
|
+
uv run mypy src/
|
|
135
|
+
|
|
136
|
+
# Run CLI locally
|
|
137
|
+
uv run kctl-glitchtip --help
|
|
138
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# kctl-glitchtip
|
|
2
|
+
|
|
3
|
+
Kodemeio CLI for managing GlitchTip error tracking — projects, issues, teams, uptime monitors, alerts, and platform health.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install from PyPI
|
|
9
|
+
uv tool install kctl-glitchtip
|
|
10
|
+
|
|
11
|
+
# Or add to workspace (monorepo)
|
|
12
|
+
uv add kctl-glitchtip
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Initialize config
|
|
19
|
+
kctl-glitchtip config init
|
|
20
|
+
|
|
21
|
+
# List all projects
|
|
22
|
+
kctl-glitchtip projects list
|
|
23
|
+
|
|
24
|
+
# List unresolved issues in an org
|
|
25
|
+
kctl-glitchtip issues list --org kodemeio --status unresolved
|
|
26
|
+
|
|
27
|
+
# Show platform dashboard
|
|
28
|
+
kctl-glitchtip health dashboard
|
|
29
|
+
|
|
30
|
+
# List uptime monitors
|
|
31
|
+
kctl-glitchtip uptime list --org kodemeio
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Command Groups
|
|
35
|
+
|
|
36
|
+
| Group | Commands | Description |
|
|
37
|
+
|-------|----------|-------------|
|
|
38
|
+
| `projects` | `list`, `get`, `create`, `update`, `delete`, `dsn`, `dsn-create`, `stats` | Manage projects and DSN keys |
|
|
39
|
+
| `issues` | `list`, `get`, `resolve`, `ignore`, `delete`, `bulk-resolve` | Manage error issues |
|
|
40
|
+
| `events` | `list`, `cleanup` | View and clean up error events |
|
|
41
|
+
| `teams` | `list`, `get`, `create`, `delete`, `add-member`, `remove-member` | Manage teams and membership |
|
|
42
|
+
| `orgs` | `list`, `get` | View organizations and members |
|
|
43
|
+
| `users` | `list`, `create` | Manage users and invitations |
|
|
44
|
+
| `alerts` | `list`, `test-alert`, `test-webhook`, `test-email` | Manage alerts and notifications |
|
|
45
|
+
| `uptime` | `list`, `create`, `delete`, `checks` | Manage uptime monitors |
|
|
46
|
+
| `health` | `check`, `dashboard`, `celery-status`, `redis-info` | Platform health and diagnostics |
|
|
47
|
+
| `config` | `init`, `add`, `use`, `show`, `validate`, `remove`, `set`, `profiles`, `current` | Manage CLI profiles |
|
|
48
|
+
|
|
49
|
+
## Global Options
|
|
50
|
+
|
|
51
|
+
| Option | Description |
|
|
52
|
+
|--------|-------------|
|
|
53
|
+
| `--json` | Output as JSON |
|
|
54
|
+
| `--format / -f` | Output format: `pretty`, `json`, `csv`, `yaml` |
|
|
55
|
+
| `--quiet / -q` | Suppress informational messages |
|
|
56
|
+
| `--no-header` | Omit header row in CSV output |
|
|
57
|
+
| `--profile / -p` | Select config profile by name |
|
|
58
|
+
| `--url` | Override API URL for this invocation |
|
|
59
|
+
| `--token` | Override API token for this invocation |
|
|
60
|
+
| `--version / -V` | Show version and exit |
|
|
61
|
+
|
|
62
|
+
## Configuration
|
|
63
|
+
|
|
64
|
+
Config lives in `~/.config/kodemeio/config.yaml` under the `glitchtip` key.
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Initialize a profile interactively
|
|
68
|
+
kctl-glitchtip config init
|
|
69
|
+
|
|
70
|
+
# Add a named profile
|
|
71
|
+
kctl-glitchtip config add --profile prod \
|
|
72
|
+
--url https://glitchtip.kodeme.io \
|
|
73
|
+
--token YOUR_API_TOKEN
|
|
74
|
+
|
|
75
|
+
# Switch active profile
|
|
76
|
+
kctl-glitchtip config use prod
|
|
77
|
+
|
|
78
|
+
# Show current profile (token masked)
|
|
79
|
+
kctl-glitchtip config show
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Example `~/.config/kodemeio/config.yaml`:
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
glitchtip:
|
|
86
|
+
default_profile: prod
|
|
87
|
+
profiles:
|
|
88
|
+
prod:
|
|
89
|
+
url: https://glitchtip.kodeme.io
|
|
90
|
+
token: ${GLITCHTIP_TOKEN}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Environment variables expand automatically — set `GLITCHTIP_TOKEN` in your shell or `.env`.
|
|
94
|
+
|
|
95
|
+
## Development
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Install dev dependencies
|
|
99
|
+
cd packages/kctl-glitchtip
|
|
100
|
+
uv sync --all-extras
|
|
101
|
+
|
|
102
|
+
# Run tests
|
|
103
|
+
uv run pytest tests/ -v
|
|
104
|
+
|
|
105
|
+
# Lint
|
|
106
|
+
uv run ruff check src/
|
|
107
|
+
|
|
108
|
+
# Type check
|
|
109
|
+
uv run mypy src/
|
|
110
|
+
|
|
111
|
+
# Run CLI locally
|
|
112
|
+
uv run kctl-glitchtip --help
|
|
113
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "kctl-glitchtip"
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "Kodemeio GlitchTip CLI - manage GlitchTip error tracking platform"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.12"
|
|
12
|
+
authors = [{ name = "Kodemeio", email = "dev@kodeme.io" }]
|
|
13
|
+
keywords = ["glitchtip", "sentry", "error-tracking", "cli", "kodemeio"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 3 - Alpha",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
"Intended Audience :: System Administrators",
|
|
18
|
+
"License :: OSI Approved :: MIT License",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
"Programming Language :: Python :: 3.13",
|
|
21
|
+
"Topic :: System :: Systems Administration",
|
|
22
|
+
]
|
|
23
|
+
dependencies = [
|
|
24
|
+
"kctl-lib>=0.4.0",
|
|
25
|
+
"httpx>=0.28.0",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
[project.optional-dependencies]
|
|
29
|
+
dev = [
|
|
30
|
+
"pytest>=8.3.0",
|
|
31
|
+
"pytest-httpx>=0.35.0",
|
|
32
|
+
"ruff>=0.9.0",
|
|
33
|
+
"mypy>=1.14.0",
|
|
34
|
+
"types-PyYAML>=6.0.0",
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
[project.scripts]
|
|
38
|
+
kctl-glitchtip = "kctl_glitchtip.cli:_run"
|
|
39
|
+
|
|
40
|
+
[tool.uv.sources]
|
|
41
|
+
kctl-lib = { workspace = true }
|
|
42
|
+
|
|
43
|
+
[project.entry-points."kctl_glitchtip.plugins"]
|
|
44
|
+
|
|
45
|
+
[tool.hatch.build.targets.wheel]
|
|
46
|
+
packages = ["src/kctl_glitchtip"]
|
|
47
|
+
|
|
48
|
+
[tool.ruff]
|
|
49
|
+
target-version = "py312"
|
|
50
|
+
line-length = 120
|
|
51
|
+
|
|
52
|
+
[tool.ruff.lint]
|
|
53
|
+
select = ["E", "F", "I", "W", "UP", "B", "SIM"]
|
|
54
|
+
|
|
55
|
+
[tool.mypy]
|
|
56
|
+
python_version = "3.12"
|
|
57
|
+
strict = true
|
|
58
|
+
|
|
59
|
+
[tool.pytest.ini_options]
|
|
60
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: glitchtip-admin
|
|
3
|
+
description: >
|
|
4
|
+
GlitchTip error tracking administration via kctl-glitchtip CLI. MUST use for ANY error tracking, DSN key, issue management, or GlitchTip operation. Triggers on: "kctl-glitchtip", "glitchtip", "error tracking", "DSN key", "sentry", "issue tracking", "uptime monitor glitchtip", "error alert", or ANY error tracking platform task.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# GlitchTip Admin Skill
|
|
8
|
+
|
|
9
|
+
You are an expert at managing GlitchTip error tracking instances via the `kctl-glitchtip` CLI.
|
|
10
|
+
|
|
11
|
+
## CLI Overview
|
|
12
|
+
|
|
13
|
+
`kctl-glitchtip` is a Typer-based Python CLI that talks to GlitchTip's Sentry-compatible REST API (`/api/0/`).
|
|
14
|
+
It uses shared multi-service profiles at `~/.config/kodemeio/config.yaml` under the `glitchtip` service key.
|
|
15
|
+
|
|
16
|
+
### Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cd cli && uv tool install .
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Configuration
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Interactive setup
|
|
26
|
+
kctl-glitchtip config init
|
|
27
|
+
|
|
28
|
+
# Non-interactive
|
|
29
|
+
kctl-glitchtip config add kodemeio \
|
|
30
|
+
--url https://glitchtip.kodeme.io \
|
|
31
|
+
--token <api-token-from-glitchtip-ui>
|
|
32
|
+
|
|
33
|
+
# Switch profiles
|
|
34
|
+
kctl-glitchtip config use kodemeio
|
|
35
|
+
|
|
36
|
+
# Test connection
|
|
37
|
+
kctl-glitchtip config test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Config lives in `~/.config/kodemeio/config.yaml`:
|
|
41
|
+
```yaml
|
|
42
|
+
profiles:
|
|
43
|
+
kodemeio:
|
|
44
|
+
glitchtip:
|
|
45
|
+
url: https://glitchtip.kodeme.io
|
|
46
|
+
token: <token>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Global Flags
|
|
50
|
+
|
|
51
|
+
All commands support:
|
|
52
|
+
- `--json` — JSON output (data to stdout, status to stderr)
|
|
53
|
+
- `--quiet` / `-q` — Suppress info messages
|
|
54
|
+
- `--profile` / `-p` — Override active profile
|
|
55
|
+
- `--url` — Override API URL
|
|
56
|
+
- `--token` — Override API token
|
|
57
|
+
|
|
58
|
+
## Command Reference
|
|
59
|
+
|
|
60
|
+
### Projects
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# List all projects
|
|
64
|
+
kctl-glitchtip projects list
|
|
65
|
+
|
|
66
|
+
# Get project details
|
|
67
|
+
kctl-glitchtip projects get <org-slug> <project-slug>
|
|
68
|
+
|
|
69
|
+
# Create project (returns DSN)
|
|
70
|
+
kctl-glitchtip projects create <name> --org <org-slug> --team <team-slug> [--platform python]
|
|
71
|
+
|
|
72
|
+
# Update project name or platform
|
|
73
|
+
kctl-glitchtip projects update <org-slug> <project-slug> [--name "New Name"] [--platform javascript]
|
|
74
|
+
|
|
75
|
+
# Delete project
|
|
76
|
+
kctl-glitchtip projects delete <org-slug> <project-slug> [--force]
|
|
77
|
+
|
|
78
|
+
# Show DSN keys
|
|
79
|
+
kctl-glitchtip projects dsn <org-slug> <project-slug>
|
|
80
|
+
|
|
81
|
+
# Create new DSN key
|
|
82
|
+
kctl-glitchtip projects dsn-create <org-slug> <project-slug> [--label "my-key"]
|
|
83
|
+
|
|
84
|
+
# Project statistics
|
|
85
|
+
kctl-glitchtip projects stats <org-slug> <project-slug>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Issues
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# List issues
|
|
92
|
+
kctl-glitchtip issues list --org <org-slug> [--project <slug>] [--status unresolved]
|
|
93
|
+
|
|
94
|
+
# Get issue details
|
|
95
|
+
kctl-glitchtip issues get <issue-id>
|
|
96
|
+
|
|
97
|
+
# Resolve issue
|
|
98
|
+
kctl-glitchtip issues resolve <issue-id>
|
|
99
|
+
|
|
100
|
+
# Ignore issue
|
|
101
|
+
kctl-glitchtip issues ignore <issue-id>
|
|
102
|
+
|
|
103
|
+
# Delete issue
|
|
104
|
+
kctl-glitchtip issues delete <issue-id> [--force]
|
|
105
|
+
|
|
106
|
+
# Bulk resolve all issues in a project
|
|
107
|
+
kctl-glitchtip issues bulk-resolve --org <org-slug> --project <project-slug>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Teams
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# List teams
|
|
114
|
+
kctl-glitchtip teams list --org <org-slug>
|
|
115
|
+
|
|
116
|
+
# Get team details with members
|
|
117
|
+
kctl-glitchtip teams get --org <org-slug> <team-slug>
|
|
118
|
+
|
|
119
|
+
# Create team
|
|
120
|
+
kctl-glitchtip teams create <name> --org <org-slug>
|
|
121
|
+
|
|
122
|
+
# Delete team
|
|
123
|
+
kctl-glitchtip teams delete --org <org-slug> <team-slug> [--force]
|
|
124
|
+
|
|
125
|
+
# Add/remove members
|
|
126
|
+
kctl-glitchtip teams add-member --org <org-slug> <team-slug> <email>
|
|
127
|
+
kctl-glitchtip teams remove-member --org <org-slug> <team-slug> <email>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Organizations
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# List organizations
|
|
134
|
+
kctl-glitchtip orgs list
|
|
135
|
+
|
|
136
|
+
# Get organization details (includes members)
|
|
137
|
+
kctl-glitchtip orgs get <org-slug>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Events
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# List recent events
|
|
144
|
+
kctl-glitchtip events list <org-slug> <project-slug> [--limit 50]
|
|
145
|
+
|
|
146
|
+
# Clean old events (requires Docker)
|
|
147
|
+
kctl-glitchtip events cleanup [--days 90]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Uptime Monitors
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# List uptime monitors
|
|
154
|
+
kctl-glitchtip uptime list [--org <org-slug>]
|
|
155
|
+
|
|
156
|
+
# Create an uptime monitor
|
|
157
|
+
kctl-glitchtip uptime create --name "My Service" --url https://example.com [--org <org-slug>] [--interval 60] [--type Ping] [--expected-status 200]
|
|
158
|
+
|
|
159
|
+
# Delete an uptime monitor
|
|
160
|
+
kctl-glitchtip uptime delete <monitor-id> [--org <org-slug>] [--force]
|
|
161
|
+
|
|
162
|
+
# Show recent checks for a monitor
|
|
163
|
+
kctl-glitchtip uptime checks <monitor-id> [--org <org-slug>]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Users
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# List users
|
|
170
|
+
kctl-glitchtip users list
|
|
171
|
+
|
|
172
|
+
# Create/invite user
|
|
173
|
+
kctl-glitchtip users create <email>
|
|
174
|
+
|
|
175
|
+
# Create superuser (requires Docker)
|
|
176
|
+
kctl-glitchtip users create <email> --superuser
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Health & Monitoring
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# Full health check (API + containers)
|
|
183
|
+
kctl-glitchtip health check
|
|
184
|
+
|
|
185
|
+
# Dashboard overview
|
|
186
|
+
kctl-glitchtip health dashboard
|
|
187
|
+
|
|
188
|
+
# Celery worker status (requires Docker)
|
|
189
|
+
kctl-glitchtip health celery-status
|
|
190
|
+
|
|
191
|
+
# Redis info (requires Docker)
|
|
192
|
+
kctl-glitchtip health redis-info
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Alerts & Notifications
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# List project alerts
|
|
199
|
+
kctl-glitchtip alerts list --org <org-slug> --project <project-slug>
|
|
200
|
+
|
|
201
|
+
# Test a specific alert
|
|
202
|
+
kctl-glitchtip alerts test-alert --org <org-slug> --project <project-slug> <alert-id>
|
|
203
|
+
|
|
204
|
+
# Test webhook URL
|
|
205
|
+
kctl-glitchtip alerts test-webhook <url>
|
|
206
|
+
|
|
207
|
+
# Test email (requires Docker)
|
|
208
|
+
kctl-glitchtip alerts test-email [--to admin@kodeme.io]
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Config Management
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
kctl-glitchtip config init # Interactive setup
|
|
215
|
+
kctl-glitchtip config add <name> # Add profile
|
|
216
|
+
kctl-glitchtip config use <name> # Switch profile
|
|
217
|
+
kctl-glitchtip config remove <name> # Remove profile
|
|
218
|
+
kctl-glitchtip config show # Show all config
|
|
219
|
+
kctl-glitchtip config set <key> <val> # Set config value
|
|
220
|
+
kctl-glitchtip config profiles # List profiles with status
|
|
221
|
+
kctl-glitchtip config current # Show active profile
|
|
222
|
+
kctl-glitchtip config test # Test connection
|
|
223
|
+
kctl-glitchtip config migrate # Migrate flat -> scoped format
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Environment Variables
|
|
227
|
+
|
|
228
|
+
Priority (highest to lowest):
|
|
229
|
+
1. CLI flags (`--url`, `--token`)
|
|
230
|
+
2. `KCTL_GLITCHTIP_URL` / `KCTL_GLITCHTIP_TOKEN`
|
|
231
|
+
3. `GLITCHTIP_API_URL` / `GLITCHTIP_API_TOKEN`
|
|
232
|
+
4. Config profile
|
|
233
|
+
|
|
234
|
+
Profile selection: `--profile` flag > `KCTL_GLITCHTIP_PROFILE` env > config default.
|
|
235
|
+
|
|
236
|
+
## API Notes
|
|
237
|
+
|
|
238
|
+
- GlitchTip uses Sentry-compatible API at `/api/0/`
|
|
239
|
+
- Auth: `Authorization: Bearer <token>` (API token from GlitchTip UI Settings > API Tokens)
|
|
240
|
+
- Most list endpoints return JSON arrays directly (not paginated objects)
|
|
241
|
+
- DSN format: `https://<public_key>@glitchtip.kodeme.io/<project_id>`
|
|
242
|
+
- Uptime monitors: `GET/POST /api/0/organizations/{org}/monitors/`, checks at `.../monitors/{id}/checks/`
|
|
243
|
+
|
|
244
|
+
## Common Workflows
|
|
245
|
+
|
|
246
|
+
### Set up error tracking for a new app
|
|
247
|
+
```bash
|
|
248
|
+
kctl-glitchtip projects create my-app --org kodemeio --team backend --platform python
|
|
249
|
+
# Copy the DSN from output into your app's Sentry SDK config
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Triage errors
|
|
253
|
+
```bash
|
|
254
|
+
kctl-glitchtip issues list --org kodemeio --status unresolved --sort -count
|
|
255
|
+
kctl-glitchtip issues get <id>
|
|
256
|
+
kctl-glitchtip issues resolve <id>
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Bulk cleanup
|
|
260
|
+
```bash
|
|
261
|
+
kctl-glitchtip issues bulk-resolve --org kodemeio --project old-app --force
|
|
262
|
+
kctl-glitchtip events cleanup --days 30
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Monitor service uptime
|
|
266
|
+
```bash
|
|
267
|
+
kctl-glitchtip uptime create --name "API" --url https://api.kodeme.io/health --type GET --interval 60
|
|
268
|
+
kctl-glitchtip uptime list
|
|
269
|
+
kctl-glitchtip uptime checks <monitor-id>
|
|
270
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.0"
|