Dieser Commit ist enthalten in:
Claude Project Manager
2025-12-28 21:36:45 +00:00
Commit ab1e5be9a9
146 geänderte Dateien mit 65525 neuen und 0 gelöschten Zeilen

357
GITEA_IMPLEMENTIERUNGSPLAN.txt Normale Datei
Datei anzeigen

@ -0,0 +1,357 @@
================================================================================
TASKMATE - GITEA-INTEGRATION IMPLEMENTIERUNGSPLAN
================================================================================
Erstellt: 28.12.2025
Status: In Bearbeitung
================================================================================
UEBERSICHT
================================================================================
Neuer "Gitea"-Tab neben Board, Liste, Kalender, Genehmigung fuer die
Git-Repository-Verwaltung pro Projekt.
KERNKONZEPT: Jedes TaskMate-Projekt = Ein Git-Repository
Workflow:
1. Projekt in TaskMate erstellen/auswaehlen
2. Gitea-Repository verknuepfen (bestehend oder neu erstellen)
3. Lokales Verzeichnis angeben (wo Claude Code arbeitet)
4. Git-Operationen ausfuehren (Pull, Push, Commit, etc.)
================================================================================
AKTUELLER STAND (VOR IMPLEMENTIERUNG)
================================================================================
BACKEND - Bereits implementiert (aber NICHT aktiviert!):
[x] backend/services/giteaService.js - Gitea API Integration
[x] backend/services/gitService.js - Lokale Git-Operationen
[x] backend/routes/git.js - 11 Git-Endpoints
[x] backend/routes/applications.js - Projekt-Repository-Verknuepfung
[x] Datenbank-Tabelle "applications" vorhanden
KRITISCHER BUG:
[ ] Routes sind in server.js NICHT registriert - API funktioniert nicht!
FRONTEND - Fehlt komplett:
[ ] Kein Gitea-Tab
[ ] Keine UI fuer Repository-Verwaltung
[ ] Keine Git-Operationen im Frontend
================================================================================
IMPLEMENTIERUNGSSCHRITTE
================================================================================
PHASE 1: BACKEND AKTIVIEREN
--------------------------------------------------------------------------------
Schritt 1.1: Routes in server.js registrieren
Datei: backend/server.js
Imports hinzufuegen:
const gitRoutes = require('./routes/git');
const applicationsRoutes = require('./routes/applications');
const giteaRoutes = require('./routes/gitea');
Routes registrieren:
app.use('/api/git', authenticateToken, csrfProtection, gitRoutes);
app.use('/api/applications', authenticateToken, csrfProtection, applicationsRoutes);
app.use('/api/gitea', authenticateToken, csrfProtection, giteaRoutes);
Status: [ ] Ausstehend
Schritt 1.2: Neue Gitea-Route erstellen
Datei: backend/routes/gitea.js (NEU)
Endpoints:
- GET /api/gitea/test - Verbindung testen
- GET /api/gitea/repositories - Alle Repos auflisten
- POST /api/gitea/repositories - Neues Repo erstellen
- GET /api/gitea/repositories/:owner/:repo - Repo-Details
- GET /api/gitea/repositories/:owner/:repo/branches - Branches
- GET /api/gitea/repositories/:owner/:repo/commits - Commits
Status: [ ] Ausstehend
--------------------------------------------------------------------------------
PHASE 2: FRONTEND API ERWEITERN
--------------------------------------------------------------------------------
Schritt 2.1: API-Client erweitern
Datei: frontend/js/api.js
Neue Methoden:
// Gitea
testGiteaConnection()
getGiteaRepositories()
createGiteaRepository(data)
getGiteaRepository(owner, repo)
getGiteaBranches(owner, repo)
getGiteaCommits(owner, repo, options)
// Applications
getProjectApplication(projectId)
saveProjectApplication(data)
deleteProjectApplication(projectId)
getUserBasePath()
setUserBasePath(basePath)
// Git Operations
cloneRepository(data)
getGitStatus(projectId)
gitPull(projectId, branch)
gitPush(projectId, branch)
gitCommit(projectId, message, stageAll)
getGitCommits(projectId, limit)
getGitBranches(projectId)
gitCheckout(projectId, branch)
gitFetch(projectId)
validatePath(path)
Status: [ ] Ausstehend
--------------------------------------------------------------------------------
PHASE 3: HTML-STRUKTUR
--------------------------------------------------------------------------------
Schritt 3.1: Navigation-Tab hinzufuegen
Datei: frontend/index.html
Nach proposals-Tab einfuegen:
<button class="view-tab" data-view="gitea">Gitea</button>
Status: [ ] Ausstehend
Schritt 3.2: Gitea-View hinzufuegen
Datei: frontend/index.html
Struktur:
<div id="view-gitea" class="view view-gitea hidden">
<!-- Konfiguration (wenn nicht verknuepft) -->
<div id="gitea-config-section">
- Gitea-Verbindungsstatus
- Repository-Dropdown (bestehende auswaehlen)
- "Neues Repository erstellen" Button
- Lokaler Pfad Eingabe
- Standard-Branch
- Speichern Button
</div>
<!-- Hauptansicht (wenn verknuepft) -->
<div id="gitea-main-section">
- Repository-Name und URL
- Aktueller Branch (Dropdown)
- Status-Badge (Clean/Dirty/Ahead/Behind)
- Git-Operationen (Fetch, Pull, Push, Commit)
- Aenderungen-Liste
- Commit-Historie
</div>
<!-- Leer-Zustand -->
<div id="gitea-no-project">
Kein Projekt ausgewaehlt
</div>
</div>
Status: [ ] Ausstehend
Schritt 3.3: Modals hinzufuegen
Datei: frontend/index.html
- #git-commit-modal - Commit-Nachricht eingeben
- #create-repo-modal - Neues Repository erstellen
Status: [ ] Ausstehend
--------------------------------------------------------------------------------
PHASE 4: CSS-STYLES
--------------------------------------------------------------------------------
Schritt 4.1: Gitea-Styles erstellen
Datei: frontend/css/gitea.css (NEU)
Styles fuer:
- .view-gitea - Hauptcontainer
- .gitea-section - Sektionen
- .gitea-connection-status - Verbindungsanzeige
- .gitea-repo-header - Repository-Header
- .gitea-status-panel - Status-Grid
- .status-badge - Clean/Dirty/Ahead Badges
- .gitea-operations-panel - Button-Grid
- .changes-list - Geaenderte Dateien
- .commits-list - Commit-Historie
- .gitea-empty-state - Leer-Zustand
Status: [ ] Ausstehend
Schritt 4.2: CSS in index.html einbinden
<link rel="stylesheet" href="css/gitea.css">
Status: [ ] Ausstehend
--------------------------------------------------------------------------------
PHASE 5: GITEA MANAGER
--------------------------------------------------------------------------------
Schritt 5.1: Gitea Manager erstellen
Datei: frontend/js/gitea.js (NEU)
Klasse GiteaManager:
Properties:
- application (Projekt-Repository-Verknuepfung)
- gitStatus (Aktueller Git-Status)
- branches (Verfuegbare Branches)
- commits (Commit-Historie)
- giteaRepos (Gitea-Repositories)
- giteaConnected (Verbindungsstatus)
Methoden:
- init() - Initialisierung
- bindEvents() - Event-Listener
- subscribeToStore() - Store-Subscriptions
- loadApplication() - Anwendung laden
- loadGitData() - Git-Daten laden
- loadGiteaRepos() - Gitea-Repos laden
- renderConfigurationView() - Konfig-Ansicht
- renderConfiguredView() - Hauptansicht
- renderStatus() - Status rendern
- renderBranches() - Branches rendern
- renderCommits() - Commits rendern
- renderChanges() - Aenderungen rendern
- handleConfigSave() - Konfig speichern
- handleRepoSelect() - Repo auswaehlen
- handleBranchChange() - Branch wechseln
- handleFetch/Pull/Push/Commit() - Git-Ops
- validateLocalPath() - Pfad validieren
- show()/hide() - View-Kontrolle
- startAutoRefresh() - Auto-Refresh
Status: [ ] Ausstehend
--------------------------------------------------------------------------------
PHASE 6: APP-INTEGRATION
--------------------------------------------------------------------------------
Schritt 6.1: Manager in app.js integrieren
Datei: frontend/js/app.js
Import:
import giteaManager from './gitea.js';
In initializeApp():
await giteaManager.init();
In switchView():
if (view === 'gitea') {
giteaManager.show();
} else {
giteaManager.hide();
}
Status: [ ] Ausstehend
--------------------------------------------------------------------------------
PHASE 7: FINALISIERUNG
--------------------------------------------------------------------------------
Schritt 7.1: Service Worker aktualisieren
Datei: frontend/sw.js
- Cache-Version erhoehen
- gitea.js und gitea.css zum Cache hinzufuegen
Status: [ ] Ausstehend
Schritt 7.2: CHANGELOG.txt aktualisieren
Dokumentation der neuen Gitea-Integration
Status: [ ] Ausstehend
Schritt 7.3: Docker-Container neu bauen und testen
docker compose down
docker compose up --build -d
Status: [ ] Ausstehend
================================================================================
UI-MOCKUP: GITEA-TAB
================================================================================
+------------------------------------------------------------------+
| [Board] [Liste] [Kalender] [Genehmigung] [Gitea] |
+------------------------------------------------------------------+
| |
| +------------------------------------------------------------+ |
| | IntelSight/AccountForger-neuerUpload [Edit][X] | |
| | https://gitea-undso.aegis-sight.de/... | |
| +------------------------------------------------------------+ |
| |
| +------------------------------------------------------------+ |
| | Branch: [main v] Status: Clean Aenderungen: 0 | |
| | Letzte Sync: vor 5 Minuten | |
| +------------------------------------------------------------+ |
| |
| +------------------------------------------------------------+ |
| | Git-Operationen | |
| | [Fetch] [Pull] [Push] [Commit] | |
| +------------------------------------------------------------+ |
| |
| +------------------------------------------------------------+ |
| | Letzte Commits | |
| | +--------------------------------------------------------+ | |
| | | [a1b2c3d] Fix: Login-Bug behoben | | |
| | | HG - vor 2 Stunden | | |
| | +--------------------------------------------------------+ | |
| | | [e4f5g6h] Feature: Neue Filteroptionen | | |
| | | MH - vor 1 Tag | | |
| | +--------------------------------------------------------+ | |
| +------------------------------------------------------------+ |
| |
+------------------------------------------------------------------+
================================================================================
KRITISCHE DATEIEN
================================================================================
Datei | Aktion
-------------------------------|------------------------------------------
backend/server.js | Routes registrieren (KRITISCH!)
backend/routes/gitea.js | NEU erstellen
frontend/js/api.js | Erweitern
frontend/js/gitea.js | NEU erstellen
frontend/css/gitea.css | NEU erstellen
frontend/index.html | View + Tab + Modals
frontend/js/app.js | Import + Integration
frontend/sw.js | Cache-Version erhoehen
CHANGELOG.txt | Dokumentieren
================================================================================
IMPLEMENTIERUNGS-REIHENFOLGE (CHECKLISTE)
================================================================================
[ ] 1. Backend: Routes in server.js registrieren
[ ] 2. Backend: gitea.js Route erstellen
[ ] 3. Frontend: api.js erweitern
[ ] 4. Frontend: index.html (View + Tab + Modals)
[ ] 5. Frontend: gitea.css erstellen
[ ] 6. Frontend: gitea.js Manager erstellen
[ ] 7. Frontend: app.js Integration
[ ] 8. Service Worker aktualisieren
[ ] 9. CHANGELOG.txt aktualisieren
[ ] 10. Docker-Container neu bauen und testen
================================================================================
KONFIGURATION (BEREITS VORHANDEN)
================================================================================
.env Datei:
GITEA_URL=https://gitea-undso.aegis-sight.de
GITEA_TOKEN=8d76ec66b3e1f02e9b1e4848d8b15e0cdffe48df
Beispiel-Repository:
Organisation: IntelSight
Name: AccountForger-neuerUpload
================================================================================