feat: use default issue template when not available
This commit is contained in:
@ -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
|
||||
|
11
internal/core/service/issue_default_template.txt
Normal file
11
internal/core/service/issue_default_template.txt
Normal 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.
|
@ -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
|
||||
}{
|
||||
|
Reference in New Issue
Block a user