bitbucket-manager 0.1.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.
Files changed (28) hide show
  1. bitbucket_manager-0.1.0/PKG-INFO +235 -0
  2. bitbucket_manager-0.1.0/README.md +208 -0
  3. bitbucket_manager-0.1.0/pyproject.toml +43 -0
  4. bitbucket_manager-0.1.0/setup.cfg +4 -0
  5. bitbucket_manager-0.1.0/src/bitbucket_manager/__init__.py +1 -0
  6. bitbucket_manager-0.1.0/src/bitbucket_manager/__main__.py +4 -0
  7. bitbucket_manager-0.1.0/src/bitbucket_manager/api.py +496 -0
  8. bitbucket_manager-0.1.0/src/bitbucket_manager/config.py +38 -0
  9. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/__init__.py +45 -0
  10. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/archive_screen.py +144 -0
  11. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/dashboard_screen.py +174 -0
  12. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/deps_screen.py +163 -0
  13. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/explorer.py +186 -0
  14. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/groups_screen.py +189 -0
  15. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/home.py +243 -0
  16. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/members_screen.py +53 -0
  17. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/migration_screen.py +187 -0
  18. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/permissions_screen.py +160 -0
  19. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/pr_screen.py +133 -0
  20. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/splash.py +79 -0
  21. bitbucket_manager-0.1.0/src/bitbucket_manager/tui/widgets.py +64 -0
  22. bitbucket_manager-0.1.0/src/bitbucket_manager/version.py +1 -0
  23. bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/PKG-INFO +235 -0
  24. bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/SOURCES.txt +26 -0
  25. bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/dependency_links.txt +1 -0
  26. bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/entry_points.txt +2 -0
  27. bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/requires.txt +4 -0
  28. bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/top_level.txt +1 -0
