From 3fe11aa14151007dc0c2e857d7f9efb3f84aed55 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 8 Nov 2020 23:22:16 +0100 Subject: [PATCH 1/8] add predefined versions & comparsion function --- gitea/version.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gitea/version.go b/gitea/version.go index 57c64dc..bfdf310 100644 --- a/gitea/version.go +++ b/gitea/version.go @@ -42,6 +42,31 @@ func (c *Client) CheckServerVersionConstraint(constraint string) error { return nil } +// predefined versions only have to be parsed by library once +var ( + version1110, _ = version.NewVersion("1.11.0") + version1120, _ = version.NewVersion("1.12.0") + version1130, _ = 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() -- 2.40.1 From 8a428463c7f0c149de0c63c0e3402b947cb69144 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 9 Nov 2020 00:18:27 +0100 Subject: [PATCH 2/8] migrate to new version check function --- gitea/admin_cron.go | 4 ++-- gitea/client.go | 2 +- gitea/issue.go | 6 +++--- gitea/issue_comment.go | 2 +- gitea/issue_label.go | 2 +- gitea/issue_subscription.go | 2 +- gitea/notifications.go | 14 +++++++------- gitea/oauth2.go | 10 +++++----- gitea/pull.go | 4 ++-- gitea/pull_review.go | 12 ++++++------ gitea/release.go | 2 +- gitea/repo.go | 2 +- gitea/repo_branch.go | 4 ++-- gitea/repo_branch_protection.go | 10 +++++----- gitea/repo_file.go | 2 +- gitea/repo_migrate.go | 2 +- gitea/repo_transfer.go | 2 +- gitea/settings.go | 8 ++++---- 18 files changed, 45 insertions(+), 45 deletions(-) diff --git a/gitea/admin_cron.go b/gitea/admin_cron.go index 72f77e5..8fad1db 100644 --- a/gitea/admin_cron.go +++ b/gitea/admin_cron.go @@ -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(version1130); 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(version1130); err != nil { return nil, err } _, resp, err := c.getResponse("POST", fmt.Sprintf("/admin/cron/%s", task), jsonHeader, nil) diff --git a/gitea/client.go b/gitea/client.go index ecf5d13..285aa13 100644 --- a/gitea/client.go +++ b/gitea/client.go @@ -56,7 +56,7 @@ func NewClient(url string, options ...func(*Client)) (*Client, error) { for _, opt := range options { opt(client) } - if err := client.CheckServerVersionConstraint(">=1.11.0"); err != nil { + if err := client.checkServerVersionGreaterThanOrEqual(version1110); err != nil { return nil, err } return client, nil diff --git a/gitea/issue.go b/gitea/issue.go index 1b09b3f..4521f49 100644 --- a/gitea/issue.go +++ b/gitea/issue.go @@ -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(version1120); 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(version1120); 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(version1120); e != nil && issue.Repository != nil { issue.Repository.Owner = strings.Split(issue.Repository.FullName, "/")[0] } return issue, resp, err diff --git a/gitea/issue_comment.go b/gitea/issue_comment.go index 50b3532..85ec667 100644 --- a/gitea/issue_comment.go +++ b/gitea/issue_comment.go @@ -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(version1120); 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) diff --git a/gitea/issue_label.go b/gitea/issue_label.go index 1eb3c74..60a723b 100644 --- a/gitea/issue_label.go +++ b/gitea/issue_label.go @@ -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(version1120); err != nil { opt.Color = "#" + opt.Color } } diff --git a/gitea/issue_subscription.go b/gitea/issue_subscription.go index 4770389..0975c4e 100644 --- a/gitea/issue_subscription.go +++ b/gitea/issue_subscription.go @@ -48,7 +48,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(version1120); err != nil { return nil, nil, err } wi := new(WatchInfo) diff --git a/gitea/notifications.go b/gitea/notifications.go index 515a0d4..65a3d7a 100644 --- a/gitea/notifications.go +++ b/gitea/notifications.go @@ -105,7 +105,7 @@ func (opt MarkNotificationOptions) Validate(c *Client) error { // 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(version1120); err != nil { return 0, nil, err } new := struct { @@ -118,7 +118,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(version1120); err != nil { return nil, nil, err } thread := new(NotificationThread) @@ -129,7 +129,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(version1120); err != nil { return nil, err } link := fmt.Sprintf("/notifications/threads/%d", id) @@ -142,7 +142,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(version1120); err != nil { return nil, nil, err } if err := opt.Validate(c); err != nil { @@ -157,7 +157,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(version1120); err != nil { return nil, err } if err := opt.Validate(c); err != nil { @@ -171,7 +171,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(version1120); err != nil { return nil, nil, err } if err := opt.Validate(c); err != nil { @@ -186,7 +186,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(version1120); err != nil { return nil, err } if err := opt.Validate(c); err != nil { diff --git a/gitea/oauth2.go b/gitea/oauth2.go index 80b1547..c39ddff 100644 --- a/gitea/oauth2.go +++ b/gitea/oauth2.go @@ -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(version1120); 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(version1120); 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(version1120); 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(version1120); 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(version1120); err != nil { return nil, err } _, resp, err := c.getResponse("DELETE", fmt.Sprintf("/user/applications/oauth2/%d", oauth2id), nil, nil) diff --git a/gitea/pull.go b/gitea/pull.go index 24d70e2..baa0c34 100644 --- a/gitea/pull.go +++ b/gitea/pull.go @@ -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(version1120); 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(version1130); err != nil { r, _, err2 := c.GetRepo(owner, repo) if err2 != nil { return nil, nil, err diff --git a/gitea/pull_review.go b/gitea/pull_review.go index e44dc7d..0b4fae7 100644 --- a/gitea/pull_review.go +++ b/gitea/pull_review.go @@ -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(version1120); 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(version1120); 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(version1120); 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(version1120); 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(version1120); 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(version1120); err != nil { return nil, nil, err } if err := opt.Validate(); err != nil { diff --git a/gitea/release.go b/gitea/release.go index 3440f1c..f793da5 100644 --- a/gitea/release.go +++ b/gitea/release.go @@ -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(version1130) != nil { return c.fallbackGetReleaseByTag(user, repo, tag) } r := new(Release) diff --git a/gitea/repo.go b/gitea/repo.go index c432724..bc24081 100644 --- a/gitea/repo.go +++ b/gitea/repo.go @@ -224,7 +224,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(version1120); err != nil && opt.IsPrivate != nil { if *opt.IsPrivate { // private repos only not supported on gitea <= 1.11.x return nil, nil, err diff --git a/gitea/repo_branch.go b/gitea/repo_branch.go index 0d6249e..537a979 100644 --- a/gitea/repo_branch.go +++ b/gitea/repo_branch.go @@ -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(version1120); 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(version1130); err != nil { return nil, nil, err } if err := opt.Validate(); err != nil { diff --git a/gitea/repo_branch_protection.go b/gitea/repo_branch_protection.go index f4d47de..d1843ab 100644 --- a/gitea/repo_branch_protection.go +++ b/gitea/repo_branch_protection.go @@ -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(version1120); 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(version1120); 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(version1120); 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(version1120); 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(version1120); err != nil { return nil, err } _, resp, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/branch_protections/%s", owner, repo, name), jsonHeader, nil) diff --git a/gitea/repo_file.go b/gitea/repo_file.go index 94f216f..1fe4e62 100644 --- a/gitea/repo_file.go +++ b/gitea/repo_file.go @@ -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(version1120) != nil { r, _, err := c.GetRepo(owner, repo) if err != nil { return "", err diff --git a/gitea/repo_migrate.go b/gitea/repo_migrate.go index 583d800..3200810 100644 --- a/gitea/repo_migrate.go +++ b/gitea/repo_migrate.go @@ -82,7 +82,7 @@ func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, *Response, err return nil, nil, err } - if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1130); err != nil { if len(opt.AuthToken) != 0 { // gitea <= 1.12 dont understand AuthToken opt.AuthUsername = opt.AuthToken diff --git a/gitea/repo_transfer.go b/gitea/repo_transfer.go index aedb0e5..1b8c7e6 100644 --- a/gitea/repo_transfer.go +++ b/gitea/repo_transfer.go @@ -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(version1120); err != nil { return nil, nil, err } body, err := json.Marshal(&opt) diff --git a/gitea/settings.go b/gitea/settings.go index 9c39e4e..e80b554 100644 --- a/gitea/settings.go +++ b/gitea/settings.go @@ -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(version1130); 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(version1130); 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(version1130); 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(version1130); err != nil { return nil, nil, err } conf := new(GlobalAttachmentSettings) -- 2.40.1 From 6fb537f79182ca3a734f479fcb094e912f4ee7a3 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 9 Nov 2020 00:19:01 +0100 Subject: [PATCH 3/8] use special version in notifications --- gitea/notifications.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gitea/notifications.go b/gitea/notifications.go index 65a3d7a..8b6e85c 100644 --- a/gitea/notifications.go +++ b/gitea/notifications.go @@ -8,6 +8,12 @@ import ( "fmt" "net/url" "time" + + "github.com/hashicorp/go-version" +) + +var ( + version1123, _ = 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(version1123) } return nil } @@ -98,7 +104,7 @@ 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(version1123) } return nil } -- 2.40.1 From a58f932127af68fac181f7f0fecd3e9149b5f68a Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 9 Nov 2020 00:28:44 +0100 Subject: [PATCH 4/8] update min go requrement & update required go-version lib --- gitea/go.mod | 4 ++-- gitea/go.sum | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gitea/go.mod b/gitea/go.mod index 7b0d75f..ac2a262 100644 --- a/gitea/go.mod +++ b/gitea/go.mod @@ -1,8 +1,8 @@ module code.gitea.io/sdk/gitea -go 1.12 +go 1.13 require ( - github.com/hashicorp/go-version v1.2.0 + github.com/hashicorp/go-version v1.2.1 github.com/stretchr/testify v1.4.0 ) diff --git a/gitea/go.sum b/gitea/go.sum index e210c1c..82997d0 100644 --- a/gitea/go.sum +++ b/gitea/go.sum @@ -2,6 +2,8 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -- 2.40.1 From eb8e2b2c975564c5fa3974dcf0a15090cfb41f35 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 9 Nov 2020 02:13:42 +0100 Subject: [PATCH 5/8] update test data --- gitea/repo_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitea/repo_test.go b/gitea/repo_test.go index c2a1f72..0131505 100644 --- a/gitea/repo_test.go +++ b/gitea/repo_test.go @@ -66,7 +66,7 @@ func TestRepoMigrateAndLanguages(t *testing.T) { assert.NoError(t, err) assert.Len(t, lang, 2) assert.True(t, 217441 < lang["Go"]) - assert.EqualValues(t, 3578, lang["Makefile"]) + assert.EqualValues(t, 3614, lang["Makefile"]) } func TestSearchRepo(t *testing.T) { -- 2.40.1 From f55758ce8b2b91a1282278284f5cc83e2337d28a Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 9 Nov 2020 17:24:32 +0100 Subject: [PATCH 6/8] version use underscore --- gitea/admin_cron.go | 4 ++-- gitea/client.go | 2 +- gitea/issue.go | 6 +++--- gitea/issue_comment.go | 2 +- gitea/issue_label.go | 2 +- gitea/issue_subscription.go | 2 +- gitea/notifications.go | 14 +++++++------- gitea/oauth2.go | 10 +++++----- gitea/pull.go | 4 ++-- gitea/pull_review.go | 12 ++++++------ gitea/release.go | 2 +- gitea/repo.go | 2 +- gitea/repo_branch.go | 4 ++-- gitea/repo_branch_protection.go | 10 +++++----- gitea/repo_file.go | 2 +- gitea/repo_migrate.go | 2 +- gitea/repo_transfer.go | 2 +- gitea/settings.go | 8 ++++---- gitea/version.go | 6 +++--- 19 files changed, 48 insertions(+), 48 deletions(-) diff --git a/gitea/admin_cron.go b/gitea/admin_cron.go index 8fad1db..99006b6 100644 --- a/gitea/admin_cron.go +++ b/gitea/admin_cron.go @@ -25,7 +25,7 @@ type ListCronTaskOptions struct { // ListCronTasks list available cron tasks func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, error) { - if err := c.checkServerVersionGreaterThanOrEqual(version1130); 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.checkServerVersionGreaterThanOrEqual(version1130); 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) diff --git a/gitea/client.go b/gitea/client.go index 285aa13..db7ba63 100644 --- a/gitea/client.go +++ b/gitea/client.go @@ -56,7 +56,7 @@ func NewClient(url string, options ...func(*Client)) (*Client, error) { for _, opt := range options { opt(client) } - if err := client.checkServerVersionGreaterThanOrEqual(version1110); err != nil { + if err := client.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { return nil, err } return client, nil diff --git a/gitea/issue.go b/gitea/issue.go index 4521f49..7eef447 100644 --- a/gitea/issue.go +++ b/gitea/issue.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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 diff --git a/gitea/issue_comment.go b/gitea/issue_comment.go index 85ec667..4eff850 100644 --- a/gitea/issue_comment.go +++ b/gitea/issue_comment.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); 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) diff --git a/gitea/issue_label.go b/gitea/issue_label.go index 60a723b..b664dac 100644 --- a/gitea/issue_label.go +++ b/gitea/issue_label.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { opt.Color = "#" + opt.Color } } diff --git a/gitea/issue_subscription.go b/gitea/issue_subscription.go index 0975c4e..35972ba 100644 --- a/gitea/issue_subscription.go +++ b/gitea/issue_subscription.go @@ -48,7 +48,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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, nil, err } wi := new(WatchInfo) diff --git a/gitea/notifications.go b/gitea/notifications.go index 8b6e85c..c325f38 100644 --- a/gitea/notifications.go +++ b/gitea/notifications.go @@ -111,7 +111,7 @@ func (opt MarkNotificationOptions) Validate(c *Client) error { // CheckNotifications list users's notification threads func (c *Client) CheckNotifications() (int64, *Response, error) { - if err := c.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return 0, nil, err } new := struct { @@ -124,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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, nil, err } thread := new(NotificationThread) @@ -135,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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, err } link := fmt.Sprintf("/notifications/threads/%d", id) @@ -148,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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, nil, err } if err := opt.Validate(c); err != nil { @@ -163,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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, err } if err := opt.Validate(c); err != nil { @@ -177,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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, nil, err } if err := opt.Validate(c); err != nil { @@ -192,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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, err } if err := opt.Validate(c); err != nil { diff --git a/gitea/oauth2.go b/gitea/oauth2.go index c39ddff..bbdfdaf 100644 --- a/gitea/oauth2.go +++ b/gitea/oauth2.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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) diff --git a/gitea/pull.go b/gitea/pull.go index baa0c34..c41ab3b 100644 --- a/gitea/pull.go +++ b/gitea/pull.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1130); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { r, _, err2 := c.GetRepo(owner, repo) if err2 != nil { return nil, nil, err diff --git a/gitea/pull_review.go b/gitea/pull_review.go index 0b4fae7..fc0c22c 100644 --- a/gitea/pull_review.go +++ b/gitea/pull_review.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, nil, err } if err := opt.Validate(); err != nil { diff --git a/gitea/release.go b/gitea/release.go index f793da5..d8d28c5 100644 --- a/gitea/release.go +++ b/gitea/release.go @@ -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.checkServerVersionGreaterThanOrEqual(version1130) != nil { + if c.checkServerVersionGreaterThanOrEqual(version1_13_0) != nil { return c.fallbackGetReleaseByTag(user, repo, tag) } r := new(Release) diff --git a/gitea/repo.go b/gitea/repo.go index 52de0cb..a09f5a6 100644 --- a/gitea/repo.go +++ b/gitea/repo.go @@ -238,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.checkServerVersionGreaterThanOrEqual(version1120); 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 diff --git a/gitea/repo_branch.go b/gitea/repo_branch.go index 537a979..6b0eec2 100644 --- a/gitea/repo_branch.go +++ b/gitea/repo_branch.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1130); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { return nil, nil, err } if err := opt.Validate(); err != nil { diff --git a/gitea/repo_branch_protection.go b/gitea/repo_branch_protection.go index d1843ab..1e52080 100644 --- a/gitea/repo_branch_protection.go +++ b/gitea/repo_branch_protection.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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.checkServerVersionGreaterThanOrEqual(version1120); 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) diff --git a/gitea/repo_file.go b/gitea/repo_file.go index 1fe4e62..b104980 100644 --- a/gitea/repo_file.go +++ b/gitea/repo_file.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120) != nil { + if c.checkServerVersionGreaterThanOrEqual(version1_12_0) != nil { r, _, err := c.GetRepo(owner, repo) if err != nil { return "", err diff --git a/gitea/repo_migrate.go b/gitea/repo_migrate.go index 3200810..556d093 100644 --- a/gitea/repo_migrate.go +++ b/gitea/repo_migrate.go @@ -82,7 +82,7 @@ func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, *Response, err return nil, nil, err } - if err := c.checkServerVersionGreaterThanOrEqual(version1130); 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 diff --git a/gitea/repo_transfer.go b/gitea/repo_transfer.go index 1b8c7e6..d8d661b 100644 --- a/gitea/repo_transfer.go +++ b/gitea/repo_transfer.go @@ -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.checkServerVersionGreaterThanOrEqual(version1120); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_12_0); err != nil { return nil, nil, err } body, err := json.Marshal(&opt) diff --git a/gitea/settings.go b/gitea/settings.go index e80b554..9fa0a7a 100644 --- a/gitea/settings.go +++ b/gitea/settings.go @@ -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.checkServerVersionGreaterThanOrEqual(version1130); 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.checkServerVersionGreaterThanOrEqual(version1130); 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.checkServerVersionGreaterThanOrEqual(version1130); 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.checkServerVersionGreaterThanOrEqual(version1130); err != nil { + if err := c.checkServerVersionGreaterThanOrEqual(version1_13_0); err != nil { return nil, nil, err } conf := new(GlobalAttachmentSettings) diff --git a/gitea/version.go b/gitea/version.go index bfdf310..765a40c 100644 --- a/gitea/version.go +++ b/gitea/version.go @@ -44,9 +44,9 @@ func (c *Client) CheckServerVersionConstraint(constraint string) error { // predefined versions only have to be parsed by library once var ( - version1110, _ = version.NewVersion("1.11.0") - version1120, _ = version.NewVersion("1.12.0") - version1130, _ = version.NewVersion("1.13.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 -- 2.40.1 From df7f5c7845428944a55e808a0ab41ffa52c4d029 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 9 Nov 2020 17:25:28 +0100 Subject: [PATCH 7/8] version use underscore --- gitea/notifications.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gitea/notifications.go b/gitea/notifications.go index c325f38..30b6b6d 100644 --- a/gitea/notifications.go +++ b/gitea/notifications.go @@ -13,7 +13,7 @@ import ( ) var ( - version1123, _ = version.NewVersion("1.12.3") + version1_12_3, _ = version.NewVersion("1.12.3") ) // NotificationThread expose Notification on API @@ -81,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.checkServerVersionGreaterThanOrEqual(version1123) + return c.checkServerVersionGreaterThanOrEqual(version1_12_3) } return nil } @@ -104,7 +104,7 @@ 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.checkServerVersionGreaterThanOrEqual(version1123) + return c.checkServerVersionGreaterThanOrEqual(version1_12_3) } return nil } -- 2.40.1 From 964dee2260c6752ad6c65c9bd906a96515c0a4f6 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 9 Nov 2020 22:17:06 +0100 Subject: [PATCH 8/8] Update TestData --- gitea/repo_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitea/repo_test.go b/gitea/repo_test.go index 0131505..3e19a6a 100644 --- a/gitea/repo_test.go +++ b/gitea/repo_test.go @@ -66,7 +66,7 @@ func TestRepoMigrateAndLanguages(t *testing.T) { assert.NoError(t, err) assert.Len(t, lang, 2) assert.True(t, 217441 < lang["Go"]) - assert.EqualValues(t, 3614, lang["Makefile"]) + assert.True(t, 3614 < lang["Makefile"] && 6000 > lang["Makefile"]) } func TestSearchRepo(t *testing.T) { -- 2.40.1