fix: генерить task_tag (UUID) при создании задачи; защита feat/' при пустом tag
This commit is contained in:
@@ -53,5 +53,10 @@ func (w *Worker) git(ctx context.Context, dir string, args ...string) (string, e
|
||||
|
||||
// featureBranchName — имя ветки задачи: feat/<taskTag>.
|
||||
func featureBranchName(taskTag string) string {
|
||||
return "feat/" + taskTag
|
||||
}
|
||||
tag := strings.TrimSpace(taskTag)
|
||||
if tag == "" {
|
||||
// защита от старых задач с пустым task_tag: не даём сломать git (feat/ невалидна)
|
||||
return "feat/main" // коллизия с базовой "main" не страшна: ветка feature-своя есть под этим именем
|
||||
}
|
||||
return "feat/" + tag
|
||||
}
|
||||
|
||||
@@ -415,6 +415,23 @@ func TestWorkerPromptRendered(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestFeatureBranchName(t *testing.T) {
|
||||
cases := []struct {
|
||||
tag string
|
||||
want string
|
||||
}{
|
||||
{"", "feat/main"}, // пустой tag (старая задача) — не "feat/"
|
||||
{" ", "feat/main"}, // только пробелы
|
||||
{"3f2a1b", "feat/3f2a1b"}, // нормальный UUID
|
||||
{" abc ", "feat/abc"}, // тримится
|
||||
}
|
||||
for _, c := range cases {
|
||||
if got := featureBranchName(c.tag); got != c.want {
|
||||
t.Errorf("featureBranchName(%q) = %q, want %q", c.tag, got, c.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateRepoName(t *testing.T) {
|
||||
valid := []string{"calc", "proj-a", "my.repo", "node_2", "kamelion/ratatoskr-go", "a/b/c"}
|
||||
for _, r := range valid {
|
||||
@@ -568,4 +585,4 @@ func TestWorkerSemaphore(t *testing.T) {
|
||||
if len(success) != 2 {
|
||||
t.Errorf("после освобождения слота success = %d, want 2", len(success))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user