8
8
"fmt"
9
9
"log"
10
10
11
+ "code.gitea.io/sdk/gitea"
12
+
11
13
"github.com/urfave/cli"
12
14
)
13
15
@@ -17,6 +19,9 @@ var CmdReleases = cli.Command{
17
19
Usage : "Log in a Gitea server" ,
18
20
Description : `Log in a Gitea server` ,
19
21
Action : runReleases ,
22
+ Subcommands : []cli.Command {
23
+ CmdReleaseCreate ,
24
+ },
20
25
Flags : []cli.Flag {
21
26
cli.StringFlag {
22
27
Name : "login, l" ,
@@ -51,3 +56,55 @@ func runReleases(ctx *cli.Context) error {
51
56
52
57
return nil
53
58
}
59
+
60
+ var CmdReleaseCreate = cli.Command {
61
+ Name : "create" ,
62
+ Usage : "Create a release in repository" ,
63
+ Description : `Create a release in repository` ,
64
+ Action : runReleaseCreate ,
65
+ Flags : []cli.Flag {
66
+ cli.StringFlag {
67
+ Name : "tag" ,
68
+ Usage : "release tag name" ,
69
+ },
70
+ cli.StringFlag {
71
+ Name : "target" ,
72
+ Usage : "release target refs, branch name or commit id" ,
73
+ },
74
+ cli.StringFlag {
75
+ Name : "title, t" ,
76
+ Usage : "release title to create" ,
77
+ },
78
+ cli.StringFlag {
79
+ Name : "note, n" ,
80
+ Usage : "release note to create" ,
81
+ },
82
+ cli.BoolFlag {
83
+ Name : "draft, d" ,
84
+ Usage : "the release is a draft" ,
85
+ },
86
+ cli.BoolFlag {
87
+ Name : "prerelease, p" ,
88
+ Usage : "the release is a prerelease" ,
89
+ },
90
+ },
91
+ }
92
+
93
+ func runReleaseCreate (ctx * cli.Context ) error {
94
+ login , owner , repo := initCommand (ctx )
95
+
96
+ _ , err := login .Client ().CreateRelease (owner , repo , gitea.CreateReleaseOption {
97
+ TagName : ctx .String ("tag" ),
98
+ Target : ctx .String ("target" ),
99
+ Title : ctx .String ("title" ),
100
+ Note : ctx .String ("note" ),
101
+ IsDraft : ctx .Bool ("draft" ),
102
+ IsPrerelease : ctx .Bool ("prerelease" ),
103
+ })
104
+
105
+ if err != nil {
106
+ log .Fatal (err )
107
+ }
108
+
109
+ return nil
110
+ }
0 commit comments