From e278286146265c81ffbdb51dcb7108fbd131556f Mon Sep 17 00:00:00 2001 From: Matthieu Date: Fri, 13 Mar 2026 14:00:17 +0100 Subject: [PATCH] feat : add Gitea frontend service Co-Authored-By: Claude Opus 4.6 --- frontend/services/gitea.ts | 66 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 frontend/services/gitea.ts diff --git a/frontend/services/gitea.ts b/frontend/services/gitea.ts new file mode 100644 index 0000000..bf0a40a --- /dev/null +++ b/frontend/services/gitea.ts @@ -0,0 +1,66 @@ +import type { + GiteaSettings, + GiteaSettingsWrite, + GiteaRepository, + GiteaBranch, + GiteaBranchCreate, + GiteaPullRequest, + GiteaBranchName, + GiteaTestResult, +} from './dto/gitea' +import type { HydraCollection } from '~/utils/api' +import { extractHydraMembers } from '~/utils/api' + +export function useGiteaService() { + const api = useApi() + + async function getSettings(): Promise { + return api.get('/settings/gitea') + } + + async function saveSettings(payload: GiteaSettingsWrite): Promise { + return api.put('/settings/gitea', payload as Record, { + toastSuccessKey: 'gitea.settings.saved', + }) + } + + async function testConnection(): Promise { + return api.post('/settings/gitea/test') + } + + async function listRepositories(): Promise { + const data = await api.get>('/gitea/repositories') + return extractHydraMembers(data) + } + + async function listBranches(taskId: number): Promise { + const data = await api.get>(`/tasks/${taskId}/gitea/branches`) + return extractHydraMembers(data) + } + + async function createBranch(taskId: number, payload: GiteaBranchCreate): Promise { + return api.post(`/tasks/${taskId}/gitea/branches`, payload as Record, { + toastSuccessKey: 'gitea.branch.created', + }) + } + + async function listPullRequests(taskId: number): Promise { + const data = await api.get>(`/tasks/${taskId}/gitea/pull-requests`) + return extractHydraMembers(data) + } + + async function getBranchName(taskId: number, type: string): Promise { + return api.get(`/tasks/${taskId}/gitea/branch-name/${type}`) + } + + return { + getSettings, + saveSettings, + testConnection, + listRepositories, + listBranches, + createBranch, + listPullRequests, + getBranchName, + } +}