This commit is contained in:
Joachim Happel 2025-03-10 18:06:17 +01:00
commit b5079bdfda
9 changed files with 1964 additions and 0 deletions

128
README.md Normal file
View file

@ -0,0 +1,128 @@
# Forgejo Issues zu Markdown Export - Anleitung
Diese Anleitung erklärt, wie du den Forgejo-to-Markdown Exporter einrichten und verwenden kannst, um Issues in Markdown-Dateien zu exportieren und sie für Knowledge-Management-Tools wie MSTY zu nutzen.
## Überblick
Der Exporter bietet folgende Funktionen:
- Export aller Issues eines Repositories oder einer Organisation in Markdown-Dateien
- Inkrementelle Updates (nur geänderte Issues werden aktualisiert)
- Einbeziehung von Kommentaren und Metadaten
- Formatierung als strukturierte Markdown-Dokumente
- Erstellung einer Indexdatei für den einfachen Zugriff
## Installation
### Voraussetzungen
- Python 3.11 oder höher
- Internetverbindung zum Forgejo-Server
- Berechtigungen zum Lesen der Forgejo-Issues
### Einrichtung
1. Speichere das Skript
Am besten installierst du den Exporter über den befehl `git clone https://git.rpi-virtuell.de/joachim-happel/git_issue_importer.git` danach wechselst eu in das Verzeichnis mit `cd git_issue_importer`
2. Kopiere die Datei .env.template nach .env und setze die URl zu deiner forgejo Instanz:
```text
FORGEJO_URL = "https://git.rpi-virtuell.de"
FORGEJO_TOKEN = "dein-token"
```
den Token kannst du unter https://git.rpi-virtuell.de/user/settings/applications generieren
3. Installiere die erforderlichen Abhängigkeiten:
```bash
pip install requests python-dotenv
```
## Verwendung
### Grundlegende Verwendung
Führe das Skript mit den erforderlichen Parametern aus:
```bash
python forgejo_exporter.py --owner "Comenius-Institut" --repo "FOERBICO" --output "./forgejo_issues"
```
### Alle verfügbaren Parameter
```
--owner : Repository-Besitzer (Benutzer oder Organisation) [erforderlich]
--repo : Repository-Name oder 'all' für alle Repositories [erforderlich]
--output : Ausgabeordner für Markdown-Dateien [Standard: ./forgejo_issues]
--comments : Kommentare einbeziehen [optional Flag]
--closed : Geschlossene Issues einbeziehen [optional Flag]
```
### Beispiele
**Export eines einzelnen Repositories mit Kommentaren:**
```bash
python forgejo_exporter.py --owner "Comenius-Institut" --repo "FOERBICO" --output "./forgejo_issues" --comments
```
**Export aller Repositories einer Organisation inkl. geschlossener Issues:**
```bash
python forgejo_exporter.py --owner "Comenius-Institut" --repo "all" --output "./forgejo_issues" --closed
```
**Export mit allen Optionen:**
```bash
python forgejo_exporter.py --owner "Comenius-Institut" --repo "FOERBICO" --output "./forgejo_issues" --comments --closed
```
## Automatisierung
Um die Aktualisierung zu automatisieren, kannst du das bereitgestellte Bash-Skript verwenden:
1. Speichere das Bash-Skript als `update_forgejo.sh`
2. Mache es ausführbar: `chmod +x update_forgejo.sh`
3. Passe die Einstellungen im Skript an (Repository-Besitzer, Repository-Name)
4. Führe es manuell aus oder richte einen Cron-Job ein
### Einrichtung eines Cron-Jobs für regelmäßige Updates
Öffne die Crontab-Konfiguration:
```bash
crontab -e
```
Füge eine Zeile für tägliche Aktualisierungen hinzu:
```
# Aktualisiere Forgejo-Issues jeden Tag um 3:00 Uhr
0 3 * * * /pfad/zu/update_forgejo.sh
```
## Ausgabestruktur
Nach der Ausführung des Skripts enthält der Ausgabeordner folgende Dateien:
- `index.md`: Eine Übersicht aller Issues, gruppiert nach Repository
- `_metadata.json`: Metadaten für inkrementelle Updates (nicht löschen!)
- Einzelne Markdown-Dateien für jedes Issue, mit dem Namensformat:
`{repository_owner}_{repository_name}__issue_{number}_{title}.md`
### Struktur einer Issue-Datei
Jede generierte Markdown-Datei enthält:
1. **Titel und Issue-ID**
2. **Metadaten** (Repository, Autor, Status, Daten, URL)
3. **Labels** (falls vorhanden)
4. **Milestone** (falls vorhanden)
5. **Beschreibung** des Issues
6. **Kommentare** (wenn mit `--comments` aktiviert)
## Integration mit Knowledge-Management-Tools
### Verwendung mit MSTY
1. Wähle den Ausgabeordner als Knowledge Stack in MSTY
2. Klicke auf Compose (kann einige Minuten dauern)
3. Führe das Update-Skript und Compose regelmäßig aus, um die Wissensdatenbank aktuell zu halten