feat: use default issue template when not available

This commit is contained in:
2025-02-22 14:21:30 +01:00
parent e6e5c9b04d
commit 7f6dd60b89
5 changed files with 36 additions and 3 deletions

View File

@ -2,10 +2,15 @@ package port
import (
"context"
"errors"
"forge.cadoles.com/wpetit/clearcase/internal/core/model"
)
var (
ErrFileNotFound = errors.New("file not found")
)
type Forge interface {
GetProjects(ctx context.Context) ([]*model.Project, error)
CreateIssue(ctx context.Context, projectID string, title string, content string) error

View File

@ -0,0 +1,11 @@
## Description
> La description du besoin.
## Détails d'implémentation
> Liste des actions à réaliser pour remplir le besoin.
## Tests d'acceptance
> Liste des critères d'acception de réalisation du ticket.

View File

@ -25,6 +25,9 @@ var issueSystemPromptRawTemplate string
//go:embed issue_user_prompt.gotmpl
var issueUserPromptRawTemplate string
//go:embed issue_default_template.txt
var issueDefaultTemplate string
type ForgeFactory interface {
Match(user *model.User) bool
Create(ctx context.Context, user *model.User) (port.Forge, error)
@ -90,10 +93,14 @@ func (m *IssueManager) getIssueSystemPrompt(ctx context.Context, user *model.Use
}
issueTemplate, err := forge.GetIssueTemplate(ctx, projectID)
if err != nil {
if err != nil && !errors.Is(err, port.ErrFileNotFound) {
return "", errors.WithStack(err)
}
if issueTemplate == "" {
issueTemplate = issueDefaultTemplate
}
systemPrompt, err := llm.PromptTemplate(issueSystemPromptRawTemplate, struct {
IssueTemplate string
}{