Proyecto personal · Operación de softwareVersiones, builds y productos
DevHub GitHub

Tus productos.Una visión central.

Una app de escritorio para seguir releases, builds, clientes y feedback.

Releases, builds y feedback en un solo panel.

App de escritorioGitHubPersonal

  • Tauri 2
  • Rust
  • React 19
  • SQLite
Proyecto personal · Operación de softwareVersiones, builds y productosReleasesBuildsClientes y feedback
DevHub GitHub

Tus productos.Una visión central.

Una app de escritorio para seguir releases, builds, clientes y feedback.

  • Tauri 2
  • Rust
  • React 19
  • SQLite

Releases, builds y feedback en un solo panel.

App de escritorioGitHubPersonal

  • Tauri 2
  • Rust
  • React 19
  • SQLite

El panel

Cada producto, de un vistazo.

Quien cuida de varios programas vive abriendo GitHub para saber en qué versión está cada uno y si el último build pasó. Aquí cada producto tiene su página: la versión publicada, el estado del build y cuántos pedidos nuevos llegaron, en un solo lugar.

DevHub · Panel de Control

BabyShoes

collin-labs/babyshoes

  • Versión publicadav1.6.2La última que salió del borrador.
  • Último buildPasóEl más reciente del repositorio.
  • Feedback nuevo29 en total, guardados en el equipo.

Publicar nueva versiónLanza el build en la nube y crea la versión.

Publicar
  • RepositorioAbre en GitHubgithub.com/collin-labs/babyshoes
  • ReleasesLas versionesgithub.com/collin-labs/babyshoes/releases
  • ActionsLos buildsgithub.com/collin-labs/babyshoes/actions

De dónde sale cada número

  1. La versiónEl programa le pide a GitHub las versiones y muestra la primera ya publicada. El borrador no cuenta.
  2. El buildSale del registro de builds del repositorio: en cola, en curso, pasó o falló.
  3. Los pedidosContados en la base del propio equipo, separando los nuevos de los ya vistos.

Los productos son del propio dueño; versiones y conteos aquí son de ejemplo. En el programa llegan de GitHub en el momento en que se abre el proyecto.

Escena del proyecto: el panel abierto en un portátil, conectado a la nube de GitHub

DevHub GitHub · Integración y publicación

De la versión al workflow.

Consulta releases y builds. Lanza la publicación desde el panel.

GitHub REST APIGitHub ActionsReleases y buildsPublicación por el workflow configurado en el repositorio.

El programa no abre el sitio de GitHub: habla directo con el servicio, con cuatro llamadas. Una confirma quién eres, dos traen las versiones y los builds, y la última le pide a la nube que empiece una versión nueva.

Las cuatro llamadas

Antes que nada, el programa confirma si la clave de acceso (el token) es válida y de quién es.

El pedido

GET api.github.com/user

Authorization
Bearer github_pat_…
Accept
application/vnd.github+json
X-GitHub-Api-Version
2022-11-28
User-Agent
DevHub-Panel

La respuesta200 OK

  • { "login": "collin-labs", … }

Qué hace el panel con eso

Si la clave vale, el nombre de la cuenta aparece en verde en los ajustes y el panel libera los proyectos. Si no, aparece el aviso de clave inválida.

Las direcciones, las cabeceras y el contenido enviado son los del núcleo en Rust (github.rs). Las respuestas están resumidas.

La publicación

Un número, un clic.

Lanzar una versión nueva de un programa suele ser una lista de pasos de memoria: cambiar el número en tres archivos, armar, firmar, subir. Aquí escribes el número y lo que cambió; el resto lo hace la nube sola, siempre en el mismo orden.

Publicar nueva versión

Al publicar, el build empieza en la nube de GitHub (unos 10 minutos). La versión queda como borrador para que la revises y publiques.

¡Publicación lanzada! El build está corriendo en la nube.

Lo que hace la nubev1.6.3

  1. Bajar el códigoLa nube toma el proyecto del repositorio.GitHub Actions
  2. Instalar Node.jsLa herramienta que arma la pantalla.
  3. Instalar RustEl lenguaje del núcleo del programa.
  4. Guardar lo ya armadoLa próxima vez, Rust no arma todo de nuevo.
  5. Ajustar la versiónEl número nuevo entra en los tres archivos, sin el carácter invisible que rompe el armado.
  6. Instalar las dependenciasLas piezas que usa la pantalla.
  7. Armar, firmar y publicarGenera el instalador, lo firma y crea la versión con el archivo de actualización.GitHub Actions
v1.6.3 lista, como borradorCon el instalador y el archivo de actualización. Tú revisas y publicas.

Los pasos son los del archivo de automatización del proyecto (publicar.yml). La versión sugerida sigue la regla del programa: suma 1 al último número.

El retorno

Nada se pierde en el camino.

Los pedidos de clientes llegan por todos lados y se pierden entre los mensajes. Aquí cada uno se vuelve una ficha en el proyecto correcto (error, sugerencia, mejora o nota), con prioridad y la versión en que apareció, y avanza de columna hasta resolverse.

2 nuevos · 7 en total

Nuevo2

  • BugUrgente

    El informe no abre tras la actualización

    Loja Aurorav2.2.0

  • SugerenciaNormal

    Exportar la lista de contratos a planilla

    Escritório Prismav2.3.0