@@ -0,0 +1,235 @@
1
+ Metadata-Version: 2.4
2
+ Name: bitbucket-manager
3
+ Version: 0.1.0
4
+ Summary: Bitbucket Repository Manager — TUI para administración de Bitbucket Cloud
5
+ Author-email: Alan Stefanov <alan.emanuel.stefanov@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/AlanStefanov/bitbucket-manager
8
+ Project-URL: Repository, https://github.com/AlanStefanov/bitbucket-manager
9
+ Project-URL: Issues, https://github.com/AlanStefanov/bitbucket-manager/issues
10
+ Keywords: bitbucket,cli,tui,devops,repository-manager,group-management
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Environment :: Console :: Curses
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: System Administrators
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Operating System :: MacOS
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Topic :: Software Development :: Version Control
20
+ Classifier: Topic :: System :: Systems Administration
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: textual>=1.0.0
24
+ Requires-Dist: rich>=13.0.0
25
+ Requires-Dist: requests
26
+ Requires-Dist: pyyaml
27
+
28
+ <div align="center">
29
+
30
+ [![CI](https://github.com/AlanStefanov/bitbucket-manager/actions/workflows/ci.yml/badge.svg)](https://github.com/AlanStefanov/bitbucket-manager/actions/workflows/ci.yml)
31
+ ![Python](https://img.shields.io/badge/python-3.9+-blue.svg)
32
+ ![License](https://img.shields.io/badge/license-MIT-green.svg)
33
+ ![Version](https://img.shields.io/badge/version-0.1.0--alpha-orange.svg)
34
+
35
+ </div>
36
+
37
+ # Bitbucket Manager
38
+
39
+ Suite **TUI** para administración de Bitbucket Cloud desde la terminal. Navegación 100% por teclado, multiplataforma, instalable vía `pipx`, `pip` o Homebrew.
40
+
41
+ Inspirado en [opencode](https://opencode.ai) — interfaz de terminal moderna, reactiva y productiva.
42
+
43
+ ---
44
+
45
+ ## Tabla de Contenidos
46
+
47
+ - [Visión](#visión)
48
+ - [Stack](#stack)
49
+ - [Features](#features)
50
+ - [Atajos de Teclado](#atajos-de-teclado)
51
+ - [Instalación](#instalación)
52
+ - [Configuración](#configuración)
53
+ - [Publicación y Versionado](#publicación-y-versionado)
54
+ - [Licencia](#licencia)
55
+
56
+ ---
57
+
58
+ ## Visión
59
+
60
+ Administrar Bitbucket Cloud desde la terminal, sin tocar el navegador:
61
+
62
+ | Feature | Estado |
63
+ |---------|--------|
64
+ | Dashboard de workspace | ✅ Listo |
65
+ | Explorador + clonado de repos | ✅ Listo |
66
+ | Gestión masiva de permisos | ✅ Listo |
67
+ | Gestión de grupos y miembros | ✅ Listo |
68
+ | Miembros del workspace | ✅ Listo |
69
+ | Auto-aprobación de PRs | 🚧 En desarrollo |
70
+ | Migración entre proyectos | 🚧 En desarrollo |
71
+ | Archivado inteligente | 🚧 En desarrollo |
72
+ | Análisis de dependencias | 🚧 En desarrollo |
73
+ | Publicación (PyPI, Homebrew) | 🚧 En desarrollo |
74
+
75
+ ---
76
+
77
+ ## Stack
78
+
79
+ | Capa | Librería |
80
+ |------|----------|
81
+ | **TUI Framework** | [Textual](https://textual.textualize.io/) 8.x — async, CSS-like styling, 24-bit color |
82
+ | **HTTP / API** | `requests` — cliente REST para Bitbucket Cloud API v2.0 |
83
+ | **YAML** | `pyyaml` — reglas de PR, archivado, dependencias |
84
+ | **Terminal enhancements** | `rich` — logging, tablas, progreso |
85
+ | **Distribución** | `pyproject.toml` → PyPI / `pipx` / Homebrew |
86
+
87
+ ---
88
+
89
+ ## Features
90
+
91
+ ### 👥 Grupos
92
+ - Listar todos los grupos del workspace
93
+ - Crear y eliminar grupos
94
+ - Agregar o remover miembros de un grupo
95
+
96
+ ### 👤 Miembros
97
+ - Listar todos los miembros del workspace
98
+ - Ver display name, nickname y account ID
99
+
100
+ ### 📊 Dashboard
101
+ - Métricas del workspace: total de repos, PRs abiertos, activida reciente
102
+
103
+ ### 📦 Repos
104
+ - Explorar repositorios del workspace
105
+ - Clonar, pull y checkout desde la TUI
106
+
107
+ ### 🔐 Permisos
108
+ - Listar permisos de usuarios y grupos por repositorio
109
+ - Otorgar y revocar permisos
110
+
111
+ ### ✅ PRs
112
+ - Listar PRs abiertos
113
+ - Auto-aprobar PRs
114
+
115
+ ### 📋 Migración
116
+ - Migrar repositorios entre workspaces manteniendo historial git
117
+
118
+ ### 🗄️ Archive
119
+ - Archivar repositorios inactivos según reglas configurables
120
+
121
+ ### 🔗 Deps
122
+ - Analizar dependencias entre repos del workspace
123
+
124
+ ---
125
+
126
+ ## Atajos de Teclado
127
+
128
+ ### Pantalla de inicio (Home)
129
+
130
+ | Tecla | Acción |
131
+ |-------|--------|
132
+ | `↑` / `↓` | Navegar entre cards |
133
+ | `←` / `→` | Navegar entre cards |
134
+ | `Tab` / `Shift+Tab` | Navegar entre cards |
135
+ | `Enter` / `Space` | Abrir pantalla seleccionada |
136
+ | `D` | Dashboard |
137
+ | `R` | Repos |
138
+ | `G` | Grupos |
139
+ | `I` | Miembros |
140
+ | `P` | Permisos |
141
+ | `U` | PRs |
142
+ | `M` | Migración |
143
+ | `A` | Archive |
144
+ | `S` | Dependencias |
145
+ | `Q` / `Esc` / `Ctrl+Q` | Salir |
146
+
147
+ ### Pantallas de feature
148
+
149
+ | Tecla | Acción |
150
+ |-------|--------|
151
+ | `H` / `Esc` | Volver al menú principal |
152
+ | `Ctrl+Q` | Salir de la app |
153
+
154
+ ---
155
+
156
+ ## Instalación
157
+
158
+ ### pipx (recomendado)
159
+
160
+ ```bash
161
+ pipx install bitbucket-manager
162
+ bitbucket-manager
163
+ ```
164
+
165
+ ### pip
166
+
167
+ ```bash
168
+ pip install bitbucket-manager
169
+ bitbucket-manager
170
+ ```
171
+
172
+ ### Homebrew (futuro)
173
+
174
+ ```bash
175
+ brew install alanstefanov/tap/bitbucket-manager
176
+ ```
177
+
178
+ ### One-liner (curses ligero)
179
+
180
+ ```bash
181
+ bash <(curl -fsSL https://github.com/AlanStefanov/bitbucket-manager/raw/main/install.sh)
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Configuración
187
+
188
+ La primera vez que ejecutes la app, te mostrará una pantalla interactiva para ingresar las credenciales.
189
+
190
+ O podés crear un archivo `~/.config/bitbucket-manager/env`:
191
+
192
+ ```bash
193
+ BB_USERNAME=tu-email@example.com
194
+ BB_TOKEN=tu_api_token
195
+ BB_WORKSPACE=mi-workspace
196
+ DEV_DIR=/home/tu/Documents/bitbucket-repos
197
+ ```
198
+
199
+ Variables requeridas:
200
+
201
+ | Variable | Descripción |
202
+ |----------|-------------|
203
+ | `BB_USERNAME` | Email de Atlassian |
204
+ | `BB_TOKEN` | API Token desde https://id.atlassian.com/manage-profile/security/api-tokens |
205
+ | `BB_WORKSPACE` | Workspace de Bitbucket (ej: `mi-empresa`) |
206
+ | `DEV_DIR` | Directorio para clones (defecto: `~/Documents/bitbucket-repos`) |
207
+
208
+ ### Ejecución desde el repo
209
+
210
+ ```bash
211
+ ./run.sh
212
+ ```
213
+
214
+ ---
215
+
216
+ ## Publicación y Versionado
217
+
218
+ ### Versionado Semántico
219
+
220
+ `bitbucket-manager` sigue [SemVer](https://semver.org/): `MAJOR.MINOR.PATCH`.
221
+
222
+ La versión se define en `src/bitbucket_manager/__init__.py` y se refleja en `pyproject.toml`.
223
+
224
+ ### Release
225
+
226
+ Al hacer merge de un PR a `main`:
227
+
228
+ 1. **CI** corre lint + verifica que el paquete importe correctamente
229
+ 2. Ejecutar `bash publish.sh` para publicar a PyPI y Homebrew
230
+
231
+ ---
232
+
233
+ ## Licencia
234
+
235
+ MIT — Alan Stefanov, 2026.
@@ -0,0 +1,208 @@
1
+ <div align="center">
2
+
3
+ [![CI](https://github.com/AlanStefanov/bitbucket-manager/actions/workflows/ci.yml/badge.svg)](https://github.com/AlanStefanov/bitbucket-manager/actions/workflows/ci.yml)
4
+ ![Python](https://img.shields.io/badge/python-3.9+-blue.svg)
5
+ ![License](https://img.shields.io/badge/license-MIT-green.svg)
6
+ ![Version](https://img.shields.io/badge/version-0.1.0--alpha-orange.svg)
7
+
8
+ </div>
9
+
10
+ # Bitbucket Manager
11
+
12
+ Suite **TUI** para administración de Bitbucket Cloud desde la terminal. Navegación 100% por teclado, multiplataforma, instalable vía `pipx`, `pip` o Homebrew.
13
+
14
+ Inspirado en [opencode](https://opencode.ai) — interfaz de terminal moderna, reactiva y productiva.
15
+
16
+ ---
17
+
18
+ ## Tabla de Contenidos
19
+
20
+ - [Visión](#visión)
21
+ - [Stack](#stack)
22
+ - [Features](#features)
23
+ - [Atajos de Teclado](#atajos-de-teclado)
24
+ - [Instalación](#instalación)
25
+ - [Configuración](#configuración)
26
+ - [Publicación y Versionado](#publicación-y-versionado)
27
+ - [Licencia](#licencia)
28
+
29
+ ---
30
+
31
+ ## Visión
32
+
33
+ Administrar Bitbucket Cloud desde la terminal, sin tocar el navegador:
34
+
35
+ | Feature | Estado |
36
+ |---------|--------|
37
+ | Dashboard de workspace | ✅ Listo |
38
+ | Explorador + clonado de repos | ✅ Listo |
39
+ | Gestión masiva de permisos | ✅ Listo |
40
+ | Gestión de grupos y miembros | ✅ Listo |
41
+ | Miembros del workspace | ✅ Listo |
42
+ | Auto-aprobación de PRs | 🚧 En desarrollo |
43
+ | Migración entre proyectos | 🚧 En desarrollo |
44
+ | Archivado inteligente | 🚧 En desarrollo |
45
+ | Análisis de dependencias | 🚧 En desarrollo |
46
+ | Publicación (PyPI, Homebrew) | 🚧 En desarrollo |
47
+
48
+ ---
49
+
50
+ ## Stack
51
+
52
+ | Capa | Librería |
53
+ |------|----------|
54
+ | **TUI Framework** | [Textual](https://textual.textualize.io/) 8.x — async, CSS-like styling, 24-bit color |
55
+ | **HTTP / API** | `requests` — cliente REST para Bitbucket Cloud API v2.0 |
56
+ | **YAML** | `pyyaml` — reglas de PR, archivado, dependencias |
57
+ | **Terminal enhancements** | `rich` — logging, tablas, progreso |
58
+ | **Distribución** | `pyproject.toml` → PyPI / `pipx` / Homebrew |
59
+
60
+ ---
61
+
62
+ ## Features
63
+
64
+ ### 👥 Grupos
65
+ - Listar todos los grupos del workspace
66
+ - Crear y eliminar grupos
67
+ - Agregar o remover miembros de un grupo
68
+
69
+ ### 👤 Miembros
70
+ - Listar todos los miembros del workspace
71
+ - Ver display name, nickname y account ID
72
+
73
+ ### 📊 Dashboard
74
+ - Métricas del workspace: total de repos, PRs abiertos, activida reciente
75
+
76
+ ### 📦 Repos
77
+ - Explorar repositorios del workspace
78
+ - Clonar, pull y checkout desde la TUI
79
+
80
+ ### 🔐 Permisos
81
+ - Listar permisos de usuarios y grupos por repositorio
82
+ - Otorgar y revocar permisos
83
+
84
+ ### ✅ PRs
85
+ - Listar PRs abiertos
86
+ - Auto-aprobar PRs
87
+
88
+ ### 📋 Migración
89
+ - Migrar repositorios entre workspaces manteniendo historial git
90
+
91
+ ### 🗄️ Archive
92
+ - Archivar repositorios inactivos según reglas configurables
93
+
94
+ ### 🔗 Deps
95
+ - Analizar dependencias entre repos del workspace
96
+
97
+ ---
98
+
99
+ ## Atajos de Teclado
100
+
101
+ ### Pantalla de inicio (Home)
102
+
103
+ | Tecla | Acción |
104
+ |-------|--------|
105
+ | `↑` / `↓` | Navegar entre cards |
106
+ | `←` / `→` | Navegar entre cards |
107
+ | `Tab` / `Shift+Tab` | Navegar entre cards |
108
+ | `Enter` / `Space` | Abrir pantalla seleccionada |
109
+ | `D` | Dashboard |
110
+ | `R` | Repos |
111
+ | `G` | Grupos |
112
+ | `I` | Miembros |
113
+ | `P` | Permisos |
114
+ | `U` | PRs |
115
+ | `M` | Migración |
116
+ | `A` | Archive |
117
+ | `S` | Dependencias |
118
+ | `Q` / `Esc` / `Ctrl+Q` | Salir |
119
+
120
+ ### Pantallas de feature
121
+
122
+ | Tecla | Acción |
123
+ |-------|--------|
124
+ | `H` / `Esc` | Volver al menú principal |
125
+ | `Ctrl+Q` | Salir de la app |
126
+
127
+ ---
128
+
129
+ ## Instalación
130
+
131
+ ### pipx (recomendado)
132
+
133
+ ```bash
134
+ pipx install bitbucket-manager
135
+ bitbucket-manager
136
+ ```
137
+
138
+ ### pip
139
+
140
+ ```bash
141
+ pip install bitbucket-manager
142
+ bitbucket-manager
143
+ ```
144
+
145
+ ### Homebrew (futuro)
146
+
147
+ ```bash
148
+ brew install alanstefanov/tap/bitbucket-manager
149
+ ```
150
+
151
+ ### One-liner (curses ligero)
152
+
153
+ ```bash
154
+ bash <(curl -fsSL https://github.com/AlanStefanov/bitbucket-manager/raw/main/install.sh)
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Configuración
160
+
161
+ La primera vez que ejecutes la app, te mostrará una pantalla interactiva para ingresar las credenciales.
162
+
163
+ O podés crear un archivo `~/.config/bitbucket-manager/env`:
164
+
165
+ ```bash
166
+ BB_USERNAME=tu-email@example.com
167
+ BB_TOKEN=tu_api_token
168
+ BB_WORKSPACE=mi-workspace
169
+ DEV_DIR=/home/tu/Documents/bitbucket-repos
170
+ ```
171
+
172
+ Variables requeridas:
173
+
174
+ | Variable | Descripción |
175
+ |----------|-------------|
176
+ | `BB_USERNAME` | Email de Atlassian |
177
+ | `BB_TOKEN` | API Token desde https://id.atlassian.com/manage-profile/security/api-tokens |
178
+ | `BB_WORKSPACE` | Workspace de Bitbucket (ej: `mi-empresa`) |
179
+ | `DEV_DIR` | Directorio para clones (defecto: `~/Documents/bitbucket-repos`) |
180
+
181
+ ### Ejecución desde el repo
182
+
183
+ ```bash
184
+ ./run.sh
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Publicación y Versionado
190
+
191
+ ### Versionado Semántico
192
+
193
+ `bitbucket-manager` sigue [SemVer](https://semver.org/): `MAJOR.MINOR.PATCH`.
194
+
195
+ La versión se define en `src/bitbucket_manager/__init__.py` y se refleja en `pyproject.toml`.
196
+
197
+ ### Release
198
+
199
+ Al hacer merge de un PR a `main`:
200
+
201
+ 1. **CI** corre lint + verifica que el paquete importe correctamente
202
+ 2. Ejecutar `bash publish.sh` para publicar a PyPI y Homebrew
203
+
204
+ ---
205
+
206
+ ## Licencia
207
+
208
+ MIT — Alan Stefanov, 2026.
@@ -0,0 +1,43 @@
1
+ [build-system]
2
+ requires = ["setuptools>=64.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "bitbucket-manager"
7
+ version = "0.1.0"
8
+ description = "Bitbucket Repository Manager — TUI para administración de Bitbucket Cloud"
9
+ readme = "README.md"
10
+ authors = [{name = "Alan Stefanov", email = "alan.emanuel.stefanov@gmail.com"}]
11
+ license = "MIT"
12
+ requires-python = ">=3.9"
13
+ dependencies = [
14
+ "textual>=1.0.0",
15
+ "rich>=13.0.0",
16
+ "requests",
17
+ "pyyaml",
18
+ ]
19
+ keywords = ["bitbucket", "cli", "tui", "devops", "repository-manager", "group-management"]
20
+ classifiers = [
21
+ "Development Status :: 3 - Alpha",
22
+ "Environment :: Console",
23
+ "Environment :: Console :: Curses",
24
+ "Intended Audience :: Developers",
25
+ "Intended Audience :: System Administrators",
26
+ "Operating System :: POSIX :: Linux",
27
+ "Operating System :: MacOS",
28
+ "Programming Language :: Python :: 3",
29
+ "Topic :: Software Development :: Version Control",
30
+ "Topic :: System :: Systems Administration",
31
+ ]
32
+
33
+ [project.urls]
34
+ Homepage = "https://github.com/AlanStefanov/bitbucket-manager"
35
+ Repository = "https://github.com/AlanStefanov/bitbucket-manager"
36
+ Issues = "https://github.com/AlanStefanov/bitbucket-manager/issues"
37
+
38
+ [project.scripts]
39
+ bitbucket-manager = "bitbucket_manager.tui:run_tui"
40
+
41
+ [tool.setuptools.packages.find]
42
+ where = ["src"]
43
+ include = ["bitbucket_manager*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
@@ -0,0 +1,4 @@
1
+ from bitbucket_manager.tui import run_tui
2
+
3
+ if __name__ == "__main__":
4
+ run_tui()