refactor: remove features beyond the UX plan

Drop additions that the UX plan does not ask for:

- the interactive label edit form; label edit now requires a flag
- label clone and the skip mode of label creation it needed
- repo rename rewriting the Git remote or tea.repository; it now
  warns that the remote still points to the old name
- the extra "source" remote on clones of pull mirrors
- run artifact download, which duplicates run download --zip
- 256-color and 24-bit label swatches; colors stay ANSI 16
- config list --show-source (config get keeps it)
- the membership and access GETs before team member/repo add and
  remove; Gitea's PUT and DELETE are idempotent

label edit/delete keep --by-name: it is the only way to address a
label whose name is a number that is also another label's ID.

Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
bircni committed 2026-10-12 10:36:50 +02:00
1 parent 2ec16292f5
commit ea13c9e4f5
22 files changed
+69 -560

No files matched your search

+2 -53
View File
@@ -25,10 +25,8 @@ import (
func (a *application) artifactCommand() *cobra.Command {
group := &cobra.Command{
Use: "artifact",
Short: "List and download the artifacts of runs",
Long: `List the artifacts that a run uploaded and download one as a ZIP archive.
To download and extract the artifacts of a run by name, use tea run download.`,
Short: "List the artifacts of runs",
Long: "List the artifacts that a run uploaded. To download them, use tea run download.",
}
var limit, page int
list := &cobra.Command{
@@ -55,55 +53,6 @@ $ tea run artifact list 34`,
list.ValidArgsFunction = a.completeRunArg()
group.AddCommand(list)
var destination downloadFlags
download := &cobra.Command{
Use: "download <artifact-id>",
Short: "Download an artifact as a ZIP archive",
Long: "Download an artifact as a ZIP archive without extracting it, named after the artifact by default.",
Example: `# download artifact 7 to <name>.zip
$ tea run artifact download 7
# write it to standard output
$ tea run artifact download 7 --output - > build.zip`,
Annotations: textOutput("artifact downloads are binary"),
Args: argsExact(1),
RunE: func(cmd *cobra.Command, args []string) error {
id, err := number(args[0])
if err != nil {
return err
}
t, err := a.resolve(cmd.Context(), true)
if err != nil {
return err
}
service := services.Actions{Client: t.client, Repository: t.Repo}
name := ""
if destination.output == "" || isDirectory(destination.output) {
artifact, err := service.Artifact(cmd.Context(), id)
if err != nil {
return err
}
name = artifact.Name + ".zip"
}
path, skip, err := destination.destination(name)
if err != nil || skip {
return err
}
body, err := service.DownloadArtifact(cmd.Context(), id)
if err != nil {
return err
}
defer body.Close()
if err := a.download(cmd, destination, path, body); err != nil {
return err
}
if path != "-" {
a.done(cmd, "Downloaded artifact %d to %s", id, path)
}
return nil
},
}
destination.register(download)
group.AddCommand(download)
return group
}