diff --git a/src/observability-repo-manager.ts b/src/observability-repo-manager.ts index a016c6a..30db1a0 100644 --- a/src/observability-repo-manager.ts +++ b/src/observability-repo-manager.ts @@ -143,7 +143,22 @@ export class ObservabilityRepoManager { if (error instanceof GitbeakerRequestError && error.cause?.response.status === 404) { console.log('Le fichier n\'existe pas') // Si le fichier n'existe pas, création - await this.gitlabApi.RepositoryFiles.create(project.id, filePath, branch, encodedContent, commitMessage) + try { + await this.gitlabApi.RepositoryFiles.create(project.id, filePath, branch, encodedContent, commitMessage) + } catch (createError) { + if (createError instanceof GitbeakerRequestError && createError.cause?.response.status === 400) { + // Create a commit for the new file + await this.gitlabApi.Commits.create(project.id, branch, commitMessage, [ + { + action: 'create', + filePath, + content: encodedContent, + }, + ]) + } else { + throw createError + } + } console.log(`Fichier YAML créé et poussé: ${filePath}`) return }