]> source.dussan.org Git - gitea.git/commitdiff
update code.gitea.io/sdk/gitea v0.13.1 -> v0.13.2 (#14497)
author6543 <6543@obermui.de>
Thu, 28 Jan 2021 15:14:57 +0000 (16:14 +0100)
committerGitHub <noreply@github.com>
Thu, 28 Jan 2021 15:14:57 +0000 (23:14 +0800)
26 files changed:
go.mod
go.sum
vendor/code.gitea.io/sdk/gitea/admin_cron.go
vendor/code.gitea.io/sdk/gitea/client.go
vendor/code.gitea.io/sdk/gitea/go.mod
vendor/code.gitea.io/sdk/gitea/issue.go
vendor/code.gitea.io/sdk/gitea/issue_comment.go
vendor/code.gitea.io/sdk/gitea/issue_label.go
vendor/code.gitea.io/sdk/gitea/issue_reaction.go
vendor/code.gitea.io/sdk/gitea/issue_subscription.go
vendor/code.gitea.io/sdk/gitea/issue_tracked_time.go
vendor/code.gitea.io/sdk/gitea/notifications.go
vendor/code.gitea.io/sdk/gitea/oauth2.go
vendor/code.gitea.io/sdk/gitea/pull.go
vendor/code.gitea.io/sdk/gitea/pull_review.go
vendor/code.gitea.io/sdk/gitea/release.go
vendor/code.gitea.io/sdk/gitea/repo.go
vendor/code.gitea.io/sdk/gitea/repo_branch.go
vendor/code.gitea.io/sdk/gitea/repo_branch_protection.go
vendor/code.gitea.io/sdk/gitea/repo_commit.go
vendor/code.gitea.io/sdk/gitea/repo_file.go
vendor/code.gitea.io/sdk/gitea/repo_migrate.go
vendor/code.gitea.io/sdk/gitea/repo_transfer.go
vendor/code.gitea.io/sdk/gitea/settings.go
vendor/code.gitea.io/sdk/gitea/version.go
vendor/modules.txt

diff --git a/go.mod b/go.mod
index 87f82c0e62e8c20ee6a5ef83f34e52824ff2976c..08dfe1ae5ce491b3c4c31ab39bb2cb4017311eed 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -4,7 +4,7 @@ go 1.14
 
 require (
        code.gitea.io/gitea-vet v0.2.1
-       code.gitea.io/sdk/gitea v0.13.1
+       code.gitea.io/sdk/gitea v0.13.2
        gitea.com/lunny/levelqueue v0.3.0
        gitea.com/macaron/binding v0.0.0-20190822013154-a5f53841ed2b
        gitea.com/macaron/cache v0.0.0-20190822004001-a6e7fee4ee76
diff --git a/go.sum b/go.sum
index 04a652f2a885ba95de23c691715e5cd535b33a98..e674b9e231c8cded87de18dc42000a2115212cf5 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -15,8 +15,8 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k
 cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
 code.gitea.io/gitea-vet v0.2.1 h1:b30by7+3SkmiftK0RjuXqFvZg2q4p68uoPGuxhzBN0s=
 code.gitea.io/gitea-vet v0.2.1/go.mod h1:zcNbT/aJEmivCAhfmkHOlT645KNOf9W2KnkLgFjGGfE=
-code.gitea.io/sdk/gitea v0.13.1 h1:Y7bpH2iO6Q0KhhMJfjP/LZ0AmiYITeRQlCD8b0oYqhk=
-code.gitea.io/sdk/gitea v0.13.1/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY=
+code.gitea.io/sdk/gitea v0.13.2 h1:wAnT/J7Z62q3fJXbgnecoaOBh8CM1Qq0/DakWxiv4yA=
+code.gitea.io/sdk/gitea v0.13.2/go.mod h1:lee2y8LeV3kQb2iK+hHlMqoadL4bp27QOkOV/hawLKg=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 gitea.com/lunny/levelqueue v0.3.0 h1:MHn1GuSZkxvVEDMyAPqlc7A3cOW+q8RcGhRgH/xtm6I=
 gitea.com/lunny/levelqueue v0.3.0/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU=
index 72f77e55ee9b41772c6014facbb35e992951b737..99006b696bf28133595369e691f3d6f2f8012944 100644 (file)
@@ -25,7 +25,7 @@ type ListCronTaskOptions struct {
 
 // ListCronTasks list available cron tasks
 func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                return nil, nil, err
        }
        opt.setDefaults()
@@ -36,7 +36,7 @@ func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response,
 
 // RunCronTasks run a cron task
 func (c *Client) RunCronTasks(task string) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                return nil, err
        }
        _, resp, err := c.getResponse("POST", fmt.Sprintf("/admin/cron/%s", task), jsonHeader, nil)
index ca5ee35334a7f18bc6f0257c5266562210580157..e08bc9edd8467e2204c56c9935d0643473a9a26e 100644 (file)
@@ -56,7 +56,7 @@ func NewClient(url string, options ...func(*Client)) (*Client, error) {
        for _, opt := range options {
                opt(client)
        }
-       if err := client.CheckServerVersionConstraint(">=1.10"); err != nil {
+       if err := client.checkServerVersionGreaterThanOrEqual(version1_10_0); err != nil {
                return nil, err
        }
        return client, nil
index 7b0d75fd34b57633b561ac2a6e8faba38586662b..fe2a46ae0660782295d71a09a556a6f84e1a10a6 100644 (file)
@@ -3,6 +3,6 @@ module code.gitea.io/sdk/gitea
 go 1.12
 
 require (
-       github.com/hashicorp/go-version v1.2.0
+       github.com/hashicorp/go-version v1.2.1
        github.com/stretchr/testify v1.4.0
 )
index 1b09b3f796284b926ab02d97b8e814dcdb0ce1a3..7eef44711905f7646ac6acda5faa159862d5bc5f 100644 (file)
@@ -121,7 +121,7 @@ func (c *Client) ListIssues(opt ListIssueOption) ([]*Issue, *Response, error) {
        link, _ := url.Parse("/repos/issues/search")
        link.RawQuery = opt.QueryEncode()
        resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues)
-       if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
+       if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil {
                for i := 0; i < len(issues); i++ {
                        if issues[i].Repository != nil {
                                issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0]
@@ -139,7 +139,7 @@ func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Iss
        link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/issues", owner, repo))
        link.RawQuery = opt.QueryEncode()
        resp, err := c.getParsedResponse("GET", link.String(), jsonHeader, nil, &issues)
-       if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil {
+       if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil {
                for i := 0; i < len(issues); i++ {
                        if issues[i].Repository != nil {
                                issues[i].Repository.Owner = strings.Split(issues[i].Repository.FullName, "/")[0]
@@ -153,7 +153,7 @@ func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Iss
 func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, *Response, error) {
        issue := new(Issue)
        resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index), nil, nil, issue)
-       if e := c.CheckServerVersionConstraint(">=1.12.0"); e != nil && issue.Repository != nil {
+       if e := c.checkServerVersionGreaterThanOrEqual(version1_12_0); e != nil && issue.Repository != nil {
                issue.Repository.Owner = strings.Split(issue.Repository.FullName, "/")[0]
        }
        return issue, resp, err
index 50b3532645bb32f4a2d5149f6999cf91bcdbf679..4eff850d13f98515561c111b1e2e7dcfc40ea11d 100644 (file)
@@ -68,7 +68,7 @@ func (c *Client) ListRepoIssueComments(owner, repo string, opt ListIssueCommentO
 // GetIssueComment get a comment for a given repo by id.
 func (c *Client) GetIssueComment(owner, repo string, id int64) (*Comment, *Response, error) {
        comment := new(Comment)
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return comment, nil, err
        }
        resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/comments/%d", owner, repo, id), nil, nil, &comment)
index 1eb3c744f755b6c8504469a424a9186c2a162fe9..b664dacd1f67c73c38a65294c4fd4ab881e2ed63 100644 (file)
@@ -71,7 +71,7 @@ func (c *Client) CreateLabel(owner, repo string, opt CreateLabelOption) (*Label,
                return nil, nil, err
        }
        if len(opt.Color) == 6 {
-               if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+               if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                        opt.Color = "#" + opt.Color
                }
        }
index a70209a0e3c4d2f7a6fc3aac9a76787410e661ed..4ec203c594222e6b12e3e2982f831212d17f1d28 100644 (file)
@@ -20,7 +20,7 @@ type Reaction struct {
 
 // GetIssueReactions get a list reactions of an issue
 func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        reactions := make([]*Reaction, 0, 10)
@@ -30,7 +30,7 @@ func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction
 
 // GetIssueCommentReactions get a list of reactions from a comment of an issue
 func (c *Client) GetIssueCommentReactions(owner, repo string, commentID int64) ([]*Reaction, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        reactions := make([]*Reaction, 0, 10)
@@ -45,7 +45,7 @@ type editReactionOption struct {
 
 // PostIssueReaction add a reaction to an issue
 func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction string) (*Reaction, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        reactionResponse := new(Reaction)
@@ -61,7 +61,7 @@ func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction str
 
 // DeleteIssueReaction remove a reaction from an issue
 func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction string) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, err
        }
        body, err := json.Marshal(&editReactionOption{Reaction: reaction})
@@ -74,7 +74,7 @@ func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction s
 
 // PostIssueCommentReaction add a reaction to a comment of an issue
 func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Reaction, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        reactionResponse := new(Reaction)
@@ -90,7 +90,7 @@ func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, r
 
 // DeleteIssueCommentReaction remove a reaction from a comment of an issue
 func (c *Client) DeleteIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, err
        }
        body, err := json.Marshal(&editReactionOption{Reaction: reaction})
index 52e67ed44de745cc7540f35745263346e02c0a6b..0af4228c6012a8158228454c16f87c7cce0b3182 100644 (file)
@@ -11,7 +11,7 @@ import (
 
 // GetIssueSubscribers get list of users who subscribed on an issue
 func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        subscribers := make([]*User, 0, 10)
@@ -21,7 +21,7 @@ func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User,
 
 // AddIssueSubscription Subscribe user to issue
 func (c *Client) AddIssueSubscription(owner, repo string, index int64, user string) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, err
        }
        status, resp, err := c.getStatusCode("PUT", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil)
@@ -39,7 +39,7 @@ func (c *Client) AddIssueSubscription(owner, repo string, index int64, user stri
 
 // DeleteIssueSubscription unsubscribe user from issue
 func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user string) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, err
        }
        status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/subscriptions/%s", owner, repo, index, user), nil, nil)
@@ -57,7 +57,7 @@ func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user s
 
 // CheckIssueSubscription check if current user is subscribed to an issue
 func (c *Client) CheckIssueSubscription(owner, repo string, index int64) (*WatchInfo, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        wi := new(WatchInfo)
index 481c831d7bc49a7e7957c6d36579277448227e28..9a9922e665095f241cf60a0a972cb8ffb90ec84a 100644 (file)
@@ -27,7 +27,7 @@ type TrackedTime struct {
 
 // GetUserTrackedTimes list tracked times of a user
 func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        times := make([]*TrackedTime, 0, 10)
@@ -37,7 +37,7 @@ func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime,
 
 // GetRepoTrackedTimes list tracked times of a repository
 func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        times := make([]*TrackedTime, 0, 10)
@@ -47,7 +47,7 @@ func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, *Respo
 
 // GetMyTrackedTimes list tracked times of the current user
 func (c *Client) GetMyTrackedTimes() ([]*TrackedTime, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        times := make([]*TrackedTime, 0, 10)
@@ -75,7 +75,7 @@ func (opt AddTimeOption) Validate() error {
 
 // AddTime adds time to issue with the given index
 func (c *Client) AddTime(owner, repo string, index int64, opt AddTimeOption) (*TrackedTime, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        if err := opt.Validate(); err != nil {
@@ -99,7 +99,7 @@ type ListTrackedTimesOptions struct {
 
 // ListTrackedTimes list tracked times of a single issue for a given repository
 func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, nil, err
        }
        opt.setDefaults()
@@ -110,7 +110,7 @@ func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrack
 
 // ResetIssueTime reset tracked time of a single issue for a given repository
 func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, err
        }
        _, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times", owner, repo, index), nil, nil)
@@ -119,7 +119,7 @@ func (c *Client) ResetIssueTime(owner, repo string, index int64) (*Response, err
 
 // DeleteTime delete a specific tracked time by id of a single issue for a given repository
 func (c *Client) DeleteTime(owner, repo string, index, timeID int64) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.11.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil {
                return nil, err
        }
        _, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/times/%d", owner, repo, index, timeID), nil, nil)
index 515a0d4a712804b6c7b2adfbf9149f109c7d8504..30b6b6d01c62daa63758f1a623253702008cf627 100644 (file)
@@ -8,6 +8,12 @@ import (
        "fmt"
        "net/url"
        "time"
+
+       "github.com/hashicorp/go-version"
+)
+
+var (
+       version1_12_3, _ = version.NewVersion("1.12.3")
 )
 
 // NotificationThread expose Notification on API
@@ -75,7 +81,7 @@ func (opt *ListNotificationOptions) QueryEncode() string {
 // Validate the CreateUserOption struct
 func (opt ListNotificationOptions) Validate(c *Client) error {
        if len(opt.Status) != 0 {
-               return c.CheckServerVersionConstraint(">=1.12.3")
+               return c.checkServerVersionGreaterThanOrEqual(version1_12_3)
        }
        return nil
 }
@@ -98,14 +104,14 @@ func (opt *MarkNotificationOptions) QueryEncode() string {
 // Validate the CreateUserOption struct
 func (opt MarkNotificationOptions) Validate(c *Client) error {
        if len(opt.Status) != 0 || len(opt.ToStatus) != 0 {
-               return c.CheckServerVersionConstraint(">=1.12.3")
+               return c.checkServerVersionGreaterThanOrEqual(version1_12_3)
        }
        return nil
 }
 
 // CheckNotifications list users's notification threads
 func (c *Client) CheckNotifications() (int64, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return 0, nil, err
        }
        new := struct {
@@ -118,7 +124,7 @@ func (c *Client) CheckNotifications() (int64, *Response, error) {
 
 // GetNotification get notification thread by ID
 func (c *Client) GetNotification(id int64) (*NotificationThread, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        thread := new(NotificationThread)
@@ -129,7 +135,7 @@ func (c *Client) GetNotification(id int64) (*NotificationThread, *Response, erro
 // ReadNotification mark notification thread as read by ID
 // It optionally takes a second argument if status has to be set other than 'read'
 func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, err
        }
        link := fmt.Sprintf("/notifications/threads/%d", id)
@@ -142,7 +148,7 @@ func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*Response,
 
 // ListNotifications list users's notification threads
 func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*NotificationThread, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        if err := opt.Validate(c); err != nil {
@@ -157,7 +163,7 @@ func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*Notification
 
 // ReadNotifications mark notification threads as read
 func (c *Client) ReadNotifications(opt MarkNotificationOptions) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, err
        }
        if err := opt.Validate(c); err != nil {
@@ -171,7 +177,7 @@ func (c *Client) ReadNotifications(opt MarkNotificationOptions) (*Response, erro
 
 // ListRepoNotifications list users's notification threads on a specific repo
 func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificationOptions) ([]*NotificationThread, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        if err := opt.Validate(c); err != nil {
@@ -186,7 +192,7 @@ func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificat
 
 // ReadRepoNotifications mark notification threads as read on a specific repo
 func (c *Client) ReadRepoNotifications(owner, reponame string, opt MarkNotificationOptions) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, err
        }
        if err := opt.Validate(c); err != nil {
index 80b1547405480178e75350f60a266c3c166f3c33..bbdfdafb671bebe338c80dfde624931f075d52e8 100644 (file)
@@ -34,7 +34,7 @@ type CreateOauth2Option struct {
 
 // CreateOauth2 create an Oauth2 Application and returns a completed Oauth2 object.
 func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        body, err := json.Marshal(&opt)
@@ -48,7 +48,7 @@ func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, *Response, error
 
 // UpdateOauth2 a specific Oauth2 Application by ID and return a completed Oauth2 object.
 func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        body, err := json.Marshal(&opt)
@@ -62,7 +62,7 @@ func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2,
 
 // GetOauth2 a specific Oauth2 Application by ID.
 func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        oauth2s := &Oauth2{}
@@ -72,7 +72,7 @@ func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, *Response, error) {
 
 // ListOauth2 all of your Oauth2 Applications.
 func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        opt.setDefaults()
@@ -83,7 +83,7 @@ func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, *Response, error)
 
 // DeleteOauth2 delete an Oauth2 application by ID
 func (c *Client) DeleteOauth2(oauth2id int64) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, err
        }
        _, resp, err := c.getResponse("DELETE", fmt.Sprintf("/user/applications/oauth2/%d", oauth2id), nil, nil)
index 24d70e2fafe5dc1e639269b8591305bf419d45d8..c41ab3b01830a7e4830a47df0a9a0c500d9be3b7 100644 (file)
@@ -160,7 +160,7 @@ func (opt EditPullRequestOption) Validate(c *Client) error {
                return fmt.Errorf("title is empty")
        }
        if len(opt.Base) != 0 {
-               if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+               if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                        return fmt.Errorf("can not change base gitea to old")
                }
        }
@@ -229,7 +229,7 @@ func (c *Client) IsPullRequestMerged(owner, repo string, index int64) (bool, *Re
 
 // getPullRequestDiffOrPatch gets the patch or diff file as bytes for a PR
 func (c *Client) getPullRequestDiffOrPatch(owner, repo, kind string, index int64) ([]byte, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                r, _, err2 := c.GetRepo(owner, repo)
                if err2 != nil {
                        return nil, nil, err
index e44dc7df58c93998b5a763855087dd0a46e2cf00..fc0c22c2d71f37789fdf1cc54d6738ce02d31618 100644 (file)
@@ -132,7 +132,7 @@ func (opt CreatePullReviewComment) Validate() error {
 
 // ListPullReviews lists all reviews of a pull request
 func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullReviewsOptions) ([]*PullReview, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        opt.setDefaults()
@@ -147,7 +147,7 @@ func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullRe
 
 // GetPullReview gets a specific review of a pull request
 func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
 
@@ -158,7 +158,7 @@ func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview
 
 // ListPullReviewComments lists all comments of a pull request review
 func (c *Client) ListPullReviewComments(owner, repo string, index, id int64) ([]*PullReviewComment, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        rcl := make([]*PullReviewComment, 0, 4)
@@ -170,7 +170,7 @@ func (c *Client) ListPullReviewComments(owner, repo string, index, id int64) ([]
 
 // DeletePullReview delete a specific review from a pull request
 func (c *Client) DeletePullReview(owner, repo string, index, id int64) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, err
        }
 
@@ -180,7 +180,7 @@ func (c *Client) DeletePullReview(owner, repo string, index, id int64) (*Respons
 
 // CreatePullReview create a review to an pull request
 func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePullReviewOptions) (*PullReview, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        if err := opt.Validate(); err != nil {
@@ -200,7 +200,7 @@ func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePul
 
 // SubmitPullReview submit a pending review to an pull request
 func (c *Client) SubmitPullReview(owner, repo string, index, id int64, opt SubmitPullReviewOptions) (*PullReview, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        if err := opt.Validate(); err != nil {
index 3440f1c61bb66fa0920a8de13ae994fa6ea5a6b1..d8d28c5bd7d5f7723f46a147bf3eb34bdf5fc233 100644 (file)
@@ -57,7 +57,7 @@ func (c *Client) GetRelease(user, repo string, id int64) (*Release, *Response, e
 
 // GetReleaseByTag get a release of a repository by tag
 func (c *Client) GetReleaseByTag(user, repo string, tag string) (*Release, *Response, error) {
-       if c.CheckServerVersionConstraint(">=1.13.0") != nil {
+       if c.checkServerVersionGreaterThanOrEqual(version1_13_0) != nil {
                return c.fallbackGetReleaseByTag(user, repo, tag)
        }
        r := new(Release)
index c43272487359a3b91aff0ddaea08429ee3f83e5f..a09f5a651b14dd24d97a89e22c35d51104b1006d 100644 (file)
@@ -73,6 +73,20 @@ const (
        RepoTypeMirror RepoType = "mirror"
 )
 
+// TrustModel represent how git signatures are handled in a repository
+type TrustModel string
+
+const (
+       // TrustModelDefault use TM set by global config
+       TrustModelDefault TrustModel = "default"
+       // TrustModelCollaborator gpg signature has to be owned by a repo collaborator
+       TrustModelCollaborator TrustModel = "collaborator"
+       // TrustModelCommitter gpg signature has to match committer
+       TrustModelCommitter TrustModel = "committer"
+       // TrustModelCollaboratorCommitter gpg signature has to match committer and owned by a repo collaborator
+       TrustModelCollaboratorCommitter TrustModel = "collaboratorcommitter"
+)
+
 // ListReposOptions options for listing repositories
 type ListReposOptions struct {
        ListOptions
@@ -224,7 +238,7 @@ func (c *Client) SearchRepos(opt SearchRepoOptions) ([]*Repository, *Response, e
        } else {
                link.RawQuery = opt.QueryEncode()
                // IsPrivate only works on gitea >= 1.12.0
-               if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil && opt.IsPrivate != nil {
+               if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil && opt.IsPrivate != nil {
                        if *opt.IsPrivate {
                                // private repos only not supported on gitea <= 1.11.x
                                return nil, nil, err
@@ -249,6 +263,8 @@ type CreateRepoOption struct {
        IssueLabels string `json:"issue_labels"`
        // Whether the repository should be auto-intialized?
        AutoInit bool `json:"auto_init"`
+       // Whether the repository is template
+       Template bool `json:"template"`
        // Gitignores to use
        Gitignores string `json:"gitignores"`
        // License to use
@@ -257,19 +273,35 @@ type CreateRepoOption struct {
        Readme string `json:"readme"`
        // DefaultBranch of the repository (used when initializes and in template)
        DefaultBranch string `json:"default_branch"`
+       // TrustModel of the repository
+       TrustModel TrustModel `json:"trust_model"`
 }
 
 // Validate the CreateRepoOption struct
-func (opt CreateRepoOption) Validate() error {
+func (opt CreateRepoOption) Validate(c *Client) error {
        if len(strings.TrimSpace(opt.Name)) == 0 {
                return fmt.Errorf("name is empty")
        }
+       if len(opt.Name) > 100 {
+               return fmt.Errorf("name has more than 100 chars")
+       }
+       if len(opt.Description) > 255 {
+               return fmt.Errorf("name has more than 255 chars")
+       }
+       if len(opt.DefaultBranch) > 100 {
+               return fmt.Errorf("name has more than 100 chars")
+       }
+       if len(opt.TrustModel) != 0 {
+               if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+                       return err
+               }
+       }
        return nil
 }
 
 // CreateRepo creates a repository for authenticated user.
 func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, *Response, error) {
-       if err := opt.Validate(); err != nil {
+       if err := opt.Validate(c); err != nil {
                return nil, nil, err
        }
        body, err := json.Marshal(&opt)
@@ -283,7 +315,7 @@ func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, *Response, error
 
 // CreateOrgRepo creates an organization repository for authenticated user.
 func (c *Client) CreateOrgRepo(org string, opt CreateRepoOption) (*Repository, *Response, error) {
-       if err := opt.Validate(); err != nil {
+       if err := opt.Validate(c); err != nil {
                return nil, nil, err
        }
        body, err := json.Marshal(&opt)
index 0d6249e7d014baecb1b910191a80bc6fa5e3df23..6b0eec27e98052d2830dc5ddcc29ec12f4de0569 100644 (file)
@@ -84,7 +84,7 @@ func (c *Client) GetRepoBranch(user, repo, branch string) (*Branch, *Response, e
 
 // DeleteRepoBranch delete a branch in a repository
 func (c *Client) DeleteRepoBranch(user, repo, branch string) (bool, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return false, nil, err
        }
        status, resp, err := c.getStatusCode("DELETE", fmt.Sprintf("/repos/%s/%s/branches/%s", user, repo, branch), nil, nil)
@@ -118,7 +118,7 @@ func (opt CreateBranchOption) Validate() error {
 
 // CreateBranch creates a branch for a user's repository
 func (c *Client) CreateBranch(owner, repo string, opt CreateBranchOption) (*Branch, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                return nil, nil, err
        }
        if err := opt.Validate(); err != nil {
index f4d47deda3000d199cfbf2e2ad0be2e3b4b54bd6..1e520807a122824122bc7b4429bc0f58dacb0331 100644 (file)
@@ -92,7 +92,7 @@ type ListBranchProtectionsOptions struct {
 
 // ListBranchProtections list branch protections for a repo
 func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtectionsOptions) ([]*BranchProtection, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        bps := make([]*BranchProtection, 0, opt.PageSize)
@@ -104,7 +104,7 @@ func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtect
 
 // GetBranchProtection gets a branch protection
 func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtection, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        bp := new(BranchProtection)
@@ -114,7 +114,7 @@ func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtectio
 
 // CreateBranchProtection creates a branch protection for a repo
 func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProtectionOption) (*BranchProtection, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        bp := new(BranchProtection)
@@ -128,7 +128,7 @@ func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProt
 
 // EditBranchProtection edits a branch protection for a repo
 func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchProtectionOption) (*BranchProtection, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        bp := new(BranchProtection)
@@ -142,7 +142,7 @@ func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchPr
 
 // DeleteBranchProtection deletes a branch protection for a repo
 func (c *Client) DeleteBranchProtection(owner, repo, name string) (*Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, err
        }
        _, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/branch_protections/%s", owner, repo, name), jsonHeader, nil)
index e17d0030b9dd9454b7833cdac3a6299df7a125f3..4b90b9cb65b4ff4876ab33ece7929693cc59b05a 100644 (file)
@@ -19,8 +19,9 @@ type Identity struct {
 
 // CommitMeta contains meta information of a commit in terms of API.
 type CommitMeta struct {
-       URL string `json:"url"`
-       SHA string `json:"sha"`
+       URL     string    `json:"url"`
+       SHA     string    `json:"sha"`
+       Created time.Time `json:"created"`
 }
 
 // CommitUser contains information of a user in the context of a commit.
index 94f216fdf95603b9a25bd7ce9f64965a4ece0350..b104980a8d287000633a266cd6aff356c959d3e8 100644 (file)
@@ -182,7 +182,7 @@ func (c *Client) DeleteFile(owner, repo, filepath string, opt DeleteFileOptions)
 func (c *Client) setDefaultBranchForOldVersions(owner, repo, branch string) (string, error) {
        if len(branch) == 0 {
                // Gitea >= 1.12.0 Use DefaultBranch on "", mimic this for older versions
-               if c.CheckServerVersionConstraint(">=1.12.0") != nil {
+               if c.checkServerVersionGreaterThanOrEqual(version1_12_0) != nil {
                        r, _, err := c.GetRepo(owner, repo)
                        if err != nil {
                                return "", err
index 583d800d36ff3fe444da2dbc38591f05d644b774..518c6ae649e667ea8a2710556bcca99de2d06b7b 100644 (file)
@@ -20,10 +20,10 @@ const (
        GitServiceGithub GitServiceType = "github"
        // GitServiceGitlab represents a gitlab service
        GitServiceGitlab GitServiceType = "gitlab"
+       // GitServiceGitea represents a gitea service
+       GitServiceGitea GitServiceType = "gitea"
 
        // Not supported jet
-       // // GitServiceGitea represents a gitea service
-       // GitServiceGitea GitServiceType = "gitea"
        // // GitServiceGogs represents a gogs service
        // GitServiceGogs GitServiceType = "gogs"
 )
@@ -51,7 +51,7 @@ type MigrateRepoOption struct {
 }
 
 // Validate the MigrateRepoOption struct
-func (opt *MigrateRepoOption) Validate() error {
+func (opt *MigrateRepoOption) Validate(c *Client) error {
        // check user options
        if len(opt.CloneAddr) == 0 {
                return fmt.Errorf("CloneAddr required")
@@ -69,6 +69,15 @@ func (opt *MigrateRepoOption) Validate() error {
                if len(opt.AuthToken) == 0 {
                        return fmt.Errorf("github require token authentication")
                }
+       case GitServiceGitlab, GitServiceGitea:
+               if len(opt.AuthToken) == 0 {
+                       return fmt.Errorf("%s require token authentication", opt.Service)
+               }
+               // Gitlab is supported since 1.12.0 but api cant handle it until 1.13.0
+               // https://github.com/go-gitea/gitea/pull/12672
+               if c.checkServerVersionGreaterThanOrEqual(version1_13_0) != nil {
+                       return fmt.Errorf("migrate from service %s need gitea >= 1.13.0", opt.Service)
+               }
        }
        return nil
 }
@@ -78,11 +87,11 @@ func (opt *MigrateRepoOption) Validate() error {
 // To migrate a repository for a organization, the authenticated user must be a
 // owner of the specified organization.
 func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, *Response, error) {
-       if err := opt.Validate(); err != nil {
+       if err := opt.Validate(c); err != nil {
                return nil, nil, err
        }
 
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                if len(opt.AuthToken) != 0 {
                        // gitea <= 1.12 dont understand AuthToken
                        opt.AuthUsername = opt.AuthToken
index aedb0e52690dce2da1a888b4d8915e3c03c86043..d8d661bc441d9acf3e064d318d2038ba98080389 100644 (file)
@@ -20,7 +20,7 @@ type TransferRepoOption struct {
 
 // TransferRepo transfers the ownership of a repository
 func (c *Client) TransferRepo(owner, reponame string, opt TransferRepoOption) (*Repository, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.12.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil {
                return nil, nil, err
        }
        body, err := json.Marshal(&opt)
index 9c39e4e215e1dc07ca6d7f8e9408b6c2170da0b8..9fa0a7ae7e95e847fb0f1711a441380b41091539 100644 (file)
@@ -33,7 +33,7 @@ type GlobalAttachmentSettings struct {
 
 // GetGlobalUISettings get global ui settings witch are exposed by API
 func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                return nil, nil, err
        }
        conf := new(GlobalUISettings)
@@ -43,7 +43,7 @@ func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error) {
 
 // GetGlobalRepoSettings get global repository settings witch are exposed by API
 func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                return nil, nil, err
        }
        conf := new(GlobalRepoSettings)
@@ -53,7 +53,7 @@ func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error)
 
 // GetGlobalAPISettings get global api settings witch are exposed by it
 func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                return nil, nil, err
        }
        conf := new(GlobalAPISettings)
@@ -63,7 +63,7 @@ func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error) {
 
 // GetGlobalAttachmentSettings get global repository settings witch are exposed by API
 func (c *Client) GetGlobalAttachmentSettings() (*GlobalAttachmentSettings, *Response, error) {
-       if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
+       if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil {
                return nil, nil, err
        }
        conf := new(GlobalAttachmentSettings)
index 57c64dc4107fec153e27ae76bb166a9226a67a18..747117ccc27230fa93e0cef3e69cbfabe53272fd 100644 (file)
@@ -42,6 +42,32 @@ func (c *Client) CheckServerVersionConstraint(constraint string) error {
        return nil
 }
 
+// predefined versions only have to be parsed by library once
+var (
+       version1_10_0, _ = version.NewVersion("1.10.0")
+       version1_11_0, _ = version.NewVersion("1.11.0")
+       version1_12_0, _ = version.NewVersion("1.12.0")
+       version1_13_0, _ = version.NewVersion("1.13.0")
+)
+
+// checkServerVersionGreaterThanOrEqual is internally used to speed up things and ignore issues with prerelease
+func (c *Client) checkServerVersionGreaterThanOrEqual(v *version.Version) error {
+       c.versionLock.RLock()
+       if c.serverVersion == nil {
+               c.versionLock.RUnlock()
+               if err := c.loadClientServerVersion(); err != nil {
+                       return err
+               }
+       } else {
+               c.versionLock.RUnlock()
+       }
+
+       if !c.serverVersion.GreaterThanOrEqual(v) {
+               return fmt.Errorf("gitea server at %s is older than %s", c.url, v.Original())
+       }
+       return nil
+}
+
 // loadClientServerVersion init the serverVersion variable
 func (c *Client) loadClientServerVersion() error {
        c.versionLock.Lock()
index be206facdac9632fee820f91f2686275a8565fbd..11373e35042096bbc2a5ede0a17f8d1341d7693a 100644 (file)
@@ -4,7 +4,7 @@ cloud.google.com/go/compute/metadata
 ## explicit
 code.gitea.io/gitea-vet
 code.gitea.io/gitea-vet/checks
-# code.gitea.io/sdk/gitea v0.13.1
+# code.gitea.io/sdk/gitea v0.13.2
 ## explicit
 code.gitea.io/sdk/gitea
 # gitea.com/lunny/levelqueue v0.3.0