feat: overwrite project issue template

This commit is contained in:
2025-02-27 22:20:40 +01:00
parent 08cdb44490
commit 406aa46a5a
7 changed files with 112 additions and 27 deletions

View File

@ -85,8 +85,13 @@ func (m *IssueManager) GetUserProjects(ctx context.Context, user *model.User) ([
return projects, nil
}
func (m *IssueManager) GenerateIssue(ctx context.Context, user *model.User, projectID string, issueSummary string) (string, string, string, error) {
systemPrompt, err := m.getIssueSystemPrompt(ctx, user, projectID)
type GeneratIssueOptions struct {
IssueSummary string
IssueTemplate string
}
func (m *IssueManager) GenerateIssue(ctx context.Context, user *model.User, projectID string, issueSummary string, overwrittenIssueTemplate string) (string, string, string, error) {
systemPrompt, err := m.getIssueSystemPrompt(ctx, user, projectID, overwrittenIssueTemplate)
if err != nil {
return "", "", "", errors.WithStack(err)
}
@ -135,15 +140,19 @@ func (m *IssueManager) GenerateIssue(ctx context.Context, user *model.User, proj
return title, body, tips, nil
}
func (m *IssueManager) getIssueSystemPrompt(ctx context.Context, user *model.User, projectID string) (string, error) {
forge, err := m.getUserForge(ctx, user)
if err != nil {
return "", errors.WithStack(err)
}
func (m *IssueManager) getIssueSystemPrompt(ctx context.Context, user *model.User, projectID string, issueTemplate string) (string, error) {
if issueTemplate == "" {
forge, err := m.getUserForge(ctx, user)
if err != nil {
return "", errors.WithStack(err)
}
issueTemplate, err := forge.GetIssueTemplate(ctx, projectID)
if err != nil && !errors.Is(err, port.ErrFileNotFound) {
return "", errors.WithStack(err)
repoIssueTemplate, err := forge.GetIssueTemplate(ctx, projectID)
if err != nil && !errors.Is(err, port.ErrFileNotFound) {
return "", errors.WithStack(err)
}
issueTemplate = repoIssueTemplate
}
if issueTemplate == "" {