En análisis2

  • MejoraAlta

    Búsqueda más rápida en la pantalla de clientes

    Loja Aurorav2.2.0

  • NotaBaja

    Pidió un paso a paso en video

    Confecção Valev2.1.4

Resuelto2

  • BugAlta

    Fecha en inglés en el recibo

    Confecção Valev2.1.4

  • SugerenciaNormal

    Atajo de teclado para guardar

    Escritório Prismav2.3.0

Descartado1

  • MejoraBaja

    Botón de imprimir en la propia ficha

    Mercado Bom Diav1.9.0

Pedidos y empresas son de ejemplo. En el programa, cada ficha se registra en el proyecto y se guarda en la base del equipo; el contador del panel lee de ahí.

Escena del proyecto: el monitor con las guías del programa, una tableta con los ajustes y los íconos de documento, base de datos y GitHub

DevHub GitHub · Organización y conocimiento

El proceso también es parte del producto.

Guías internas, clientes y feedback acompañan la operación de cada proyecto.

Clientes
por proyecto
Feedback
organizado
Guías y
modelos
Datos locales en SQLite · Publicación por GitHub Actions

La forma de trabajar vive dentro del propio programa: cómo funciona, cómo GitHub numera y publica las versiones, y la receta que sigue todo programa nuevo para nacer ya actualizándose solo. Escrito para quien no es del rubro.

Bienvenido a DevHub

Quien cuida varios sistemas lo controla todo desde aquí, sin abrir la terminal, recordar comandos ni tocar archivos.

Un tablero de auto

Miras y sabes al instante cómo está cada proyecto: qué versión está publicada, si el último build salió bien y si hay un cliente pidiendo algo.

Qué hace

  • Muestra el estado de cada proyecto, traído de GitHub.
  • Publica versiones nuevas con un botón.
  • Guarda el feedback por proyecto y por estado.
  • Lista las empresas que usan cada sistema y la versión de cada una.

Del lado del cliente

El cliente nunca ve DevHub. Usa el programa que recibió; cuando sale una versión nueva, su programa avisa al abrir, se actualiza y reinicia.

El día a día

Mejoraste el código, abres DevHub, haces clic en Publicar y escribes qué cambió. Listo.

La primera vez

El primer instalador va a mano; desde ahí, las versiones nuevas llegan solas.

Las guías son textos del propio programa, resumidos aquí. En DevHub tienen su propia pestaña, para consultar y copiar.

El núcleo

Cinco tablas, veinte funciones.

Debajo de la ventana, una base de datos pequeña guarda todo en el propio equipo: nada queda en un servidor de terceros. Son cinco tablas, y el núcleo en Rust tiene veinte funciones que la pantalla llama; cada botón del programa es una de ellas.

config3

Los ajustes del programa, como la cuenta de GitHub conectada.

  • PKchaveTEXT
  • valorTEXTObligatorio (NOT NULL)
  • atualizado_emTEXTPor defecto: la hora en que se grabó

projetos8

Cada producto seguido: el dueño y el nombre del repositorio en GitHub, el color y el archivo de automatización.

  • PKidINTEGER
  • nomeTEXTObligatorio (NOT NULL)
  • github_ownerTEXTObligatorio (NOT NULL)
  • github_repoTEXTObligatorio (NOT NULL)
  • corTEXTDEFAULT '#6366f1'
  • workflow_arquivoTEXTDEFAULT 'publicar.yml'
  • ativoINTEGERPor defecto: 1 (salir de la lista no borra)
  • criado_emTEXTPor defecto: la hora en que se grabó

clientes7

Quién usa cada producto y en qué versión.

  • PKidINTEGER
  • FKprojeto_idINTEGERSe va junto con el proyecto (ON DELETE CASCADE)
  • nomeTEXTObligatorio (NOT NULL)
  • emailTEXT
  • telefoneTEXT
  • versao_instaladaTEXT
  • ativoINTEGERPor defecto: 1 (salir de la lista no borra)

feedbacks6

Los pedidos de cada producto, con tipo, estado y prioridad.

  • PKidINTEGER
  • FKprojeto_idINTEGERSe va junto con el proyecto (ON DELETE CASCADE)
  • tipoTEXTSolo acepta: bug · sugestao · melhoria · nota
  • statusTEXTSolo acepta: novo · em_analise · resolvido · descartado
  • prioridadeTEXTSolo acepta: baixa · normal · alta · urgente
  • versao_appTEXT

publicacoes5

El registro de cada versión lanzada desde el panel.

  • PKidINTEGER
  • FKprojeto_idINTEGERSe va junto con el proyecto (ON DELETE CASCADE)
  • versaoTEXTObligatorio (NOT NULL)
  • notasTEXT
  • statusTEXTPor defecto: 'disparado'

La luz negra muestra las reglas que la propia base hace cumplir.Ligada al proyecto: se va junto cuando el proyecto se borra.

Tablas, columnas y reglas son las del archivo de la base (schema.rs); las funciones, las del registro del núcleo (lib.rs). Cuatro índices aceleran la búsqueda por proyecto y por estado.

Las tecnologías

De qué está hecho, pieza por pieza

Un programa de escritorio que conversa con GitHub: la pantalla es React dentro de Tauri 2, y el núcleo en Rust guarda todo en una base SQLite en el propio equipo y hace las llamadas a GitHub. Elige una pieza para ver qué hace aquí y en qué archivo está.

15tecnologías, en 3 capas

Pantalla

Ventana y núcleo

Datos y GitHub