Configuración del Proyecto
La página de configuración del proyecto te permite personalizar todos los aspectos de tu proyecto, desde información básica hasta integraciones avanzadas con herramientas de desarrollo. Cada proyecto puede configurarse de manera independiente para adaptarse a las necesidades específicas del equipo o cliente.
El Problema Que Resuelve
Diferentes proyectos requieren diferentes configuraciones. Un proyecto interno puede necesitar integración con Slack, mientras que un proyecto de cliente requiere seguimiento de presupuesto estricto. La configuración de proyecto permite personalizar cada aspecto sin afectar otros proyectos en el workspace.
Pestañas de Configuración
General
Información básica y configuración fundamental del proyecto:
- Nombre del proyecto: Identificador visible en toda la plataforma
- Descripción: Contexto y objetivos del proyecto
- Estado: Activo, En Pausa o Completado
- Visibilidad: Público (todos en workspace) o Privado (solo miembros)
- Logo del proyecto: Imagen identificadora
- Categoría: Agrupación para organización
Consulta Detalles del Proyecto para información completa.
Miembros
Gestión del equipo del proyecto:
- Agregar miembros: Invitar personas del workspace al proyecto
- Remover miembros: Quitar acceso de usuarios
- Asignar roles: Definir permisos por usuario
- Invitar nuevos usuarios: Agregar personas al workspace y proyecto
| Rol | Capacidades |
|---|---|
| Propietario | Control total, puede eliminar proyecto |
| Manager | Gestión de tareas y miembros |
| Desarrollador | Crear y editar tareas propias |
| Invitado | Solo lectura |
Consulta Miembros del Proyecto para detalles.
Horario de Trabajo
Configura días y horas laborales específicos del proyecto:
- Días laborables: Selección de lunes a domingo
- Horas por día: Inicio y fin de jornada
- Zona horaria: Configuración regional
- Feriados: Días no laborables específicos del proyecto
Estos valores pueden sobrescribir los valores predeterminados del workspace.
Presupuesto
Control financiero del proyecto (función Pro):
- Asignación de recursos: Distribución de horas por desarrollador
- Tasas horarias: Tarifas personalizadas por miembro
- Alertas de presupuesto: Notificaciones al alcanzar umbrales
- Configuración general: Límites y bloqueos automáticos
Consulta Configuración de Presupuesto para detalles.
API
Credenciales para integración programática:
- Tokens de API: Generar y gestionar tokens de acceso
- Documentación: Referencias de endpoints disponibles
- Rate limits: Límites de solicitudes por período
- Webhooks: Configurar notificaciones automáticas
Consulta Configuración de API para documentación técnica.
Webhooks
Notificaciones automáticas a servicios externos:
- URLs de destino: Direcciones que recibirán notificaciones
- Eventos a notificar: Selección de acciones que disparan envíos
- Secreto de firma: Validación de autenticidad
- Historial de entregas: Registro de envíos y respuestas
Consulta Configuración de Webhooks para configuración.
Integraciones
Conexiones con herramientas externas:
- Control de versiones: GitHub, GitLab, Bitbucket
- Comunicación: Slack, Discord, Microsoft Teams
- Automatización: Zapier, Make (Integromat)
- Otras herramientas: Conectores personalizados
Consulta Integraciones para guías de conexión.
Acceso a Configuración
- Abre el proyecto desde el dashboard
- Haz clic en el icono de engranaje en el menú lateral
- Selecciona la pestaña deseada de configuración
- Realiza cambios y guarda
Permisos de Configuración
| Rol | General | Miembros | Presupuesto | API | Integraciones | Zona Peligro |
|---|---|---|---|---|---|---|
| Propietario | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Manager | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| Desarrollador | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Zona de Peligro
Archivar Proyecto
Mueve el proyecto a archivados:
- Los datos se preservan pero el proyecto no aparece en listas activas
- Puede restaurarse posteriormente
- Útil para proyectos completados o pausados
Eliminar Proyecto
⚠️ Acción permanente e irreversible. Elimina:
- Todas las tareas y subtareas
- Historial de actividad
- Documentos y archivos adjuntos
- Wiki y discusiones
- Configuraciones y personalizaciones
- Datos de tiempo y presupuesto
Antes de eliminar, considera:
- Exportar datos necesarios
- Notificar a miembros del equipo
- Verificar que no hay información crítica
- Confirmar que no afecta facturación de clientes
Mejores Prácticas
Al Crear un Proyecto
- Configura información básica completa primero
- Define visibilidad según necesidades de confidencialidad
- Agrega miembros del equipo con roles apropiados
- Configura integraciones relevantes
- Establece presupuesto si aplica
Mantenimiento Regular
- Revisa miembros trimestralmente para accesos correctos
- Actualiza estado del proyecto cuando cambie
- Verifica que integraciones sigan funcionando
- Monitorea alertas de presupuesto
Recursos Relacionados
- Detalles del Proyecto - Configuración básica
- Miembros del Proyecto - Gestión de equipo
- Integraciones - Conexiones externas
- Configuración de Presupuesto - Control financiero
- Tablero Kanban - Gestión visual de tareas
Configuración de API
La pestaña API proporciona credenciales y monitoreo para acceso programático a tu proyecto de GitScrum. Construye integraciones personalizadas, automatiza flujos de trabajo y conecta sistemas externos usando la API REST.
Descripción General de la API
GitScrum proporciona una API REST completa para:
- Leer datos del proyecto (tareas, sprints, miembros)
- Crear y actualizar recursos
- Disparar acciones programáticamente
- Sincronizar con sistemas externos
- Construir dashboards personalizados
Sección de Límites de Velocidad
Entendiendo los Límites de Velocidad
Los límites de velocidad previenen el abuso de la API y aseguran acceso justo para todos los usuarios. Los límites aplican por proyecto, por período.
Visualización de Límites de Velocidad
La pestaña API muestra tres métricas clave:
| Métrica | Significado |
|---|---|
| Total de Solicitudes | Máximo de solicitudes permitidas por período |
| Disponibles | Solicitudes restantes en el período actual |
| Período | Ventana de tiempo para reinicio del límite |
Niveles de Límite de Velocidad
| Plan | Solicitudes/Hora |
|---|---|
| Estándar | 1,000 |
| Pro | 5,000 |
| Enterprise | Personalizado |
Respuesta de Límite de Velocidad
Cuando alcanzas el límite:
- La API devuelve
429 Too Many Requests - El encabezado
Retry-Afterindica tiempo de espera - El contador disponible muestra 0
Tiempo de Reinicio
Los límites de velocidad se reinician en una ventana móvil:
- El período muestra tiempos de inicio y fin
- El contador se repone gradualmente
- Reinicio completo al final del período
Estadísticas de Uso
Gráfico de Solicitudes
Una visualización muestra el uso de la API a lo largo del tiempo:
- Eje X: Tiempo (horas/días)
- Eje Y: Conteo de solicitudes
- Ayuda a identificar patrones de uso
Análisis de Uso
Línea consistente: Procesos automatizados normales Picos: Operaciones manuales o trabajos en lote Cerca del límite: Puede necesitar optimizar o actualizar
Tabla de Solicitudes Recientes
Registro de Solicitudes
La tabla muestra llamadas recientes a la API:
| Columna | Contenido |
|---|---|
| Método | Método HTTP (GET, POST, PUT, DELETE) |
| Endpoint | Ruta de API llamada |
| Tiempo | Cuándo ocurrió la solicitud |
Indicadores de Método
Los métodos se muestran con código de colores:
- GET: Azul (operaciones de lectura)
- POST: Verde (operaciones de creación)
- PUT/PATCH: Amarillo (operaciones de actualización)
- DELETE: Rojo (operaciones de eliminación)
Propósito del Registro
Usa el registro de solicitudes para:
- Depurar problemas de integración
- Identificar uso inesperado de la API
- Monitorear comportamiento de automatización
- Auditar acceso a la API
Credenciales de API
Obtener Credenciales
Haz clic en "Obtener Credenciales" para acceder a tu clave y secreto de API:
- El botón dispara verificación de autenticación
- El modal muestra las credenciales
- Copia para usar en tus aplicaciones
Componentes de Credenciales
Clave API: Identificador público para tu integración
- Seguro de incluir en código (no es verdaderamente secreto)
- Usado en solicitudes de API para identificación
Secreto API: Token de autenticación privado
- Nunca compartir ni commitear a repositorios públicos
- Usado para firmar solicitudes
Seguridad de Credenciales
IMPORTANTE:
- Almacena secretos en variables de entorno
- Nunca commitear al control de versiones
- Rotar si potencialmente expuestos
- Usar diferentes credenciales para dev/prod
Regenerar Credenciales
Si las credenciales están comprometidas:
- Genera nuevas credenciales
- Actualiza todas las integraciones
- Las credenciales antiguas se invalidan inmediatamente
Advertencia: Regenerar rompe todas las integraciones existentes hasta que se actualicen.
Haciendo Solicitudes de API
Autenticación
Incluye credenciales en los encabezados de la solicitud:
Authorization: Bearer TU_CLAVE_API
X-API-Secret: TU_SECRETO_APIO usa HTTP Basic Auth:
Authorization: Basic base64(CLAVE_API:SECRETO_API)URL Base
Todas las solicitudes de API usan:
https://services.gitscrum.com/v1Formato de Solicitud
Encabezados:
Content-Type: application/json
Accept: application/json
Authorization: Bearer TU_CLAVE_APIEjemplo de solicitud GET:
curl -X GET "https://services.gitscrum.com/v1/projects/SLUG_PROYECTO/tasks" \
-H "Authorization: Bearer TU_CLAVE_API" \
-H "X-API-Secret: TU_SECRETO_API"Ejemplo de solicitud POST:
curl -X POST "https://services.gitscrum.com/v1/projects/SLUG_PROYECTO/tasks" \
-H "Authorization: Bearer TU_CLAVE_API" \
-H "X-API-Secret: TU_SECRETO_API" \
-H "Content-Type: application/json" \
-d '{"title": "Nueva Tarea", "description": "Creada via API"}'Endpoints Comunes
Tareas
| Método | Endpoint | Acción |
|---|---|---|
| GET | /tasks | Listar todas las tareas |
| GET | /tasks/{uuid} | Obtener tarea individual |
| POST | /tasks | Crear tarea |
| PUT | /tasks/{uuid} | Actualizar tarea |
| DELETE | /tasks/{uuid} | Eliminar tarea |
Sprints
| Método | Endpoint | Acción |
|---|---|---|
| GET | /sprints | Listar sprints |
| GET | /sprints/{uuid} | Obtener detalles del sprint |
| POST | /sprints | Crear sprint |
| PUT | /sprints/{uuid} | Actualizar sprint |
Entradas de Tiempo
| Método | Endpoint | Acción |
|---|---|---|
| GET | /time-entries | Listar entradas de tiempo |
| POST | /time-entries | Registrar tiempo |
| PUT | /time-entries/{uuid} | Actualizar entrada |
| DELETE | /time-entries/{uuid} | Eliminar entrada |
Miembros
| Método | Endpoint | Acción |
|---|---|---|
| GET | /members | Listar miembros del proyecto |
| GET | /members/{uuid} | Obtener detalles del miembro |
Formato de Respuesta
Respuesta Exitosa
{
"data": {
// Datos del recurso
},
"meta": {
"current_page": 1,
"total_pages": 5,
"total_count": 47
}
}Respuesta de Error
{
"error": {
"code": "validation_error",
"message": "El título es requerido",
"details": {
"title": ["Este campo es requerido"]
}
}
}Códigos de Estado HTTP
| Código | Significado |
|---|---|
| 200 | Éxito |
| 201 | Creado |
| 204 | Sin contenido (eliminación exitosa) |
| 400 | Solicitud incorrecta (error de validación) |
| 401 | No autorizado (credenciales inválidas) |
| 403 | Prohibido (permisos insuficientes) |
| 404 | No encontrado |
| 429 | Límite de velocidad excedido |
| 500 | Error del servidor |
Paginación
Los endpoints de lista devuelven resultados paginados:
Parámetros de Consulta
| Parámetro | Predeterminado | Descripción |
|---|---|---|
page | 1 | Número de página |
per_page | 25 | Elementos por página (máx 100) |
Ejemplo
GET /tasks?page=2&per_page=50Meta de Respuesta
{
"meta": {
"current_page": 2,
"per_page": 50,
"total_pages": 10,
"total_count": 487
}
}Filtrado
Muchos endpoints soportan filtrado:
Filtros de Tareas
| Parámetro | Ejemplo |
|---|---|
status | ?status=in-progress |
assignee | ?assignee=user-uuid |
label | ?label=bug |
sprint | ?sprint=sprint-uuid |
created_after | ?created_after=2024-01-01 |
Filtros de Entradas de Tiempo
| Parámetro | Ejemplo |
|---|---|
user | ?user=user-uuid |
billable | ?billable=true |
from | ?from=2024-01-01 |
to | ?to=2024-01-31 |
Webhooks vs. Polling
Cuándo Usar API
- Leer datos bajo demanda
- Crear/actualizar recursos
- Sincronización única de datos
- Acciones iniciadas por usuario
Cuándo Usar Webhooks
- Notificaciones en tiempo real
- Automatización basada en eventos
- Sincronización continua
- Actualizaciones de sistemas externos
Solución de Problemas
401 No Autorizado
Causas:
- Clave API inválida
- Secreto inválido o faltante
- Credenciales regeneradas
Soluciones:
- Verificar que las credenciales sean actuales
- Revisar formato de encabezados
- Re-copiar credenciales desde configuración
403 Prohibido
Causas:
- El rol carece de permiso para la acción
- El recurso pertenece a proyecto diferente
- La acción no está permitida para el estado del recurso
Soluciones:
- Verificar rol de usuario
- Comprobar que el slug del proyecto coincida
- Revisar requisitos de la acción
429 Límite de Velocidad
Causas:
- Demasiadas solicitudes en el período
- Polling agresivo
- Integración ineficiente
Soluciones:
- Esperar el período de reinicio
- Implementar backoff exponencial
- Cachear respuestas donde sea posible
- Considerar webhook para necesidades en tiempo real
Permisos
| Acción | Rol Requerido |
|---|---|
| Ver configuración de API | Manager, Agency Owner |
| Obtener credenciales | Manager, Agency Owner |
| Regenerar credenciales | Agency Owner |
| Ver registro de solicitudes | Manager, Agency Owner |
Los permisos de API mapean a roles de usuario—la API no puede exceder los permisos del usuario en el proyecto.
La API extiende las capacidades de GitScrum a cualquier sistema o flujo de trabajo que puedas imaginar. Comienza leyendo datos, progresa a crear recursos, y construye integraciones personalizadas que se ajusten perfectamente a las necesidades de tu equipo.
Configuración de Presupuesto
La pestaña Presupuesto transforma los datos de seguimiento de tiempo en insights financieros. Rastrea la asignación de recursos, establece tarifas por hora personalizadas, configura alertas de costos y gestiona la configuración del presupuesto del proyecto en un solo lugar.
Sub-pestañas de Presupuesto
La configuración de presupuesto se organiza en cuatro secciones especializadas:
| Sub-pestaña | Propósito |
|---|---|
| Asignación | Ver asignación de tiempo del equipo y horas facturables |
| Tarifas | Establecer tarifas por hora por usuario |
| Alertas | Configurar notificaciones de umbral de presupuesto |
| Configuración | Tarifas predeterminadas y configuración de presupuesto |
Navega entre las sub-pestañas usando la barra lateral dentro de la configuración de Presupuesto.
Sección de Asignación
La vista de Asignación muestra cómo los miembros del equipo están gastando su tiempo en este proyecto.
Tabla de Asignación
Cada fila representa un miembro del equipo con:
| Columna | Descripción |
|---|---|
| Miembro | Avatar, nombre y rol del usuario |
| Horas Registradas | Tiempo total rastreado contra el proyecto |
| Horas Facturables | Porción marcada como facturable |
| % Facturable | Porcentaje de tiempo que es facturable |
| Costo | Horas × tarifa por hora |
Leyendo Datos de Asignación
Alto porcentaje facturable: Miembro del equipo enfocado en trabajo entregable al cliente. El objetivo varía por rol—los desarrolladores típicamente más alto que los gerentes.
Bajo porcentaje facturable: Más tiempo en tareas internas, reuniones o gastos generales. No es inherentemente malo, pero vale la pena monitorear.
Distribución desigual: Un miembro con significativamente más horas puede indicar desequilibrio de carga de trabajo o cuello de botella.
Métricas Clave
La barra de filtro muestra métricas agregadas:
- Total de miembros del equipo: Número de personas con tiempo registrado
- Total de horas facturables: Suma entre todos los miembros
Sección de Tarifas
Establece tarifas por hora personalizadas para miembros individuales del equipo. Las tarifas personalizadas anulan la tarifa predeterminada del proyecto.
Tarifa Predeterminada
La tarifa por hora predeterminada del proyecto aplica a cualquier miembro sin tarifa personalizada. Establece esto en la sub-pestaña Configuración.
Tabla de Tarifas Personalizadas
| Columna | Descripción |
|---|---|
| Miembro | Usuario con tarifa personalizada |
| Tarifa | Tarifa por hora para este usuario |
| Acciones | Editar o eliminar tarifa personalizada |
Añadir una Tarifa Personalizada
- Haz clic en el botón "Añadir Tarifa"
- Selecciona miembro del equipo del dropdown
- Ingresa tarifa por hora
- Haz clic en Guardar
Casos de uso para tarifas personalizadas:
- Ingenieros senior con tarifas de facturación más altas
- Miembros junior del equipo con tarifas reducidas
- Contratistas con tarifas negociadas
- Consultores facturados a tarifas premium
Editar Tarifas
Haz clic en el ícono de edición en cualquier fila de tarifa para modificar el monto. Los cambios aplican a cálculos futuros—los costos históricos no se actualizan retroactivamente.
Eliminar Tarifas Personalizadas
Elimina una tarifa personalizada para revertir ese miembro a la tarifa predeterminada. Nuevamente, esto afecta solo cálculos futuros.
Visualización de Tarifas
Las tarifas se muestran en la moneda configurada de tu espacio de trabajo. El formato sigue la configuración regional (ej., $125.00, €125,00).
Sección de Alertas
Las alertas de presupuesto te notifican cuando los costos se acercan o exceden los umbrales. La notificación proactiva previene sorpresas de presupuesto.
Tipos de Alerta
| Tipo | Propósito | Visual |
|---|---|---|
| Advertencia | Acercándose al umbral | Indicador amarillo |
| Crítico | Umbral excedido | Indicador rojo |
Alertas Configuradas
La lista de alertas muestra todos los umbrales de presupuesto:
- Nombre/descripción de la alerta
- Monto o porcentaje del umbral
- Estado actual (OK, Advertencia, Crítico)
- Última marca de tiempo disparada
- Estado de reconocimiento
Comportamiento de Alertas
Cuando se alcanza un umbral:
- El estado de la alerta cambia a Advertencia o Crítico
- Se envía notificación (correo, en-app)
- La alerta aparece en el dashboard
- Permanece hasta que se reconoce o la condición se despeja
Reconocer Alertas
Haz clic para reconocer una alerta. Esto:
- Marca la alerta como vista
- Detiene notificaciones repetidas (hasta el próximo disparo)
- Registra quién reconoció y cuándo
El reconocimiento no resuelve el problema subyacente del presupuesto—solo confirma el conocimiento.
Sub-pestaña de Configuración
Configuración central de presupuesto para el proyecto.
Presupuesto del Proyecto
Presupuesto Total: El presupuesto general del proyecto en tu moneda. Este es el número contra el que las alertas comparan.
Establecer un presupuesto habilita:
- Seguimiento del progreso del presupuesto
- Alertas basadas en porcentaje
- Reportes de costo vs. presupuesto
Déjalo en blanco si el proyecto no tiene un presupuesto fijo.
Tarifa por Hora Predeterminada
La tarifa aplicada a miembros del equipo sin tarifas personalizadas. Recomendaciones:
Modelo de agencia: Usa tu tarifa estándar de facturación al cliente Proyectos internos: Usa costo cargado (salario ÷ horas de trabajo + gastos generales) Proyectos de precio fijo: Puede ser menos relevante—rastrea para análisis de costo interno
Configuración de Alertas
Crea y gestiona alertas de presupuesto:
Añadir Alerta:
- Haz clic en "Añadir Alerta"
- Establece umbral (monto o porcentaje)
- Elige tipo de alerta (advertencia/crítico)
- Configura destinatarios de notificación
- Guardar
Editar Alerta: Haz clic en cualquier alerta para modificar umbral, tipo o destinatarios.
Eliminar Alerta: Elimina alertas que ya no se necesitan.
Facturable por Defecto
Alterna si las nuevas entradas de tiempo son facturables por defecto. Los miembros del equipo pueden anular por entrada, pero esto establece el estado inicial.
Facturable por defecto ACTIVADO: La mayoría del tiempo es facturable al cliente Facturable por defecto DESACTIVADO: La mayoría del tiempo es interno/gastos generales
Guardar Configuración
Haz clic en "Guardar" para persistir los cambios. Los cambios en tarifas y presupuestos afectan los cálculos futuros inmediatamente.
Cálculos de Costo
Entender cómo se calculan los costos ayuda a interpretar los datos correctamente.
Fórmula Básica
Costo = Horas × TarifaHoras: De entradas de seguimiento de tiempo Tarifa: Tarifa personalizada si está establecida, de lo contrario tarifa predeterminada
Facturable vs. No Facturable
Solo las horas facturables se consideran en los reportes de facturación. Todas las horas (facturables + no facturables) se consideran en los cálculos de costos.
Precedencia de Tarifas
- Tarifa personalizada del usuario (si está establecida)
- Tarifa predeterminada del proyecto (si está establecida)
- Cero (si no hay tarifa configurada)
Moneda
Todos los valores monetarios usan la moneda configurada del espacio de trabajo. La moneda no puede diferir por proyecto—es a nivel de espacio de trabajo.
Datos Históricos
Los cambios de tarifa no recalculan retroactivamente los costos históricos. El costo al momento de la entrada persiste.
Para actualizar costos históricos después de cambios de tarifa, necesitarías ajustar manualmente las entradas de tiempo.
Permisos
| Acción | Rol Requerido |
|---|---|
| Ver asignación | Miembro del proyecto |
| Ver tarifas | Manager, Agency Owner |
| Editar tarifas | Manager, Agency Owner |
| Configurar alertas | Manager, Agency Owner |
| Cambiar configuración | Manager, Agency Owner |
Los miembros regulares del equipo ven su propia asignación pero no las tarifas del equipo o la configuración de alertas.
Solución de Problemas
Los costos muestran $0: Verifica que la tarifa predeterminada esté establecida y existan entradas de tiempo.
Las alertas no se disparan: Verifica que la alerta esté habilitada y el umbral no haya sido reconocido.
Moneda incorrecta: La moneda es a nivel de espacio de trabajo—contacta al administrador del espacio de trabajo para cambiarla.
Las tarifas no aplican: Las nuevas tarifas aplican solo a entradas futuras. Verifica la marca de tiempo de la entrada vs. la marca de tiempo del cambio de tarifa.
Faltan miembros del equipo en asignación: Los miembros deben haber registrado tiempo para aparecer.
La configuración de presupuesto transforma los datos de tiempo en insights financieros accionables. Configura una vez, monitorea regularmente, y adelántate a los problemas de presupuesto antes de que se conviertan en problemas.
Configuración de Detalles del Proyecto
La pestaña Detalles controla la identidad fundamental y la disponibilidad de funciones de tu proyecto. Aquí es donde configuras cómo se llama tu proyecto, qué hace y qué capacidades de GitScrum utiliza.
Sección de Información Básica
Nombre del Proyecto
El identificador principal para tu proyecto en todo GitScrum. Este nombre aparece en:
- Navegación de la barra lateral
- Encabezados de proyecto y breadcrumbs
- Notificaciones y correos electrónicos
- Reportes y exportaciones
- Resultados de búsqueda
Mejores prácticas:
- Mantenlo conciso (2-4 palabras)
- Hazlo reconocible para tu equipo
- Evita nombres genéricos como "Proyecto 1"
- Considera prefijos para proyectos relacionados (Cliente-Web, Cliente-Mobile)
Límite de caracteres: 255 caracteres máximo
Descripción del Proyecto
Texto explicativo opcional sobre el propósito, alcance o enfoque actual del proyecto. Útil para:
- Incorporar nuevos miembros del equipo
- Distinguir entre proyectos similares
- Documentar la fase u objetivos del proyecto
La descripción se muestra en la vista general del proyecto y en los listados de proyectos.
Categoría
Las categorías organizan proyectos a nivel de espacio de trabajo. Selecciona de las categorías existentes o deja sin categorizar.
Beneficios de las categorías:
- Filtrar listas de proyectos por categoría
- Agrupar proyectos relacionados en reportes
- Organizar el dashboard del espacio de trabajo
Las categorías se gestionan a nivel de espacio de trabajo—aquí seleccionas de las opciones disponibles, no creas nuevas.
Sección de Funciones del Proyecto
Activa o desactiva funciones individuales de GitScrum para este proyecto. Cada toggle controla la visibilidad de esa función en la barra lateral del proyecto y en toda la interfaz.
Funciones Disponibles
| Función | Qué Controla |
|---|---|
| Sprints | Planificación de sprint, tablero de sprint, seguimiento de velocidad, gráficos burndown |
| Seguimiento de Tiempo | Registro de tiempo, hojas de tiempo, reportes de tiempo, horas facturables |
| Historias de Usuario | Épicas, historias de usuario, criterios de aceptación, mapeo de historias |
| Wiki | Base de conocimiento, páginas de documentación, historial de revisiones |
| Discusiones | Canales de chat del equipo, conversaciones en hilos, compartir archivos |
| Documentos | Gestor de archivos, integración de almacenamiento en la nube, organización de carpetas |
Comportamiento del Toggle de Funciones
Cuando está deshabilitado:
- La función desaparece de la barra lateral del proyecto
- Los elementos de menú relacionados se ocultan
- Los datos existentes permanecen preservados
- Los enlaces a esa función devuelven errores
Cuando se vuelve a habilitar:
- La función reaparece inmediatamente
- Todos los datos históricos se restauran
- Ningún dato se elimina jamás al deshabilitar
¿Por Qué Deshabilitar Funciones?
No todo proyecto necesita todas las funciones. Un proyecto de documentación podría solo necesitar Wiki y Documentos. Un simple rastreador de tareas podría solo necesitar el tablero Kanban (que siempre está habilitado).
Beneficios de deshabilitar funciones no usadas:
- Navegación de barra lateral más limpia
- Reducción de carga cognitiva para el equipo
- Incorporación más rápida para nuevos miembros
- Flujo de trabajo enfocado sin distracciones
Estado Predeterminado
Los nuevos proyectos tienen todas las funciones habilitadas por defecto. Ajusta durante la configuración inicial o en cualquier momento durante el ciclo de vida del proyecto.
Sección de Branding
Personaliza la identidad visual de tu proyecto con un logo personalizado.
Subir Logo del Proyecto
Formatos soportados: PNG, JPG, GIF Tamaño recomendado: 256×256 píxeles (cuadrado) Tamaño máximo de archivo: 2MB
Métodos de carga:
- Arrastrar y soltar: Arrastra un archivo de imagen al área de carga
- Clic para explorar: Haz clic en el área de carga para abrir el selector de archivos
Ubicaciones de Visualización del Logo
Tu logo subido aparece en:
- Barra lateral del proyecto (ícono pequeño)
- Encabezado del proyecto
- Listas de selección de proyectos
- Notificaciones (algunos clientes de correo)
Progreso de Carga
Un indicador de progreso se muestra durante la carga. Archivos grandes o conexiones lentas pueden tomar unos segundos.
Eliminar Logo
Haz clic en el botón eliminar/borrar para volver al ícono de proyecto predeterminado (un cuadrado coloreado con las iniciales del proyecto).
Consejos para el Logo
- Usa fondos transparentes: PNG con transparencia se ve más limpio
- Los íconos simples funcionan mejor: Las imágenes detalladas se vuelven irreconocibles en tamaños pequeños
- Branding consistente: Coincide con la identidad visual de tu organización
- Prueba en modo oscuro: Asegura visibilidad en fondos oscuros
Sección Zona de Peligro
Acciones irreversibles que impactan significativamente el proyecto. Estos controles requieren confirmación explícita para prevenir activación accidental.
Eliminar Proyecto
Elimina permanentemente el proyecto y todos los datos asociados:
Lo que se elimina:
- Todas las tareas (abiertas, cerradas, archivadas)
- Todos los sprints e historial de sprints
- Todas las entradas de tiempo
- Todas las páginas wiki y revisiones
- Todos los documentos y carpetas
- Todos los canales de discusión y mensajes
- Todas las historias de usuario y épicas
- Toda la configuración del proyecto
- Todas las configuraciones de integración
- Toda la configuración de webhooks
- Todos los registros de acceso a API
Lo que se preserva:
- Configuración del espacio de trabajo (no afectada)
- Cuentas de usuario (no afectadas)
- Otros proyectos (no afectados)
- Historial de facturación (si el proyecto tenía facturas asociadas)
Confirmación de Eliminación
El diálogo de confirmación requiere escribir el nombre exacto del proyecto:
- El diálogo muestra advertencia sobre eliminación permanente
- El campo de texto requiere coincidencia exacta del nombre del proyecto
- Sensible a mayúsculas: "Mi Proyecto" ≠ "mi proyecto"
- El botón eliminar solo se habilita cuando el nombre coincide
Quién Puede Eliminar
Solo usuarios con rol de Agency Owner pueden eliminar proyectos. Los Managers y miembros regulares ven la Zona de Peligro pero no pueden activar eliminar.
Antes de Eliminar
Considera alternativas:
- Archivar: Ocultar proyecto de listas activas mientras preservas datos
- Exportar: Descargar datos del proyecto antes de eliminar
- Transferir: Pasar a otro propietario del espacio de trabajo
Verificar con stakeholders:
- Confirmar con stakeholders del proyecto
- Asegurar que no hay datos críticos que necesiten preservación
- Verificar si alguna integración depende de este proyecto
Después de Eliminar
- El proyecto desaparece inmediatamente de todas las vistas
- Los miembros pierden acceso instantáneamente
- Cualquier reporte programado para este proyecto falla
- Los webhooks dejan de disparar
- Las llamadas a API devuelven 404
Recuperación: La eliminación no puede deshacerse. No hay papelera ni mecanismo de restauración. Los datos se eliminan permanentemente de los servidores de GitScrum.
Guardar Cambios
Botón Guardar
El encabezado contiene un botón Guardar que se activa cuando se detectan cambios:
Estados del botón:
- Guardar: Cambios detectados, listo para guardar
- Guardando...: Guardado en progreso (con spinner)
- Guardado: Guardado exitosamente (se muestra brevemente antes de reiniciarse)
Detección Automática
El formulario rastrea cambios automáticamente:
- Campos de texto modificados
- Funciones alternadas
- Logo subido/eliminado
Navegar fuera con cambios sin guardar muestra un diálogo de confirmación.
Errores de Guardado
Si el guardado falla:
- Se muestra mensaje de error
- Los cambios permanecen en el formulario
- Reintentar guardar después de verificar conexión de red
Causas comunes:
- Desconexión de red
- Sesión expirada (re-login requerido)
- Cambios de permisos (rol modificado por admin)
Validación de Formulario
Validación del Nombre del Proyecto
- Requerido: No puede estar vacío
- Único: Debe ser único dentro del espacio de trabajo
- Longitud: Máximo 255 caracteres
- Caracteres: Cualquier carácter Unicode permitido
Validación de Descripción
- Opcional: Puede estar vacío
- Longitud: Máximo 1000 caracteres
- Formato: Solo texto plano (sin markdown)
Atajos de Teclado
| Atajo | Acción |
|---|---|
Cmd/Ctrl + S | Guardar cambios |
Tab | Mover al siguiente campo |
Shift + Tab | Mover al campo anterior |
Esc | Cancelar y volver al proyecto |
Estados de Carga
Carga inicial:
- Spinner se muestra mientras se obtienen datos del proyecto
- El formulario aparece una vez que los datos cargan
- Estado de error se muestra si la carga falla con opción de reintentar
Carga de logo:
- Barra de progreso durante la carga
- Spinner durante el procesamiento
- Estado de éxito parpadea brevemente
Operación de guardado:
- El botón muestra spinner
- El formulario permanece interactivo (pero guardar deshabilitado)
- Feedback de éxito/error al completar
Estados de Error
Error de Carga
Si los datos del proyecto fallan al cargar:
- Se muestra ícono de error y mensaje
- El botón "Reintentar" intenta recargar
- Verificar red y permisos si persiste
Error de Guardado
Si los cambios fallan al guardar:
- Notificación toast muestra error
- Los cambios se preservan en el formulario
- El botón "Guardar" permanece activo para reintentar
Error de Carga
Si la carga del logo falla:
- Mensaje de error debajo del área de carga
- El logo anterior permanece (si había)
- Intentar tamaño de archivo más pequeño o formato diferente
Los Detalles del Proyecto establecen la base de la identidad y capacidades de tu proyecto. Configura cuidadosamente en la creación del proyecto, luego ajusta a medida que tu proyecto evoluciona.
Configuración de Integraciones
La pestaña Integraciones conecta GitScrum con las herramientas que tu equipo ya usa. Envía notificaciones a plataformas de chat, vincula sistemas de control de versiones y automatiza flujos de trabajo a través de servicios de terceros.
Categorías de Integraciones
Las integraciones de GitScrum se dividen en dos grupos:
Integraciones Nativas
Construidas directamente en GitScrum con funcionalidad profunda:
- Slack: Mensajería de equipo
- Microsoft Teams: Comunicación empresarial
- Discord: Chat enfocado en comunidad
- GitHub: Control de versiones (Pro)
- GitLab: Control de versiones (Pro)
- Bitbucket: Control de versiones (Pro)
Integraciones Externas
Conectar a través de plataformas de terceros:
- Zapier: Conexiones con más de 5,000 apps
- Make (Integromat): Automatización avanzada de flujos de trabajo
Interfaz de Integraciones
Diseño de Barra Lateral
La barra lateral izquierda lista todas las integraciones disponibles:
- Ícono y nombre de la integración
- Indicador de estado de conexión
- Insignia Pro para funciones premium
Haz clic en cualquier integración para ver su panel de configuración a la derecha.
Indicadores de Estado
| Indicador | Significado |
|---|---|
| Punto verde | Conectado y activo |
| Sin indicador | No configurado |
| Punto naranja | Necesita atención |
| Punto rojo | Error/desconectado |
Conteo de Activos
El encabezado muestra el total de integraciones activas, dando visibilidad rápida de qué tan conectado está tu proyecto.
Integraciones de Comunicación
Slack
Conecta Slack para recibir notificaciones del proyecto en los canales de tu espacio de trabajo.
Proceso de Configuración:
- Haz clic en Slack en la barra lateral
- Haz clic en "Conectar a Slack"
- Autoriza GitScrum en el flujo OAuth de Slack
- Selecciona el espacio de trabajo a conectar
- Elige el canal de notificaciones predeterminado
- Guarda la configuración
Opciones de Configuración:
- Canal: Qué canal de Slack recibe las notificaciones
- Eventos: Selecciona qué eventos disparan notificaciones
- Formato: Formato de mensaje rico o simple
Eventos de Notificación:
- Tarea creada, actualizada, completada
- Sprint iniciado, completado
- Miembro del equipo añadido/eliminado
- Comentarios y menciones
- Entradas de tiempo registradas
Probando: Haz clic en "Enviar Mensaje de Prueba" para verificar que la conexión funciona. Una notificación de ejemplo aparece en tu canal configurado.
Desconectar: Haz clic en "Desconectar" para eliminar la integración de Slack. Las notificaciones se detienen inmediatamente. Los mensajes históricos en Slack permanecen.
Microsoft Teams
La integración de Teams refleja la funcionalidad de Slack para entornos Microsoft 365.
Proceso de Configuración:
- Haz clic en Microsoft Teams en la barra lateral
- Haz clic en "Conectar a Teams"
- Inicia sesión con cuenta de Microsoft
- Otorga permisos a GitScrum
- Selecciona equipo y canal
- Configura preferencias de notificación
Opción de Webhook: Alternativamente, usa un webhook entrante:
- Crea webhook entrante en Teams
- Copia la URL del webhook
- Pega la URL en la configuración de GitScrum
- Selecciona eventos a enviar
Eventos y formato coinciden con las capacidades de Slack.
Discord
Conecta Discord para notificaciones de comunidad o equipo.
Proceso de Configuración:
- Haz clic en Discord en la barra lateral
- Elige método de conexión:
- OAuth (recomendado)
- URL de Webhook (más simple)
- Para OAuth: Autoriza y selecciona servidor/canal
- Para Webhook: Pega la URL de webhook de Discord
- Configura eventos
Opciones específicas de Discord:
- Embeds ricos con detalles de tareas
- Menciones de @rol para eventos críticos
- Nombre y avatar de bot personalizados
Nota: Los webhooks de Discord no soportan todas las opciones de formato que OAuth proporciona.
Integraciones de Control de Versiones (Pro)
Vincula repositorios Git para conectar commits, ramas y pull requests con tareas de GitScrum.
GitHub
Requisitos:
- Suscripción Pro
- Cuenta de GitHub con acceso al repositorio
- Repositorios de organización o personales
Proceso de Configuración:
- Haz clic en GitHub en la barra lateral
- Haz clic en "Conectar Cuenta de GitHub"
- Autentica via OAuth de GitHub
- Otorga permisos de acceso al repositorio
- Selecciona repositorios a vincular
Configuración:
- Repositorios: Elige qué repos conectar a este proyecto
- Auto-vinculación: Habilita parsing inteligente de mensajes de commit
- Estado de Pull Request: Muestra estado de PR en tareas
Vinculación de Commits: Incluye identificadores de tareas en mensajes de commit:
git commit -m "Añadir validación de login [GS-123]"GitScrum vincula automáticamente el commit a la tarea GS-123.
Identificadores soportados:
[GS-123]oGS-123#123(si está configurado)- UUID de tarea (para integraciones de API)
Integración de Pull Request:
- La creación de PR notifica en tareas vinculadas
- El estado de PR se muestra en la vista de tarea
- El merge cierra tareas vinculadas (si está configurado)
GitLab
Funcionalidad idéntica a GitHub para usuarios de GitLab.
Proceso de Configuración:
- Haz clic en GitLab en la barra lateral
- Haz clic en "Conectar Cuenta de GitLab"
- Autentica via OAuth de GitLab
- Selecciona proyectos/repositorios
- Configura preferencias de vinculación
GitLab auto-hospedado: Los usuarios Enterprise pueden conectar instancias de GitLab auto-hospedadas:
- Ingresa la URL de la instancia de GitLab
- Crea token de acceso personal
- Configura permisos
- Completa la conexión
Bitbucket
Los usuarios de Atlassian pueden conectar repositorios de Bitbucket.
Proceso de Configuración:
- Haz clic en Bitbucket en la barra lateral
- Autentica via OAuth de Bitbucket
- Selecciona repositorios
- Configura vinculación de commits
Específico de Bitbucket:
- Soporta tanto Cloud como Server
- Funciona con Bitbucket Pipelines
- Se integra con migraciones de Jira
Plataformas de Integración Externa
Zapier
Conecta GitScrum a más de 5,000 apps a través de la plataforma de automatización de Zapier.
Lo que Zapier habilita:
- Crear tareas desde envíos de formularios
- Sincronizar con sistemas CRM
- Notificar via SMS o correo
- Actualizar hojas de cálculo desde datos de tareas
- Disparar acciones en cualquier app soportada por Zapier
Empezando:
- Haz clic en Zapier en la barra lateral
- Abre la página de integración de GitScrum en Zapier
- Crea cuenta o inicia sesión
- Construye "Zaps" conectando GitScrum a otras apps
Zaps Populares:
- Gmail → GitScrum: Correo crea tarea
- Google Sheets → GitScrum: Fila crea tarea
- GitScrum → Google Calendar: Fecha límite de tarea crea evento
- Typeform → GitScrum: Envío de formulario crea tarea
Autenticación: Zapier conecta via API de GitScrum. Ingresarás credenciales de API al configurar el Zap.
Make (Integromat)
Automatización más avanzada con constructor visual de flujos de trabajo.
Lo que Make habilita:
- Escenarios complejos de múltiples pasos
- Lógica condicional y ramificación
- Transformación de datos entre apps
- Flujos de trabajo programados y disparados
Empezando:
- Haz clic en Make en la barra lateral
- Abre la página del módulo de GitScrum en Make
- Crea escenarios conectando GitScrum
Make vs. Zapier:
- Make: Más potente, curva de aprendizaje más pronunciada
- Zapier: Más simple, más caro a escala
Referencia de Eventos
Eventos de Tareas
| Evento | Se Dispara Cuando |
|---|---|
| task.created | Nueva tarea creada |
| task.updated | Campos de tarea modificados |
| task.deleted | Tarea eliminada |
| task.assigned | Asignatario cambiado |
| task.moved | Estado/columna cambiado |
| task.completed | Tarea marcada como hecha |
Eventos de Sprint
| Evento | Se Dispara Cuando |
|---|---|
| sprint.created | Nuevo sprint creado |
| sprint.started | Sprint activado |
| sprint.completed | Sprint finalizado |
| sprint.deleted | Sprint eliminado |
Eventos de Entrada de Tiempo
| Evento | Se Dispara Cuando |
|---|---|
| time_entry.logged | Nueva entrada de tiempo |
| time_entry.updated | Entrada modificada |
| time_entry.deleted | Entrada eliminada |
Eventos de Proyecto
| Evento | Se Dispara Cuando |
|---|---|
| project.updated | Configuración cambiada |
| project.member_added | Nuevo miembro |
| project.member_removed | Miembro eliminado |
Solución de Problemas
Slack No Conecta
Errores de OAuth:
- Asegúrate de tener permiso de admin del espacio de trabajo de Slack
- Verifica que el navegador permita popups para el flujo OAuth
- Intenta desconectar y reconectar
Mensajes no aparecen:
- Verifica que el canal correcto esté seleccionado
- Revisa permisos de la app de Slack
- Envía mensaje de prueba para confirmar
Canal incorrecto:
- Edita la integración y cambia el canal
- Nota: Cambiar el canal no mueve mensajes históricos
GitHub No Vincula Commits
Commits no aparecen:
- Verifica que el repositorio esté conectado
- Revisa que el mensaje de commit incluya ID de tarea
- Asegura que el pusher tenga cuenta de GitScrum vinculada
Tarea vinculada incorrecta:
- El formato del ID de tarea importa:
[GS-123]noGS 123 - ¿Múltiples IDs? La primera coincidencia gana
Permiso denegado:
- Re-autoriza la conexión de GitHub
- Verifica configuración de visibilidad del repositorio
- Verifica permisos de la organización
Integración Desconectada
Causas de desconexión automática:
- Token expirado (re-autenticar)
- Permisos revocados en servicio externo
- Contraseña cambiada en cuenta externa
Solución: Desconecta y luego reconecta la integración para refrescar tokens.
Permisos
| Acción | Rol Requerido |
|---|---|
| Ver integraciones | Miembro del proyecto |
| Conectar/desconectar | Manager, Agency Owner |
| Configurar ajustes | Manager, Agency Owner |
| Acceder control de versiones | Suscripción Pro + Manager |
Funciones Pro
Las integraciones de GitHub, GitLab y Bitbucket requieren una suscripción Pro. El panel de integración muestra una insignia "PRO" junto a estas opciones.
Lo que Pro añade:
- Integración completa de control de versiones
- Vinculación de commits y PR
- Sincronización de repositorios
- Seguimiento de estado de ramas
Los usuarios sin Pro ven las opciones pero no pueden completar la configuración.
Las integraciones conectan GitScrum a tu flujo de trabajo existente. Comienza con notificaciones de comunicación, añade control de versiones si usas Git, y explora plataformas de automatización para flujos de trabajo avanzados.
Configuración de Miembros
La pestaña Miembros controla quién tiene acceso a tu proyecto. Asigna equipos completos o añade miembros individuales para asegurar que las personas correctas puedan colaborar mientras se mantiene el control de acceso.
Modelo de Acceso
GitScrum usa un modelo de acceso por capas:
- Membresía del espacio de trabajo: El usuario debe pertenecer al espacio de trabajo
- Asignación de equipo o individual: El usuario obtiene acceso al proyecto via equipo o asignación directa
- Permisos de rol: El rol del usuario en el espacio de trabajo determina las capacidades
El acceso al proyecto no anula los roles del espacio de trabajo—los permisos vienen de la asignación de rol a nivel de espacio de trabajo.
Interfaz de Miembros
Barra de Filtro
El encabezado muestra:
- Título de la vista actual
- Conteo de asignaciones de equipo
- Conteo de miembros individuales
- Campo de búsqueda para filtrar
Búsqueda
Escribe para filtrar por:
- Nombre del equipo
- Nombre del miembro
- Dirección de correo
Los resultados se actualizan en tiempo real mientras escribes.
Botón Añadir Miembros
Haz clic para abrir el diálogo de asignación de miembros/equipos. Disponible para Agency Owners y Managers con los permisos apropiados.
Sección de Asignaciones de Equipo
Sección Expandible
Haz clic en el encabezado "Asignaciones de Equipo" para expandir/colapsar. Muestra el conteo en paréntesis.
Tabla de Equipos
Cuando se expande, una tabla muestra los equipos asignados:
| Columna | Contenido |
|---|---|
| Equipo | Ícono del equipo, nombre |
| Miembros | Conteo de miembros del equipo |
| Asignado | Fecha en que el equipo se añadió al proyecto |
| Acciones | Opción de eliminar (para usuarios autorizados) |
Expansión de Fila de Equipo
Haz clic en una fila de equipo para expandir y ver los miembros individuales dentro de ese equipo:
- Avatar y nombre del miembro
- Correo del miembro
- Rol dentro del equipo
- Fecha de incorporación
Asignar Equipos
- Haz clic en "Añadir Miembros"
- Selecciona la pestaña "Equipos"
- Elige el/los equipo(s) a añadir
- Confirma la asignación
Todos los miembros del equipo obtienen acceso al proyecto inmediatamente.
Comportamiento de Acceso por Equipo
Cuando un equipo es asignado:
- Miembros actuales: Obtienen acceso inmediato
- Adiciones futuras: Automáticamente obtienen acceso cuando se añaden al equipo
- Miembros eliminados: Pierden acceso cuando se eliminan del equipo
Esto hace que la asignación de equipo sea auto-mantenible.
Eliminar Asignación de Equipo
Haz clic en el botón eliminar en una fila de equipo:
- Aparece diálogo de confirmación
- Confirma para eliminar
- Todos los miembros del equipo pierden acceso inmediatamente
Nota: Los miembros con asignación individual retienen acceso incluso si su equipo es eliminado.
Sección de Miembros Individuales
Sección Expandible
Haz clic en el encabezado "Miembros Individuales" para expandir/colapsar. Muestra el conteo en paréntesis.
Tabla de Miembros
Las asignaciones individuales muestran:
| Columna | Contenido |
|---|---|
| Miembro | Avatar, nombre, correo |
| Rol | Rol del espacio de trabajo (mostrado) |
| Asignado | Cuándo se añadió al proyecto |
| Acciones | Opción de eliminar |
Añadir Miembros Individuales
- Haz clic en "Añadir Miembros"
- Selecciona la pestaña "Miembros"
- Busca o explora los miembros disponibles
- Selecciona el/los miembro(s) a añadir
- Confirma
Individual vs. Asignación de Equipo
Cuándo usar individual:
- Colaborador temporal del proyecto
- Colaborador multifuncional
- Casos especiales de acceso
Cuándo usar equipo:
- Equipo permanente del proyecto
- Acceso basado en rol (todos los desarrolladores)
- Acceso auto-mantenible
Eliminar Miembros Individuales
Haz clic en el botón eliminar en la fila del miembro:
- Diálogo de confirmación
- Confirma la eliminación
- El miembro pierde acceso inmediatamente
Excepción: Si el equipo del miembro también está asignado, retiene acceso a través de la membresía del equipo.
Diálogo de Añadir Miembros
Estructura del Diálogo
Interfaz de dos pestañas:
- Equipos: Equipos disponibles para asignar
- Miembros: Miembros individuales del espacio de trabajo
Pestaña de Equipos
Muestra equipos del espacio de trabajo no asignados aún:
- Nombre y color del equipo
- Conteo de miembros
- Capacidad de selección múltiple
Pestaña de Miembros
Muestra miembros del espacio de trabajo no asignados individualmente:
- Buscar por nombre o correo
- Visualización de avatar y nombre
- Indicador de rol
- Capacidad de selección múltiple
Selección Masiva
Selecciona múltiples equipos o miembros antes de confirmar. Útil cuando se configuran nuevos proyectos o grandes cambios de acceso.
Requisitos de Permisos
Quién Puede Ver
Todos los miembros del proyecto pueden ver:
- Asignaciones de equipos
- Lista de miembros individuales
- Su propio tipo de acceso
Quién Puede Gestionar
| Acción | Rol Requerido |
|---|---|
| Añadir equipos | Agency Owner |
| Eliminar equipos | Agency Owner |
| Añadir individuales | Manager, Agency Owner |
| Eliminar individuales | Manager, Agency Owner (excepto a sí mismo) |
Los Managers pueden añadir individuales pero típicamente no pueden gestionar asignaciones de equipos.
Auto-Eliminación
Los usuarios no pueden eliminarse a sí mismos de un proyecto. Esto previene bloqueo accidental. Solicita a otro usuario autorizado que elimine tu acceso si es necesario.
Implicaciones de Acceso
Qué Proporciona el Acceso
Los miembros del proyecto pueden:
- Ver el proyecto en la barra lateral
- Acceder a funciones habilitadas (Kanban, Wiki, etc.)
- Ver tareas y datos del proyecto
- Interactuar según los permisos del rol
Qué No Proporciona el Acceso
- Permisos elevados más allá del rol del espacio de trabajo
- Acceso a otros proyectos (asignación separada)
- Capacidades administrativas (a menos que el rol lo permita)
Capacidades por Rol
Acceso + Rol determina los permisos reales:
| Rol | Capacidades |
|---|---|
| Agency Owner | Control total |
| Manager | Gestionar contenido, algunas configuraciones |
| Developer | Interacción completa con tareas |
| Client | Vista limitada, comentarios |
Estados de Carga
Carga Inicial
Se muestra spinner mientras se obtienen:
- Asignaciones de equipos
- Miembros individuales
- Detalles de miembros del equipo
Expansión de Equipo
Al expandir un equipo, puede ocurrir carga adicional para obtener los miembros del equipo.
Operaciones de Guardado
Añadir o eliminar muestra carga en línea. Las operaciones se completan antes de que la UI se actualice.
Escenarios Comunes
Configurar Nuevo Proyecto
- Añadir equipo central del proyecto
- Añadir stakeholders individuales
- Verificar que todos los miembros esperados aparezcan
Cambios de Miembros del Equipo
Nueva contratación se une a equipo existente:
- Automáticamente obtiene acceso a los proyectos del equipo
- No se necesita acción
Contratación de contratista:
- Añadir individualmente a proyectos específicos
- Eliminar cuando termine el contrato
Cambio de Fase del Proyecto
Transición a mantenimiento:
- Eliminar equipo de desarrollo
- Añadir equipo de soporte
- Mantener individuos clave
Auditoría de Acceso
Revisar periódicamente:
- ¿Todos los equipos asignados aún necesitan acceso?
- ¿Las asignaciones individuales aún son relevantes?
- ¿Alguien falta que debería tener acceso?
Solución de Problemas
El Miembro No Puede Acceder al Proyecto
Verificar:
- El miembro existe en el espacio de trabajo
- El miembro está asignado (equipo o individual)
- El rol del miembro permite acceso al proyecto
- El proyecto está activo (no archivado)
La Asignación de Equipo No Muestra Miembros
Posibles causas:
- El equipo en sí está vacío
- La carga aún está en progreso
- Los permisos impiden ver detalles del equipo
No Puedo Añadir Ciertos Miembros
Posibles causas:
- Ya está asignado (individualmente o via equipo)
- El usuario no está en el espacio de trabajo
- Permisos insuficientes para añadir
Miembro Eliminado Aún Tiene Acceso
Verificar:
- ¿Está asignado via un equipo que no fue eliminado?
- ¿La eliminación se guardó exitosamente?
- ¿Han actualizado su sesión?
Mejores Prácticas
Usar Equipos Cuando Sea Posible
Beneficios:
- Acceso auto-mantenible
- Auditoría más fácil
- Organización basada en roles
- Consistente entre proyectos
Individual para Excepciones
Usar para:
- Colaboraciones puntuales
- Colaboradores entre equipos
- Acceso temporal
Auditorías Regulares
Revisión mensual:
- Eliminar acceso para miembros que se fueron
- Añadir acceso para nuevos miembros del equipo
- Verificar que las asignaciones de equipo sean actuales
Documentar Decisiones de Acceso
Rastrear:
- Por qué se asignaron los equipos
- Razones de acceso individual especial
- Cambios de acceso y fechas
Acceso API
Gestionar miembros programáticamente:
GET /projects/{slug}/members
POST /projects/{slug}/members
DELETE /projects/{slug}/members/{uuid}
GET /projects/{slug}/teams
POST /projects/{slug}/teams
DELETE /projects/{slug}/teams/{uuid}Útil para aprovisionamiento automatizado de acceso.
La configuración de miembros asegura que las personas correctas tengan acceso para colaborar en tu proyecto. Usa equipos para acceso sistemático, individuales para excepciones, y audita regularmente para mantener el acceso alineado con la realidad.
Configuración de Horario de Trabajo
La pestaña Horario de Trabajo define cuándo se trabaja en este proyecto. Configura días laborales, horas diarias y festivos para asegurar que los cálculos de capacidad, planificación de sprints y seguimiento de tiempo reflejen la realidad.
Jerarquía del Horario
GitScrum usa una jerarquía para horarios de trabajo:
- Predeterminado del espacio de trabajo: Aplica a todos los proyectos a menos que se anule
- Anulación del proyecto: Este proyecto usa horario personalizado
El toggle "Anular horario del espacio de trabajo" controla cuál aplica.
Anular Horario del Espacio de Trabajo
Cuando Está Deshabilitado (Predeterminado)
El proyecto usa la configuración de horario a nivel de espacio de trabajo. Un cuadro informativo muestra:
- Días laborales actuales del espacio de trabajo
- Horas por día de la configuración del espacio de trabajo
Cualquier cambio de horario requiere acceso de administrador del espacio de trabajo.
Cuando Está Habilitado
El proyecto usa su propio horario personalizado. Aparecen opciones de configuración completas:
- Cuadrícula de días laborales
- Control deslizante de horas por día
- Festivos específicos del proyecto
Configuración de Días Laborales
Cuadrícula de Selección de Días
Siete botones representan cada día de la semana:
| Día | Abreviatura |
|---|---|
| Lunes | Lun |
| Martes | Mar |
| Miércoles | Mié |
| Jueves | Jue |
| Viernes | Vie |
| Sábado | Sáb |
| Domingo | Dom |
Seleccionar Días Laborales
Haz clic en un día para alternar:
- Activo (resaltado): Día de trabajo
- Inactivo (atenuado): Día no laboral
La mayoría de organizaciones usa Lunes-Viernes. Algunos escenarios requieren configuraciones diferentes:
- Cobertura de fin de semana: Incluir Sáb/Dom
- Observancia religiosa: Excluir días específicos
- Horario comprimido: Cuatro días de 10 horas
Conteo de Días Laborales
Debajo de la cuadrícula, un resumen muestra: "X días laborales por semana"
Esto afecta:
- Cálculos de capacidad semanal
- Conteos de días de sprint
- Pronóstico de disponibilidad de recursos
Horas Por Día
Establecer Horas Diarias
Un control deslizante o campo controla las horas trabajadas por día:
- Rango: 1-24 horas (rango práctico: 4-12)
- Predeterminado: 8 horas
- Incrementos: 0.5 horas
Capacidad Semanal
La configuración muestra la capacidad semanal calculada:
Horas por día × Días laborales = Capacidad semanal
8 horas × 5 días = 40 horas/semanaImpacto en la Planificación
Las horas por día afectan:
- Capacidad del sprint: Total de horas disponibles
- Conversión esfuerzo-a-horas: Ratio de story points a horas
- Expectativas de seguimiento de tiempo: Qué cuenta como un "día completo"
- Cálculos de burndown: Progreso diario esperado
Festivos del Proyecto
Lista de Festivos
Ver y gestionar festivos específicos del proyecto que excluyen días del tiempo de trabajo.
Añadir Festivos
- Haz clic en "Añadir Festivo"
- Selecciona fecha del selector de fechas
- Haz clic en "Añadir" para confirmar
Los festivos aparecen en lista cronológica:
- Fecha mostrada en formato regional
- Botón eliminar para quitar
Eliminar Festivos
Haz clic en el ícono eliminar junto a cualquier festivo. Se elimina inmediatamente.
Impacto de los Festivos
Los festivos afectan:
- Planificación de sprint: Día excluido de la duración del sprint
- Cálculos de capacidad: Horas disponibles reducidas
- Vistas de calendario: Día marcado como no laboral
- Cálculos de fechas límite: Cuentan los festivos
Festivos Comunes a Añadir
Considera añadir:
- Festivos nacionales/públicos
- Días de cierre de la empresa
- Eventos fuera de oficina del equipo
- Descansos extendidos (temporada de fiestas)
Gestión Masiva de Festivos
Para muchos festivos, considera:
- Gestionar a nivel de espacio de trabajo (aplica a todos los proyectos)
- Usar nivel de proyecto solo para cierres específicos del proyecto
Guardar Cambios
Botón Guardar
Haz clic en "Guardar" en el encabezado para persistir los cambios. El botón muestra:
- Guardar Cambios: Cambios detectados
- Guardando...: Guardado en progreso
- El guardado exitoso retorna al estado normal
Cuándo Guardar
Los cambios requieren guardado explícito:
- Días laborales modificados
- Horas por día cambiadas
- Festivos añadidos o eliminados
- Configuración de anulación alternada
Navegar fuera con cambios sin guardar muestra confirmación.
Indicador de Origen del Horario
El encabezado muestra el origen actual del horario:
- "Usando horario del espacio de trabajo": El proyecto hereda configuración del espacio de trabajo
- "Usando horario del proyecto": La anulación está activa
Esto ayuda a identificar rápidamente qué configuración aplica.
Visualización de Impacto
Vista Previa de Capacidad
Al planificar sprints, el horario afecta:
Ejemplo de cálculo:
- Días laborales: Lun-Vie (5 días)
- Horas por día: 8 horas
- Duración del sprint: 2 semanas
- Festivos en el sprint: 1 día
Días disponibles: (5 días × 2 semanas) - 1 festivo = 9 días
Capacidad total: 9 días × 8 horas = 72 horasContexto de Seguimiento de Tiempo
El horario afecta cómo se muestra el tiempo registrado:
- Los totales diarios se comparan contra horas por día
- Los totales semanales se comparan contra capacidad semanal
- Las horas extra se calculan cuando se excede el horario
Configuraciones Comunes
Semana Laboral Estándar
Días: Lun, Mar, Mié, Jue, Vie
Horas: 8 por día
Capacidad semanal: 40 horasSemana Laboral Comprimida
Días: Lun, Mar, Mié, Jue
Horas: 10 por día
Capacidad semanal: 40 horasSemana de Seis Días
Días: Lun, Mar, Mié, Jue, Vie, Sáb
Horas: 7 por día
Capacidad semanal: 42 horasProyecto de Medio Tiempo
Días: Lun, Mar, Mié
Horas: 6 por día
Capacidad semanal: 18 horasMejores Prácticas
Precisión Sobre Optimismo
Establece horas realistas: Si el equipo realmente trabaja 6 horas productivas, no pongas 8.
Incluye festivos temprano: Añade festivos conocidos al inicio del proyecto.
Revisa periódicamente: Ajusta conforme los patrones del equipo cambien.
Consistencia
Coincidir con la realidad: El horario debe reflejar cómo realmente sucede el trabajo.
Conocimiento del equipo: Asegura que el equipo conozca el horario configurado.
Actualizar prontamente: Ajusta cuando las circunstancias cambien.
Anular Sabiamente
Usar valores predeterminados del espacio de trabajo cuando los proyectos siguen el horario estándar.
Anular solo cuando sea necesario:
- Cliente en diferente zona horaria/región
- Proyecto con requisitos únicos
- Horario temporal diferente
Permisos
| Acción | Rol Requerido |
|---|---|
| Ver horario | Miembro del proyecto |
| Editar horario | Manager, Agency Owner |
| Añadir/eliminar festivos | Manager, Agency Owner |
| Alternar anulación | Manager, Agency Owner |
Los miembros regulares ven el horario pero no pueden modificarlo.
Solución de Problemas
Cálculos de Capacidad Incorrectos
Verificar:
- Días laborales correctamente establecidos
- Horas por día precisas
- Festivos correctamente ingresados
- Toggle de anulación en el estado esperado
El Horario No Aplica
Si usas horario del espacio de trabajo:
- Verifica que la anulación esté deshabilitada
- Revisa configuración del espacio de trabajo para valores correctos
Si usas horario del proyecto:
- Confirma que la anulación esté habilitada
- Guarda después de hacer cambios
Los Festivos No Se Excluyen
- Verifica que el festivo esté en formato de fecha correcto
- Comprueba que el festivo caiga dentro del período relevante
- Asegura que el festivo fue guardado (no solo añadido)
Discrepancia en Capacidad del Sprint
La capacidad del sprint combina:
- Configuración del horario de trabajo
- Disponibilidad de miembros del equipo
- Tiempo libre individual
Los tres factores influyen en la capacidad final. Verifica cada uno si los números parecen incorrectos.
Notas Técnicas
Manejo de Zona Horaria
Los festivos y días laborales usan la zona horaria del proyecto. Asegura que la zona horaria del proyecto esté correctamente configurada para manejo preciso de fechas.
Formato de Fecha
Las fechas de festivos se muestran en el formato de tu región. El sistema almacena fechas en formato ISO (AAAA-MM-DD) independientemente de la visualización.
Acceso API
El horario de trabajo es accesible via API:
GET /projects/{slug}/settings/schedule
PUT /projects/{slug}/settings/scheduleÚtil para gestión programática del horario.
El Horario de Trabajo asegura que las funciones de planificación y seguimiento de GitScrum reflejen cómo tu equipo realmente trabaja. Configura con precisión, mantén diligentemente, y tu planificación de capacidad permanecerá fundamentada en la realidad.
Configuración de Webhooks
Los webhooks envían solicitudes HTTP POST a tus endpoints cuando ocurren eventos en GitScrum. Construye integraciones personalizadas, dispara flujos de trabajo externos y mantén sistemas externos sincronizados con la actividad del proyecto.
Fundamentos de Webhooks
Qué Hacen los Webhooks
Cuando ocurre un evento configurado:
- GitScrum detecta el evento
- Construye un payload JSON con los datos del evento
- Envía HTTP POST a la URL de tu endpoint
- Registra la respuesta para depuración
Casos de Uso
- Notificaciones personalizadas: Enviar a sistemas de chat propietarios
- Sincronización de datos: Actualizar bases de datos externas
- Disparadores de flujos de trabajo: Iniciar pipelines CI/CD
- Registro de auditoría: Grabación externa de eventos
- Integraciones de terceros: Conectar servicios no soportados
Interfaz de Webhooks
Diseño de Tabla
Los webhooks se organizan por categoría de evento en una tabla expandible:
| Columna | Propósito |
|---|---|
| Estado | Indicador activo (tiene URL) o inactivo |
| Evento | Nombre legible del evento |
| Recurso | Identificador técnico del evento |
| Endpoint | URL que recibe el webhook |
| Acciones | Opciones de probar y configurar |
Categorías de Eventos
Haz clic en los encabezados de categoría para expandir/colapsar:
Tareas: Eventos del ciclo de vida de tareas Sprints: Eventos de gestión de sprints Entradas de Tiempo: Eventos de seguimiento de tiempo Proyectos: Eventos de configuración del proyecto
Visualización de Estadísticas
El encabezado muestra métricas de webhooks:
- Total de webhooks configurados
- Conteo de webhooks activos
Configurar Webhooks
Añadir un Endpoint
- Encuentra el tipo de evento que quieres monitorear
- Ingresa la URL de tu endpoint en el campo de entrada
- Presiona Enter o haz clic fuera para guardar
Requisitos de URL:
- Debe ser una URL HTTP o HTTPS válida
- Debe ser públicamente accesible (o dentro de tu red)
- Debe retornar estado 2xx para confirmar recepción
Formato de Endpoint
https://tu-dominio.com/webhooks/gitscrum
https://api.tuservicio.com/hooks/incoming
https://hooks.slack.com/services/T00/B00/xxx (para Slack)Validación de URL
Las URLs inválidas muestran un estado de error:
- Borde rojo en el campo
- Aparece mensaje de validación
- Guardado bloqueado hasta corregir
Eliminar un Endpoint
Limpia el campo de URL y guarda. El webhook se desactiva inmediatamente.
Referencia de Eventos
Eventos de Tareas
| Recurso | Se Dispara Cuando |
|---|---|
task.created | Nueva tarea creada en el proyecto |
task.updated | Cualquier campo de tarea modificado |
task.deleted | Tarea eliminada permanentemente |
task.assigned | Campo de asignatario cambiado |
task.moved | Tarea movida a diferente estado/columna |
task.completed | Tarea marcada como hecha |
task.commented | Nuevo comentario en tarea |
task.attachment_added | Archivo adjuntado a tarea |
Eventos de Sprints
| Recurso | Se Dispara Cuando |
|---|---|
sprint.created | Nuevo sprint creado |
sprint.updated | Detalles del sprint modificados |
sprint.started | Sprint activado |
sprint.completed | Sprint finalizado/cerrado |
sprint.deleted | Sprint eliminado |
sprint.task_added | Tarea añadida al sprint |
sprint.task_removed | Tarea eliminada del sprint |
Eventos de Entradas de Tiempo
| Recurso | Se Dispara Cuando |
|---|---|
time_entry.created | Nuevo tiempo registrado |
time_entry.updated | Entrada de tiempo modificada |
time_entry.deleted | Entrada de tiempo eliminada |
Eventos de Proyecto
| Recurso | Se Dispara Cuando |
|---|---|
project.updated | Configuración del proyecto cambiada |
project.member_added | Nuevo miembro añadido |
project.member_removed | Acceso de miembro revocado |
Estructura del Payload
Todos los webhooks envían payloads JSON con estructura consistente:
{
"event": "task.created",
"timestamp": "2024-01-15T14:30:00Z",
"project": {
"uuid": "proj-uuid-123",
"name": "Nombre del Proyecto",
"slug": "nombre-del-proyecto"
},
"data": {
// Datos específicos del evento
},
"triggered_by": {
"uuid": "user-uuid-456",
"name": "Juan Pérez",
"email": "juan@ejemplo.com"
}
}Ejemplo de Payload de Tarea
{
"event": "task.created",
"timestamp": "2024-01-15T14:30:00Z",
"project": {
"uuid": "proj-abc123",
"name": "Desarrollo Web",
"slug": "desarrollo-web"
},
"data": {
"uuid": "task-xyz789",
"title": "Implementar autenticación de usuarios",
"description": "Añadir login y registro",
"status": {
"name": "Por Hacer",
"slug": "por-hacer"
},
"priority": "high",
"assignee": {
"uuid": "user-456",
"name": "María García"
},
"due_date": "2024-01-20",
"effort": 5,
"labels": ["feature", "seguridad"]
},
"triggered_by": {
"uuid": "user-123",
"name": "Juan Pérez"
}
}Ejemplo de Payload de Sprint
{
"event": "sprint.started",
"timestamp": "2024-01-15T09:00:00Z",
"project": {
"uuid": "proj-abc123",
"name": "Desarrollo Web"
},
"data": {
"uuid": "sprint-def456",
"name": "Sprint 5",
"goal": "Completar módulo de autenticación",
"start_date": "2024-01-15",
"end_date": "2024-01-29",
"task_count": 12,
"total_effort": 45
},
"triggered_by": {
"uuid": "user-123",
"name": "Juan Pérez"
}
}Probar Webhooks
Botón de Prueba
Cada webhook configurado tiene un botón de prueba. Haz clic para enviar un payload de ejemplo:
- GitScrum envía payload de prueba a tu endpoint
- La respuesta se muestra en línea:
- Éxito (2xx): Confirmación verde
- Falla: Mensaje de error con código de estado
Payload de Prueba
Los payloads de prueba se identifican claramente como pruebas:
{
"event": "webhook.test",
"timestamp": "2024-01-15T14:30:00Z",
"test": true,
"message": "Este es un webhook de prueba de GitScrum"
}Probar Todos
El botón "Probar Todos" en el encabezado envía payloads de prueba a todos los webhooks configurados simultáneamente. Útil para verificar toda la configuración de webhooks a la vez.
Manejo de Respuestas
Respuesta Esperada
Tu endpoint debe retornar:
- Estado 2xx: Webhook recibido exitosamente
- Tiempo de respuesta: Menos de 30 segundos
Timeout
GitScrum agota el tiempo después de 30 segundos. Los procesos de larga duración deben:
- Retornar 202 Accepted inmediatamente
- Procesar asincrónicamente
Lógica de Reintentos
Los webhooks fallidos reintentan automáticamente:
- 1er reintento: 1 minuto después de la falla
- 2do reintento: 5 minutos después del 1er reintento
- 3er reintento: 30 minutos después del 2do reintento
- Reintento final: 2 horas después del 3er reintento
Después de que todos los reintentos fallen, el webhook se registra como fallido.
Códigos de Estado
| Código | Comportamiento de GitScrum |
|---|---|
| 200-299 | Éxito, sin reintento |
| 301-399 | Sigue redirección una vez |
| 400-499 | Falla, sin reintento (error del cliente) |
| 500-599 | Falla, reintentará |
| Timeout | Falla, reintentará |
Seguridad
Seguridad del Endpoint
HTTPS recomendado: Siempre usa endpoints HTTPS en producción.
Lista blanca de IPs: Los webhooks de GitScrum originan de rangos de IP documentados. Contacta soporte para la lista actual.
Verificación de firma: Próxima función—firmará payloads para verificación.
Asegurar Tu Endpoint
- Tokens secretos: Añade parámetro de consulta o encabezado para verificación
`` https://tusitio.com/webhooks?token=secreto123 ``
- Restricción de IP: Solo aceptar de IPs de GitScrum
- Limitación de velocidad: Proteger contra ataques de repetición
- Validación de entrada: Siempre validar la estructura del payload
Integraciones Comunes
Webhook Entrante de Slack
- Crea Webhook Entrante en Slack
- Copia la URL del webhook
- Pega como endpoint para los eventos deseados
Nota: La integración nativa de Slack proporciona formato más rico.
Webhook de Discord
- Crea webhook en configuración del canal de Discord
- Usa la URL del webhook directamente
- Discord acepta payloads JSON estándar
Servidor Personalizado
Ejemplo de endpoint en Node.js:
app.post('/webhooks/gitscrum', (req, res) => {
const { event, data } = req.body;
// Procesar según tipo de evento
switch(event) {
case 'task.created':
manejarNuevaTarea(data);
break;
case 'sprint.completed':
manejarSprintCompleto(data);
break;
}
res.status(200).send('OK');
});Solución de Problemas
Los Webhooks No Se Disparan
Lista de verificación:
- ¿La URL del endpoint está guardada (no vacía)?
- ¿La URL es alcanzable desde internet público?
- ¿El endpoint retorna estado 2xx?
- Revisar logs del servidor del endpoint
Datos Incorrectos Recibidos
Verificar:
- Tipo de evento correcto configurado
- Estructura del payload coincide con lo esperado
- Sin middleware transformando la solicitud
Eventos Duplicados
Posibles causas:
- Reintento después de timeout (pero el endpoint procesó)
- Múltiples webhooks para el mismo tipo de evento
Solución: Implementar idempotencia usando UUID del evento o timestamp.
Conexión Rechazada
Causas comunes:
- Firewall bloqueando IPs de GitScrum
- Endpoint no escuchando en el puerto especificado
- Problemas de certificado SSL (para HTTPS)
Depuración:
- Probar endpoint desde fuente externa
- Revisar reglas del firewall
- Verificar validez del certificado SSL
Mejores Prácticas
Diseño del Endpoint
Retornar rápidamente: Confirmar recepción, procesar async Manejar fallas graciosamente: No fallar por payloads malformados Registrar todo: Ayuda en depuración y auditoría
Selección de Eventos
Ser específico: Solo suscribirse a eventos que necesitas Evitar redundancia: task.completed incluye info de task.updated Considerar volumen: Proyectos de alta actividad generan muchos eventos
Mantenimiento
Monitorear salud del endpoint: Alertar sobre fallas Probar después de cambios: Re-verificar después de actualizaciones del endpoint Documentar integraciones: Registrar por qué existe cada webhook
Permisos
| Acción | Rol Requerido |
|---|---|
| Ver webhooks | Manager, Agency Owner |
| Configurar endpoints | Manager, Agency Owner |
| Probar webhooks | Manager, Agency Owner |
Los miembros regulares del proyecto no pueden acceder a la configuración de webhooks.
Límites de Velocidad
Los webhooks comparten los límites de velocidad de API del proyecto:
- Estándar: 1000 solicitudes/hora
- Pro: 5000 solicitudes/hora
Los eventos de alto volumen pueden alcanzar límites. Considera agrupar o eventos selectivos.
Los webhooks extienden el alcance de GitScrum a cualquier sistema que pueda recibir solicitudes HTTP. Configura cuidadosamente, prueba exhaustivamente, y construye las integraciones personalizadas que tu flujo de trabajo requiere.