48 lines
1.5 KiB
Go
Vendored
48 lines
1.5 KiB
Go
Vendored
// Copyright 2019 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package gitea
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// Tag represents a repository tag
|
|
type Tag struct {
|
|
Name string `json:"name"`
|
|
ID string `json:"id"`
|
|
Commit *CommitMeta `json:"commit"`
|
|
ZipballURL string `json:"zipball_url"`
|
|
TarballURL string `json:"tarball_url"`
|
|
}
|
|
|
|
// ListRepoTagsOptions options for listing a repository's tags
|
|
type ListRepoTagsOptions struct {
|
|
ListOptions
|
|
}
|
|
|
|
// ListRepoTags list all the branches of one repository
|
|
func (c *Client) ListRepoTags(user, repo string, opt ListRepoTagsOptions) ([]*Tag, *Response, error) {
|
|
if err := escapeValidatePathSegments(&user, &repo); err != nil {
|
|
return nil, nil, err
|
|
}
|
|
opt.setDefaults()
|
|
tags := make([]*Tag, 0, opt.PageSize)
|
|
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/tags?%s", user, repo, opt.getURLQuery().Encode()), nil, nil, &tags)
|
|
return tags, resp, err
|
|
}
|
|
|
|
// DeleteTag deletes a tag from a repository, if no release refers to it
|
|
func (c *Client) DeleteTag(user, repo string, tag string) (*Response, error) {
|
|
if err := escapeValidatePathSegments(&user, &repo, &tag); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := c.checkServerVersionGreaterThanOrEqual(version1_14_0); err != nil {
|
|
return nil, err
|
|
}
|
|
_, resp, err := c.getResponse("DELETE",
|
|
fmt.Sprintf("/repos/%s/%s/tags/%s", user, repo, tag),
|
|
nil, nil)
|
|
return resp, err
|
|
}
|