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.
- bitbucket_manager-0.1.0/PKG-INFO +235 -0
- bitbucket_manager-0.1.0/README.md +208 -0
- bitbucket_manager-0.1.0/pyproject.toml +43 -0
- bitbucket_manager-0.1.0/setup.cfg +4 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/__init__.py +1 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/__main__.py +4 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/api.py +496 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/config.py +38 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/__init__.py +45 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/archive_screen.py +144 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/dashboard_screen.py +174 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/deps_screen.py +163 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/explorer.py +186 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/groups_screen.py +189 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/home.py +243 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/members_screen.py +53 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/migration_screen.py +187 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/permissions_screen.py +160 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/pr_screen.py +133 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/splash.py +79 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/tui/widgets.py +64 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager/version.py +1 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/PKG-INFO +235 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/SOURCES.txt +26 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/dependency_links.txt +1 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/entry_points.txt +2 -0
- bitbucket_manager-0.1.0/src/bitbucket_manager.egg-info/requires.txt +4 -0
- 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
|
+
[](https://github.com/AlanStefanov/bitbucket-manager/actions/workflows/ci.yml)
|
|
31
|
+

|
|
32
|
+

|
|
33
|
+

|
|
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
|
+
[](https://github.com/AlanStefanov/bitbucket-manager/actions/workflows/ci.yml)
|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
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 @@
|
|
|
1
|
+
__version__ = "0.1.0"
|