Skip to content

Commit 964d81b

Browse files
committed
always use DisplayName
1 parent 77ab786 commit 964d81b

File tree

5 files changed

+39
-28
lines changed

5 files changed

+39
-28
lines changed

modules/label/parser.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,24 @@ func IsErrTemplateLoad(err error) bool {
3030
}
3131

3232
func (err ErrTemplateLoad) Error() string {
33-
return fmt.Sprintf("Failed to load label template file '%s': %v", err.TemplateFile, err.OriginalError)
33+
return fmt.Sprintf("failed to load label template file %q: %v", err.TemplateFile, err.OriginalError)
3434
}
3535

36-
// GetTemplateFile loads the label template file by given name,
36+
// LoadTemplateFile loads the label template file by given file name,
3737
// then parses and returns a list of name-color pairs and optionally description.
38-
func GetTemplateFile(name string) ([]*Label, error) {
39-
data, err := options.Labels(name)
38+
func LoadTemplateFile(fileName string) ([]*Label, error) {
39+
data, err := options.Labels(fileName)
4040
if err != nil {
41-
return nil, ErrTemplateLoad{name, fmt.Errorf("GetTemplateFile: %w", err)}
41+
return nil, ErrTemplateLoad{fileName, fmt.Errorf("LoadTemplateFile: %w", err)}
4242
}
4343

44-
if strings.HasSuffix(name, ".yaml") || strings.HasSuffix(name, ".yml") {
45-
return parseYamlFormat(name, data)
44+
if strings.HasSuffix(fileName, ".yaml") || strings.HasSuffix(fileName, ".yml") {
45+
return parseYamlFormat(fileName, data)
4646
}
47-
return parseLegacyFormat(name, data)
47+
return parseLegacyFormat(fileName, data)
4848
}
4949

50-
func parseYamlFormat(name string, data []byte) ([]*Label, error) {
50+
func parseYamlFormat(fileName string, data []byte) ([]*Label, error) {
5151
lf := &labelFile{}
5252

5353
if err := yaml.Unmarshal(data, lf); err != nil {
@@ -58,19 +58,19 @@ func parseYamlFormat(name string, data []byte) ([]*Label, error) {
5858
for _, l := range lf.Labels {
5959
l.Color = strings.TrimSpace(l.Color)
6060
if len(l.Name) == 0 || len(l.Color) == 0 {
61-
return nil, ErrTemplateLoad{name, errors.New("label name and color are required fields")}
61+
return nil, ErrTemplateLoad{fileName, errors.New("label name and color are required fields")}
6262
}
6363
color, err := NormalizeColor(l.Color)
6464
if err != nil {
65-
return nil, ErrTemplateLoad{name, fmt.Errorf("bad HTML color code '%s' in label: %s", l.Color, l.Name)}
65+
return nil, ErrTemplateLoad{fileName, fmt.Errorf("bad HTML color code '%s' in label: %s", l.Color, l.Name)}
6666
}
6767
l.Color = color
6868
}
6969

7070
return lf.Labels, nil
7171
}
7272

73-
func parseLegacyFormat(name string, data []byte) ([]*Label, error) {
73+
func parseLegacyFormat(fileName string, data []byte) ([]*Label, error) {
7474
lines := strings.Split(string(data), "\n")
7575
list := make([]*Label, 0, len(lines))
7676
for i := 0; i < len(lines); i++ {
@@ -81,18 +81,18 @@ func parseLegacyFormat(name string, data []byte) ([]*Label, error) {
8181

8282
parts, description, _ := strings.Cut(line, ";")
8383

84-
color, name, ok := strings.Cut(parts, " ")
84+
color, labelName, ok := strings.Cut(parts, " ")
8585
if !ok {
86-
return nil, ErrTemplateLoad{name, fmt.Errorf("line is malformed: %s", line)}
86+
return nil, ErrTemplateLoad{fileName, fmt.Errorf("line is malformed: %s", line)}
8787
}
8888

8989
color, err := NormalizeColor(color)
9090
if err != nil {
91-
return nil, ErrTemplateLoad{name, fmt.Errorf("bad HTML color code '%s' in line: %s", color, line)}
91+
return nil, ErrTemplateLoad{fileName, fmt.Errorf("bad HTML color code '%s' in line: %s", color, line)}
9292
}
9393

9494
list = append(list, &Label{
95-
Name: strings.TrimSpace(name),
95+
Name: strings.TrimSpace(labelName),
9696
Color: color,
9797
Description: strings.TrimSpace(description),
9898
})
@@ -101,10 +101,10 @@ func parseLegacyFormat(name string, data []byte) ([]*Label, error) {
101101
return list, nil
102102
}
103103

104-
// LoadFormatted loads the labels' list of a template file as a string separated by comma
105-
func LoadFormatted(name string) (string, error) {
104+
// LoadLabelFileDescription loads the labels' list of a template file as a string separated by comma
105+
func LoadLabelFileDescription(fileName string) (string, error) {
106106
var buf strings.Builder
107-
list, err := GetTemplateFile(name)
107+
list, err := LoadTemplateFile(fileName)
108108
if err != nil {
109109
return "", err
110110
}

modules/repository/create.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
user_model "code.gitea.io/gitea/models/user"
2424
"code.gitea.io/gitea/models/webhook"
2525
"code.gitea.io/gitea/modules/git"
26-
"code.gitea.io/gitea/modules/label"
2726
"code.gitea.io/gitea/modules/log"
2827
"code.gitea.io/gitea/modules/setting"
2928
api "code.gitea.io/gitea/modules/structs"
@@ -190,7 +189,7 @@ func CreateRepository(doer, u *user_model.User, opts CreateRepoOptions) (*repo_m
190189

191190
// Check if label template exist
192191
if len(opts.IssueLabels) > 0 {
193-
if _, err := label.GetTemplateFile(opts.IssueLabels); err != nil {
192+
if _, err := LoadTemplateLabelsByDisplayName(opts.IssueLabels); err != nil {
194193
return nil, err
195194
}
196195
}

modules/repository/init.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ var (
4343
Readmes []string
4444

4545
// LabelTemplateFiles contains the label template files and the list of labels for each file
46-
LabelTemplateFiles []OptionFile
46+
LabelTemplateFiles []OptionFile
47+
labelTemplateFileMap = map[string]string{}
4748
)
4849

4950
type optionFileList struct {
@@ -106,14 +107,16 @@ func LoadRepoConfig() error {
106107
// Load label templates
107108
labelTemplatesFiles := mergeCustomLabels(typeFiles[3])
108109
for _, templateFile := range labelTemplatesFiles {
109-
labels, err := label.LoadFormatted(templateFile)
110+
description, err := label.LoadLabelFileDescription(templateFile)
110111
if err != nil {
111112
return fmt.Errorf("failed to load labels: %w", err)
112113
}
114+
displayName := strings.TrimSuffix(templateFile, filepath.Ext(templateFile))
115+
labelTemplateFileMap[displayName] = templateFile
113116
LabelTemplateFiles = append(LabelTemplateFiles, OptionFile{
114-
DisplayName: strings.TrimSuffix(templateFile, filepath.Ext(templateFile)),
117+
DisplayName: displayName,
115118
FileName: templateFile,
116-
Description: labels,
119+
Description: description,
117120
})
118121
}
119122

@@ -364,7 +367,7 @@ func initRepository(ctx context.Context, repoPath string, u *user_model.User, re
364367

365368
// InitializeLabels adds a label set to a repository using a template
366369
func InitializeLabels(ctx context.Context, id int64, labelTemplate string, isOrg bool) error {
367-
list, err := label.GetTemplateFile(labelTemplate)
370+
list, err := LoadTemplateLabelsByDisplayName(labelTemplate)
368371
if err != nil {
369372
return err
370373
}
@@ -390,3 +393,12 @@ func InitializeLabels(ctx context.Context, id int64, labelTemplate string, isOrg
390393
}
391394
return nil
392395
}
396+
397+
// LoadTemplateLabelsByDisplayName loads a label template by its display name
398+
func LoadTemplateLabelsByDisplayName(name string) ([]*label.Label, error) {
399+
fileName, ok := labelTemplateFileMap[name]
400+
if !ok {
401+
return nil, fmt.Errorf("label template %s not found", name)
402+
}
403+
return label.LoadTemplateFile(fileName)
404+
}

templates/repo/create.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@
118118
<div class="menu">
119119
<div class="item" data-value="">{{.locale.Tr "repo.issue_labels_helper"}}</div>
120120
{{range .LabelTemplateFiles}}
121-
<div class="item" data-value="{{.FileName}}">{{.DisplayName}}<br><i>({{.Description}})</i></div>
121+
<div class="item" data-value="{{.DisplayName}}">{{.DisplayName}}<br><i>({{.Description}})</i></div>
122122
{{end}}
123123
</div>
124124
</div>

templates/repo/issue/labels/label_load_template.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<div class="default text">{{.locale.Tr "repo.issues.label_templates.helper"}}</div>
1212
<div class="menu">
1313
{{range .LabelTemplateFiles}}
14-
<div class="item" data-value="{{.FileName}}">{{.DisplayName}}<br><i>({{.Description}})</i></div>
14+
<div class="item" data-value="{{.DisplayName}}">{{.DisplayName}}<br><i>({{.Description}})</i></div>
1515
{{end}}
1616
</div>
1717
{{svg "octicon-triangle-down" 18 "dropdown icon"}}

0 commit comments

Comments
 (0)