@@ -30,6 +30,12 @@ type Gitter interface {
3030 GetBuild (repo string ) string
3131 // FetchTags calls "git fetch --tags"
3232 FetchTags (repo string ) error
33+ // CreateTag creates a new lightweight tag. Does nothing if tag is empty.
34+ CreateTag (repo , tag string ) error
35+ // DeleteTag deletes the given tag. Does nothing if tag is empty.
36+ DeleteTag (repo , tag string ) (err error )
37+ // PushTag pushes the given tag to the origin. Does nothing if tag is empty.
38+ PushTag (repo , tag string ) (err error )
3339}
3440
3541type DefaultGitter string
@@ -47,12 +53,6 @@ var ErrNotDirectory = errors.New("not a directory")
4753// Returns nil if it is, else an error.
4854func checkDir (dir string ) (err error ) {
4955 _ , err = os .ReadDir (dir )
50- /*var fi os.FileInfo
51- if fi, err = os.Stat(dir); err == nil {
52- if !fi.IsDir() {
53- err = ErrNotDirectory
54- }
55- }*/
5656 return
5757}
5858
@@ -174,3 +174,24 @@ func (dg DefaultGitter) FetchTags(repo string) (err error) {
174174 err = exec .Command (string (dg ), "-C" , repo , "fetch" , "--tags" ).Run () /* #nosec G204 */
175175 return
176176}
177+
178+ func (dg DefaultGitter ) CreateTag (repo , tag string ) (err error ) {
179+ if tag != "" {
180+ err = exec .Command (string (dg ), "-C" , repo , "tag" , tag ).Run () /* #nosec G204 */
181+ }
182+ return
183+ }
184+
185+ func (dg DefaultGitter ) DeleteTag (repo , tag string ) (err error ) {
186+ if tag != "" {
187+ err = exec .Command (string (dg ), "-C" , repo , "tag" , "-d" , tag ).Run () /* #nosec G204 */
188+ }
189+ return
190+ }
191+
192+ func (dg DefaultGitter ) PushTag (repo , tag string ) (err error ) {
193+ if tag != "" {
194+ err = exec .Command (string (dg ), "-C" , repo , "push" , "origin" , tag ).Run () /* #nosec G204 */
195+ }
196+ return
197+ }
0 commit comments