Übersicht
Der Git-Konnektor bietet die Funktionalität, Dateien aus Git-Repositories abzurufen und im Fess-Index zu registrieren.
Für diese Funktion ist das Plugin fess-ds-git erforderlich.
Unterstützte Repositories
GitHub (öffentlich/privat)
GitLab (öffentlich/privat)
Bitbucket (öffentlich/privat)
Lokale Git-Repositories
Andere Git-Hosting-Dienste
Voraussetzungen
Die Installation des Plugins ist erforderlich
Für private Repositories sind Anmeldedaten erforderlich
Lesezugriff auf das Repository ist erforderlich
Plugin-Installation
Installieren Sie über die Administrationsoberfläche unter „System“ -> „Plugins“.
Oder weitere Details finden Sie unter Plug-ins.
Konfiguration
Konfigurieren Sie über die Administrationsoberfläche unter „Crawler“ -> „Datenspeicher“ -> „Neu erstellen“.
Grundeinstellungen
| Einstellung | Beispielwert |
|---|---|
| Name | Project Git Repository |
| Handler-Name | GitDataStore |
| Aktiviert | Ein |
Parameter-Einstellungen
Beispiel für öffentliches Repository:
Beispiel für privates Repository (mit Authentifizierung):
Parameterliste
Skript-Einstellungen
Verfügbare Felder
| Feld | Beschreibung |
|---|---|
url | URL der Datei |
path | Dateipfad im Repository |
name | Dateiname |
content | Textinhalt der Datei |
contentLength | Länge des Inhalts |
timestamp | Datum der letzten Änderung |
mimetype | MIME-Typ der Datei |
author | Informationen zum letzten Commit-Autor (PersonIdent) |
committer | Committer-Informationen (PersonIdent). Kann sich vom Autor unterscheiden |
uri | Git-Repository-URI |
Git-Repository-Authentifizierung
GitHub Personal Access Token
1. Personal Access Token auf GitHub generieren
Besuchen Sie https://github.com/settings/tokens:
Klicken Sie auf „Generate new token“ -> „Generate new token (classic)“
Geben Sie den Token-Namen ein (z.B.: Fess Crawler)
Aktivieren Sie unter Scopes „repo“
Klicken Sie auf „Generate token“
Kopieren Sie das generierte Token
2. Anmeldedaten in URI einbinden
GitLab Private Token
1. Access Token auf GitLab generieren
Unter GitLab User Settings -> Access Tokens:
Geben Sie den Token-Namen ein
Aktivieren Sie unter Scopes „read_repository“
Klicken Sie auf „Create personal access token“
Kopieren Sie das generierte Token
2. Anmeldedaten in URI einbinden
SSH-Authentifizierung
Bei Verwendung von SSH-Schlüsseln:
Bemerkung
Bei SSH-Authentifizierung müssen die SSH-Schlüssel des Benutzers konfiguriert werden, der Fess ausführt.
Extraktoren konfigurieren
Extraktoren nach MIME-Typ
Mit dem Parameter extractors können Extraktoren nach Dateityp festgelegt werden:
Format: <MIME-Typ-Regex>:<Extraktorname>,
Standard-Extraktoren
textExtractor- Für TextdateientikaExtractor- Für Binärdateien (PDF, Word usw.)
Nur Textdateien crawlen
Alle Dateien crawlen
Nur bestimmte Dateitypen
Differentielles Crawling
Nur Änderungen seit dem letzten Commit crawlen
Nach dem ersten Crawling die prev_commit_id auf die vorherige Commit-ID setzen:
Bemerkung
prev_commit_id wird nach einem erfolgreichen Crawling automatisch auf die neueste Commit-ID aktualisiert. Lassen Sie es beim ersten Crawling leer, um alle Dateien zu verarbeiten; nachfolgende Crawlings verarbeiten nur Änderungen.
Verarbeitung gelöschter Dateien
Wenn base_url gesetzt ist, werden über Git DiffEntry (ChangeType.DELETE) erkannte gelöschte Dateien automatisch aus dem Index entfernt.
Anwendungsbeispiele
GitHub öffentliches Repository
Parameter:
Skript:
GitHub privates Repository
Parameter:
Skript:
GitLab (selbst gehostet)
Parameter:
Skript:
Nur Dokumentation crawlen (Markdown-Dateien)
Parameter:
Skript:
Nur bestimmte Verzeichnisse crawlen
Filterung im Skript:
Fehlerbehebung
Authentifizierungsfehler
Symptom: Authentication failed oder Not authorized
Zu überprüfen:
Überprüfen Sie, ob das Personal Access Token korrekt ist
Überprüfen Sie, ob das Token die entsprechenden Berechtigungen hat (
repo-Scope)Überprüfen Sie, ob das URI-Format korrekt ist:
Überprüfen Sie das Ablaufdatum des Tokens
Repository nicht gefunden
Symptom: Repository not found
Zu überprüfen:
Überprüfen Sie, ob die Repository-URL korrekt ist
Überprüfen Sie, ob das Repository existiert und nicht gelöscht wurde
Überprüfen Sie die Anmeldedaten
Überprüfen Sie, ob Sie Zugriff auf das Repository haben
Keine Dateien abrufbar
Symptom: Crawling erfolgreich, aber 0 Dateien
Zu überprüfen:
Überprüfen Sie die
extractors-EinstellungÜberprüfen Sie, ob Dateien im Repository existieren
Überprüfen Sie die Skript-Einstellungen
Überprüfen Sie, ob Dateien im Zielbranch existieren
MIME-Typ-Fehler
Symptom: Bestimmte Dateien werden nicht gecrawlt
Lösung:
Passen Sie die Extraktor-Einstellungen an:
Große Repositories
Symptom: Crawling dauert lange oder Speicherüberlauf
Lösung:
Mit
extractorsZieldateien einschränkenMit Skript nur bestimmte Verzeichnisse filtern
Differentielles Crawling verwenden (
prev_commit_idsetzen)Crawl-Intervall anpassen
Branch angeben
Um einen anderen Branch als den Standard zu crawlen, geben Sie den Branch-Namen oder Tag über den commit_id Parameter an:
URL-Generierung
base_url-Muster
GitHub:
GitLab:
Bitbucket:
base_url und Dateipfad werden kombiniert, um die URL zu generieren.
URL-Generierung im Skript
Oder benutzerdefinierte URL:
Weiterführende Informationen
Übersicht der Datenspeicher-Konnektoren - Übersicht der Datenspeicher-Konnektoren
Datenbank-Konnektor - Datenbank-Konnektor
Datenspeicher-Crawl - Leitfaden zur Datenspeicher-Konfiguration