Descripcion general
El conector Git proporciona la funcionalidad para obtener archivos de repositorios Git y registrarlos en el indice de Fess.
Esta funcionalidad requiere el plugin fess-ds-git.
Repositorios compatibles
GitHub (publico/privado)
GitLab (publico/privado)
Bitbucket (publico/privado)
Repositorios Git locales
Otros servicios de alojamiento Git
Requisitos previos
Es necesario instalar el plugin
Para repositorios privados, se requieren credenciales de autenticacion
Se necesita acceso de lectura al repositorio
Instalacion del plugin
Instale desde la pantalla de administracion en «Sistema» -> «Plugins».
O consulte Complemento para mas detalles.
Configuracion
Configure desde la pantalla de administracion en «Crawler» -> «Data Store» -> «Crear nuevo».
Configuracion basica
| Campo | Ejemplo |
|---|---|
| Nombre | Project Git Repository |
| Handler | GitDataStore |
| Habilitado | Activado |
Configuracion de parametros
Ejemplo de repositorio publico:
Ejemplo de repositorio privado (con autenticacion):
Lista de parametros
Configuracion de scripts
Campos disponibles
| Campo | Descripcion |
|---|---|
url | URL del archivo |
path | Ruta del archivo en el repositorio |
name | Nombre del archivo |
content | Contenido de texto del archivo |
contentLength | Longitud del contenido |
timestamp | Fecha y hora de ultima modificacion |
mimetype | Tipo MIME del archivo |
author | Informacion del ultimo autor del commit (PersonIdent) |
committer | Informacion del committer (PersonIdent). Puede diferir del autor |
uri | URI del repositorio Git |
Autenticacion en repositorios Git
GitHub Personal Access Token
1. Generar Personal Access Token en GitHub
Acceda a https://github.com/settings/tokens:
Haga clic en «Generate new token» -> «Generate new token (classic)»
Ingrese el nombre del token (ej: Fess Crawler)
Marque «repo» en los scopes
Haga clic en «Generate token»
Copie el token generado
2. Incluir credenciales en la URI
GitLab Private Token
1. Generar Access Token en GitLab
En GitLab User Settings -> Access Tokens:
Ingrese el nombre del token
Marque «read_repository» en los scopes
Haga clic en «Create personal access token»
Copie el token generado
2. Incluir credenciales en la URI
Autenticacion SSH
Al usar claves SSH:
Nota
Al usar autenticacion SSH, es necesario configurar las claves SSH del usuario que ejecuta Fess.
Configuracion de extractores
Extractores por tipo MIME
Especifique extractores por tipo de archivo con el parametro extractors:
Formato: <regex_tipo_MIME>:<nombre_extractor>,
Extractores predeterminados
textExtractor- Para archivos de textotikaExtractor- Para archivos binarios (PDF, Word, etc.)
Solo archivos de texto
Todos los archivos
Solo tipos de archivo especificos
Crawl diferencial
Crawl solo de cambios desde el ultimo commit
Despues del primer crawl, configure prev_commit_id con el ID del commit anterior:
Nota
prev_commit_id se actualiza automaticamente al ultimo ID de commit despues de un crawl exitoso. Dejelo vacio para el crawl inicial para procesar todos los archivos; los crawls posteriores solo procesaran los cambios.
Procesamiento de archivos eliminados
Cuando base_url está configurado, los archivos detectados como eliminados a través de Git DiffEntry (ChangeType.DELETE) se eliminan automáticamente del índice.
Ejemplos de uso
Repositorio publico de GitHub
Parametros:
Script:
Repositorio privado de GitHub
Parametros:
Script:
GitLab (self-hosted)
Parametros:
Script:
Solo documentos (archivos Markdown)
Parametros:
Script:
Solo directorios especificos
Filtrado con script:
Solucion de problemas
Error de autenticacion
Sintoma: Authentication failed o Not authorized
Verificaciones:
Verificar que el Personal Access Token sea correcto
Confirmar que el token tenga los permisos apropiados (scope
repo)Verificar que el formato de la URI sea correcto:
Verificar la fecha de expiracion del token
Repositorio no encontrado
Sintoma: Repository not found
Verificaciones:
Verificar que la URL del repositorio sea correcta
Confirmar que el repositorio existe y no ha sido eliminado
Verificar que las credenciales sean correctas
Confirmar que tiene acceso al repositorio
No se pueden obtener archivos
Sintoma: El crawl tiene exito pero hay 0 archivos
Verificaciones:
Verificar que la configuracion de
extractorssea apropiadaConfirmar que existen archivos en el repositorio
Verificar que la configuracion del script sea correcta
Confirmar que existen archivos en la rama objetivo
Error de tipo MIME
Sintoma: Ciertos archivos no se procesan
Solucion:
Ajustar la configuracion de extractores:
Repositorio grande
Sintoma: El crawl toma mucho tiempo o hay memoria insuficiente
Solucion:
Limitar archivos objetivo con
extractorsFiltrar solo directorios especificos con script
Usar crawl diferencial (configurar
prev_commit_id)Ajustar el intervalo de crawl
Especificacion de rama
Para rastrear una rama diferente a la predeterminada, especifique el nombre de la rama o etiqueta usando el parámetro commit_id:
Generacion de URL
Patrones de configuracion de base_url
GitHub:
GitLab:
Bitbucket:
La URL se genera combinando base_url con la ruta del archivo.
Generacion de URL en script
O con URL personalizada:
Informacion de referencia
Descripcion General de los Conectores de Almacen de Datos - Descripcion general de conectores de Data Store
Conector de Base de Datos - Conector de base de datos
Rastreo de Almacén de Datos - Guia de configuracion de Data Store