Add template support for issue creation (bd-164b)
- Built-in templates: epic, bug, feature (embedded in binary) - Custom templates in .beads/templates/ (override built-ins) - Commands: bd template list/show/create - Flag: bd create --from-template <name> "Title" - Template fields: description, type, priority, labels, design, acceptance - Security: sanitize template names to prevent path traversal - Flag precedence: explicit flags override template defaults - Tests: template loading, security, flag precedence - Docs: commands/template.md and README.md updated Closes bd-164b Amp-Thread-ID: https://ampcode.com/threads/T-118fe54f-b112-4f99-a3d9-b7df53fb7284 Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -34,6 +34,36 @@ func (s *SQLiteStorage) GetReadyWork(ctx context.Context, filter types.WorkFilte
|
||||
args = append(args, *filter.Assignee)
|
||||
}
|
||||
|
||||
// Label filtering (AND semantics)
|
||||
if len(filter.Labels) > 0 {
|
||||
for _, label := range filter.Labels {
|
||||
whereClauses = append(whereClauses, `
|
||||
EXISTS (
|
||||
SELECT 1 FROM labels
|
||||
WHERE issue_id = i.id AND label = ?
|
||||
)
|
||||
`)
|
||||
args = append(args, label)
|
||||
}
|
||||
}
|
||||
|
||||
// Label filtering (OR semantics)
|
||||
if len(filter.LabelsAny) > 0 {
|
||||
placeholders := make([]string, len(filter.LabelsAny))
|
||||
for i := range filter.LabelsAny {
|
||||
placeholders[i] = "?"
|
||||
}
|
||||
whereClauses = append(whereClauses, fmt.Sprintf(`
|
||||
EXISTS (
|
||||
SELECT 1 FROM labels
|
||||
WHERE issue_id = i.id AND label IN (%s)
|
||||
)
|
||||
`, strings.Join(placeholders, ",")))
|
||||
for _, label := range filter.LabelsAny {
|
||||
args = append(args, label)
|
||||
}
|
||||
}
|
||||
|
||||
// Build WHERE clause properly
|
||||
whereSQL := strings.Join(whereClauses, " AND ")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user