Files
gitea/modules/structs/issue_label.go
T
7448b49aac fix(api): adding issue labels by name attaches both the repo and the org label (#39873)
Fixes #39651

When an org-owned repo has a repo label and an org label with the same
name, `POST`/`PUT /repos/{owner}/{repo}/issues/{index}/labels` with
label names attached both of them.

---------

Signed-off-by: Nazem <214302554+nazem-droubi@users.noreply.github.com>
Co-authored-by: Nazem <214302554+nazem-droubi@users.noreply.github.com>
Co-authored-by: silverwind <me@silverwind.io>
2026-10-22 20:54:33 +00:00

76 lines
2.3 KiB
Go

// Copyright 2016 The Gogs Authors. All rights reserved.
// Copyright 2019 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package structs
// Label a label to an issue or a pr
// swagger:model
type Label struct {
// ID is the unique identifier for the label
ID int64 `json:"id"`
// Name is the display name of the label
Name string `json:"name"`
// example: false
Exclusive bool `json:"exclusive"`
// example: false
IsArchived bool `json:"is_archived"`
// example: 00aabb
Color string `json:"color"`
// Description provides additional context about the label's purpose
Description string `json:"description"`
// URL is the API endpoint for accessing this label
URL string `json:"url"`
}
// CreateLabelOption options for creating a label
type CreateLabelOption struct {
// required:true
// Name is the display name for the new label
Name string `json:"name" binding:"Required"`
// example: false
Exclusive bool `json:"exclusive"`
// required:true
// example: #00aabb
Color string `json:"color" binding:"Required"`
// Description provides additional context about the label's purpose
Description string `json:"description"`
// example: false
IsArchived bool `json:"is_archived"`
}
// EditLabelOption options for editing a label
type EditLabelOption struct {
// Name is the new display name for the label
Name *string `json:"name"`
// example: false
Exclusive *bool `json:"exclusive"`
// example: #00aabb
Color *string `json:"color"`
// Description provides additional context about the label's purpose
Description *string `json:"description"`
// example: false
IsArchived *bool `json:"is_archived"`
}
// IssueLabelsOption a collection of labels
type IssueLabelsOption struct {
// Labels can be a list of integers representing label IDs
// or a list of strings representing label names.
// If a repository label and an organization label share a name,
// the repository label is used.
Labels []any `json:"labels"`
}
// LabelTemplate info of a Label template
type LabelTemplate struct {
// Name is the display name of the label template
Name string `json:"name"`
// example: false
Exclusive bool `json:"exclusive"`
// example: 00aabb
Color string `json:"color"`
// Description provides additional context about the label template's purpose
Description string `json:"description"`
}