From b26a0aea19662e7c7d6ce669808080a245d94e09 Mon Sep 17 00:00:00 2001 From: limiting-factor Date: Sun, 18 Aug 2024 18:53:54 +0200 Subject: [PATCH] feat: upgrade F3 to v3.7.0 * support changing label colors * support changing issue state * use helpers to keep type conversions DRY * drop the x/exp license because it is no longer used The tests are performed by the gof3 compliance suite --- assets/go-licenses.json | 5 ----- go.mod | 4 ++-- go.sum | 8 ++++---- services/f3/driver/asset.go | 4 ++-- services/f3/driver/comment.go | 4 ++-- services/f3/driver/container.go | 2 +- services/f3/driver/forge.go | 2 +- services/f3/driver/issue.go | 10 +++++----- services/f3/driver/label.go | 6 +++--- services/f3/driver/milestone.go | 6 +++--- services/f3/driver/organization.go | 4 ++-- services/f3/driver/organizations.go | 2 +- services/f3/driver/project.go | 4 ++-- services/f3/driver/projects.go | 5 ++--- services/f3/driver/pullrequest.go | 10 +++++----- services/f3/driver/reaction.go | 4 ++-- services/f3/driver/release.go | 4 ++-- services/f3/driver/repository.go | 2 +- services/f3/driver/review.go | 4 ++-- services/f3/driver/reviewcomment.go | 4 ++-- services/f3/driver/topic.go | 4 ++-- services/f3/driver/user.go | 6 +++--- services/f3/driver/users.go | 2 +- 23 files changed, 50 insertions(+), 56 deletions(-) diff --git a/assets/go-licenses.json b/assets/go-licenses.json index 020db9465..090b2b374 100644 --- a/assets/go-licenses.json +++ b/assets/go-licenses.json @@ -1019,11 +1019,6 @@ "path": "golang.org/x/crypto/LICENSE", "licenseText": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" }, - { - "name": "golang.org/x/exp", - "path": "golang.org/x/exp/LICENSE", - "licenseText": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" - }, { "name": "golang.org/x/image", "path": "golang.org/x/image/LICENSE", diff --git a/go.mod b/go.mod index e74b3e28c..735f017bb 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module code.gitea.io/gitea go 1.22.5 require ( - code.forgejo.org/f3/gof3/v3 v3.4.0 + code.forgejo.org/f3/gof3/v3 v3.7.0 code.forgejo.org/forgejo/reply v1.0.2 code.gitea.io/actions-proto-go v0.4.0 code.gitea.io/gitea-vet v0.2.3 @@ -95,7 +95,7 @@ require ( github.com/ulikunitz/xz v0.5.12 github.com/urfave/cli/v2 v2.27.2 github.com/valyala/fastjson v1.6.4 - github.com/xanzy/go-gitlab v0.96.0 + github.com/xanzy/go-gitlab v0.106.0 github.com/yohcop/openid-go v1.0.1 github.com/yuin/goldmark v1.7.4 github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc diff --git a/go.sum b/go.sum index 58f2ab62a..f3c8cdc4e 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -code.forgejo.org/f3/gof3/v3 v3.4.0 h1:60LOo47tAKvr9nVu2qqNjbgRnCKeKx68mRMRBo/hIuA= -code.forgejo.org/f3/gof3/v3 v3.4.0/go.mod h1:9v7foN46KlEr5gywOSQPn1k5BVpPeuBozsLKlgOQ3YM= +code.forgejo.org/f3/gof3/v3 v3.7.0 h1:ZfuCP8CGm8ZJbWmL+V0pUu3E0X4FCAA7GfRDy/y5/K4= +code.forgejo.org/f3/gof3/v3 v3.7.0/go.mod h1:oNhOeqD4DZYjVcNjQXIOdDX9b/1tqxi9ITLS8H9/Csw= code.forgejo.org/forgejo/archiver/v3 v3.5.1 h1:UmmbA7D5550uf71SQjarmrn6yKwOGxtEjb3jaYYtmSE= code.forgejo.org/forgejo/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4= code.forgejo.org/forgejo/reply v1.0.2 h1:dMhQCHV6/O3L5CLWNTol+dNzDAuyCK88z4J/lCdgFuQ= @@ -719,8 +719,8 @@ github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLr github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xanzy/go-gitlab v0.96.0 h1:LGkZ+wSNMRtHIBaYE4Hq3dZVjprwHv3Y1+rhKU3WETs= -github.com/xanzy/go-gitlab v0.96.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= +github.com/xanzy/go-gitlab v0.106.0 h1:EDfD03K74cIlQo2EducfiupVrip+Oj02bq9ofw5F8sA= +github.com/xanzy/go-gitlab v0.106.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= diff --git a/services/f3/driver/asset.go b/services/f3/driver/asset.go index fb0cc0f21..6759cc645 100644 --- a/services/f3/driver/asset.go +++ b/services/f3/driver/asset.go @@ -87,7 +87,7 @@ func (o *asset) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() asset, err := repo_model.GetAttachmentByID(ctx, id) if repo_model.IsErrAttachmentNotExist(err) { @@ -154,7 +154,7 @@ func (o *asset) Put(ctx context.Context) generic.NodeID { } o.Trace("asset created %d", o.forgejoAsset.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoAsset.ID)) + return generic.NewNodeID(o.forgejoAsset.ID) } func (o *asset) Delete(ctx context.Context) { diff --git a/services/f3/driver/comment.go b/services/f3/driver/comment.go index 67416a04b..0c10fd744 100644 --- a/services/f3/driver/comment.go +++ b/services/f3/driver/comment.go @@ -72,7 +72,7 @@ func (o *comment) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() comment, err := issues_model.GetCommentByID(ctx, id) if issues_model.IsErrCommentNotExist(err) { @@ -105,7 +105,7 @@ func (o *comment) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("comment created %d", o.forgejoComment.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoComment.ID)) + return generic.NewNodeID(o.forgejoComment.ID) } func (o *comment) Delete(ctx context.Context) { diff --git a/services/f3/driver/container.go b/services/f3/driver/container.go index 1358be45e..153044416 100644 --- a/services/f3/driver/container.go +++ b/services/f3/driver/container.go @@ -39,5 +39,5 @@ func (o *container) Patch(ctx context.Context) { } func (o *container) upsert(context.Context) generic.NodeID { - return generic.NodeID(o.getKind()) + return generic.NewNodeID(o.getKind()) } diff --git a/services/f3/driver/forge.go b/services/f3/driver/forge.go index b299b98c4..a4bcf6123 100644 --- a/services/f3/driver/forge.go +++ b/services/f3/driver/forge.go @@ -50,7 +50,7 @@ func (o *forge) getOwnersPath(ctx context.Context, id string) f3_tree.Path { func (o *forge) Equals(context.Context, generic.NodeInterface) bool { return true } func (o *forge) Get(context.Context) bool { return true } -func (o *forge) Put(context.Context) generic.NodeID { return generic.NodeID("forge") } +func (o *forge) Put(context.Context) generic.NodeID { return generic.NewNodeID("forge") } func (o *forge) Patch(context.Context) {} func (o *forge) Delete(context.Context) {} func (o *forge) NewFormat() f3.Interface { return &f3.Forge{} } diff --git a/services/f3/driver/issue.go b/services/f3/driver/issue.go index 13235d04a..7f1614dee 100644 --- a/services/f3/driver/issue.go +++ b/services/f3/driver/issue.go @@ -96,7 +96,7 @@ func (o *issue) FromFormat(content f3.Interface) { }, Content: issue.Content, Milestone: milestone, - IsClosed: issue.State == "closed", + IsClosed: issue.State == f3.IssueStateClosed, CreatedUnix: timeutil.TimeStamp(issue.Created.Unix()), UpdatedUnix: timeutil.TimeStamp(issue.Updated.Unix()), IsLocked: issue.IsLocked, @@ -124,7 +124,7 @@ func (o *issue) Get(ctx context.Context) bool { o.Trace("%s", node.GetID()) project := f3_tree.GetProjectID(o.GetNode()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() issue, err := issues_model.GetIssueByIndex(ctx, project, id) if issues_model.IsErrIssueNotExist(err) { @@ -144,9 +144,9 @@ func (o *issue) Get(ctx context.Context) bool { func (o *issue) Patch(ctx context.Context) { node := o.GetNode() project := f3_tree.GetProjectID(o.GetNode()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() o.Trace("repo_id = %d, index = %d", project, id) - if _, err := db.GetEngine(ctx).Where("`repo_id` = ? AND `index` = ?", project, id).Cols("name", "content").Update(o.forgejoIssue); err != nil { + if _, err := db.GetEngine(ctx).Where("`repo_id` = ? AND `index` = ?", project, id).Cols("name", "content", "is_closed").Update(o.forgejoIssue); err != nil { panic(fmt.Errorf("%v %v", o.forgejoIssue, err)) } } @@ -207,7 +207,7 @@ func (o *issue) Put(ctx context.Context) generic.NodeID { } o.Trace("issue created %d/%d", o.forgejoIssue.ID, o.forgejoIssue.Index) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoIssue.Index)) + return generic.NewNodeID(o.forgejoIssue.Index) } func (o *issue) Delete(ctx context.Context) { diff --git a/services/f3/driver/label.go b/services/f3/driver/label.go index 28a254cdf..6d1fcaad1 100644 --- a/services/f3/driver/label.go +++ b/services/f3/driver/label.go @@ -65,7 +65,7 @@ func (o *label) Get(ctx context.Context) bool { o.Trace("%s", node.GetID()) project := f3_tree.GetProjectID(o.GetNode()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() label, err := issues_model.GetLabelInRepoByID(ctx, project, id) if issues_model.IsErrRepoLabelNotExist(err) { @@ -80,7 +80,7 @@ func (o *label) Get(ctx context.Context) bool { func (o *label) Patch(ctx context.Context) { o.Trace("%d", o.forgejoLabel.ID) - if _, err := db.GetEngine(ctx).ID(o.forgejoLabel.ID).Cols("name", "description").Update(o.forgejoLabel); err != nil { + if _, err := db.GetEngine(ctx).ID(o.forgejoLabel.ID).Cols("name", "description", "color").Update(o.forgejoLabel); err != nil { panic(fmt.Errorf("UpdateLabelCols: %v %v", o.forgejoLabel, err)) } } @@ -94,7 +94,7 @@ func (o *label) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("label created %d", o.forgejoLabel.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoLabel.ID)) + return generic.NewNodeID(o.forgejoLabel.ID) } func (o *label) Delete(ctx context.Context) { diff --git a/services/f3/driver/milestone.go b/services/f3/driver/milestone.go index c68687cca..222407fc3 100644 --- a/services/f3/driver/milestone.go +++ b/services/f3/driver/milestone.go @@ -89,7 +89,7 @@ func (o *milestone) FromFormat(content f3.Interface) { ID: f3_util.ParseInt(milestone.GetID()), Name: milestone.Title, Content: milestone.Description, - IsClosed: milestone.State == "closed", + IsClosed: milestone.State == f3.MilestoneStateClosed, CreatedUnix: timeutil.TimeStamp(milestone.Created.Unix()), UpdatedUnix: timeutil.TimeStamp(milestone.Updated.Unix()), ClosedDateUnix: closed, @@ -102,7 +102,7 @@ func (o *milestone) Get(ctx context.Context) bool { o.Trace("%s", node.GetID()) project := f3_tree.GetProjectID(o.GetNode()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() milestone, err := issues_model.GetMilestoneByRepoID(ctx, project, id) if issues_model.IsErrMilestoneNotExist(err) { @@ -131,7 +131,7 @@ func (o *milestone) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("milestone created %d", o.forgejoMilestone.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoMilestone.ID)) + return generic.NewNodeID(o.forgejoMilestone.ID) } func (o *milestone) Delete(ctx context.Context) { diff --git a/services/f3/driver/organization.go b/services/f3/driver/organization.go index 724a33298..76b240068 100644 --- a/services/f3/driver/organization.go +++ b/services/f3/driver/organization.go @@ -62,7 +62,7 @@ func (o *organization) FromFormat(content f3.Interface) { func (o *organization) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() organization, err := org_model.GetOrgByID(ctx, id) if user_model.IsErrUserNotExist(err) { return false @@ -94,7 +94,7 @@ func (o *organization) Put(ctx context.Context) generic.NodeID { panic(err) } - return generic.NodeID(fmt.Sprintf("%d", o.forgejoOrganization.ID)) + return generic.NewNodeID(o.forgejoOrganization.ID) } func (o *organization) Delete(ctx context.Context) { diff --git a/services/f3/driver/organizations.go b/services/f3/driver/organizations.go index 6eeb714e1..98c4c1497 100644 --- a/services/f3/driver/organizations.go +++ b/services/f3/driver/organizations.go @@ -42,7 +42,7 @@ func (o *organizations) GetIDFromName(ctx context.Context, name string) generic. panic(fmt.Errorf("GetOrganizationByName: %v", err)) } - return generic.NodeID(fmt.Sprintf("%d", organization.ID)) + return generic.NewNodeID(organization.ID) } func newOrganizations() generic.NodeDriverInterface { diff --git a/services/f3/driver/project.go b/services/f3/driver/project.go index b13c352da..c2a2df38c 100644 --- a/services/f3/driver/project.go +++ b/services/f3/driver/project.go @@ -96,7 +96,7 @@ func (o *project) FromFormat(content f3.Interface) { func (o *project) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() u, err := repo_model.GetRepositoryByID(ctx, id) if repo_model.IsErrRepoNotExist(err) { return false @@ -166,7 +166,7 @@ func (o *project) Put(ctx context.Context) generic.NodeID { o.forgejoProject = repo o.Trace("project created %d", o.forgejoProject.ID) } - return generic.NodeID(fmt.Sprintf("%d", o.forgejoProject.ID)) + return generic.NewNodeID(o.forgejoProject.ID) } func (o *project) Delete(ctx context.Context) { diff --git a/services/f3/driver/projects.go b/services/f3/driver/projects.go index 7ce263db7..a2dabc3f9 100644 --- a/services/f3/driver/projects.go +++ b/services/f3/driver/projects.go @@ -13,7 +13,6 @@ import ( f3_tree "code.forgejo.org/f3/gof3/v3/tree/f3" "code.forgejo.org/f3/gof3/v3/tree/generic" - f3_util "code.forgejo.org/f3/gof3/v3/util" ) type projects struct { @@ -31,7 +30,7 @@ func (o *projects) GetIDFromName(ctx context.Context, name string) generic.NodeI panic(fmt.Errorf("error GetRepositoryByOwnerAndName(%s, %s): %v", owner, name, err)) } - return generic.NodeID(fmt.Sprintf("%d", forgejoProject.ID)) + return generic.NewNodeID(forgejoProject.ID) } func (o *projects) ListPage(ctx context.Context, page int) generic.ChildrenSlice { @@ -41,7 +40,7 @@ func (o *projects) ListPage(ctx context.Context, page int) generic.ChildrenSlice forgejoProjects, _, err := repo_model.SearchRepository(ctx, &repo_model.SearchRepoOptions{ ListOptions: db.ListOptions{Page: page, PageSize: pageSize}, - OwnerID: f3_util.ParseInt(string(owner.GetID())), + OwnerID: owner.GetID().Int64(), Private: true, }) if err != nil { diff --git a/services/f3/driver/pullrequest.go b/services/f3/driver/pullrequest.go index 8f59dbfe9..466b4bd57 100644 --- a/services/f3/driver/pullrequest.go +++ b/services/f3/driver/pullrequest.go @@ -51,7 +51,7 @@ func (o *pullRequest) repositoryToReference(ctx context.Context, repository *rep if repository == nil { panic("unexpected nil repository") } - forge := o.getTree().GetRoot().GetChild(f3_tree.KindForge).GetDriver().(*forge) + forge := o.getTree().GetRoot().GetChild(generic.NewNodeID(f3_tree.KindForge)).GetDriver().(*forge) owners := forge.getOwnersPath(ctx, fmt.Sprintf("%d", repository.OwnerID)) return f3_tree.NewRepositoryReference(owners.String(), repository.OwnerID, repository.ID) } @@ -172,7 +172,7 @@ func (o *pullRequest) FromFormat(content f3.Interface) { Title: pullRequest.Title, Content: pullRequest.Content, Milestone: milestone, - IsClosed: pullRequest.State == "closed", + IsClosed: pullRequest.State == f3.PullRequestStateClosed, CreatedUnix: timeutil.TimeStamp(pullRequest.Created.Unix()), UpdatedUnix: timeutil.TimeStamp(pullRequest.Updated.Unix()), IsLocked: pullRequest.IsLocked, @@ -190,7 +190,7 @@ func (o *pullRequest) Get(ctx context.Context) bool { o.Trace("%s", node.GetID()) project := f3_tree.GetProjectID(o.GetNode()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() issue, err := issues_model.GetIssueByIndex(ctx, project, id) if issues_model.IsErrIssueNotExist(err) { @@ -219,7 +219,7 @@ func (o *pullRequest) Get(ctx context.Context) bool { func (o *pullRequest) Patch(ctx context.Context) { node := o.GetNode() project := f3_tree.GetProjectID(o.GetNode()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() o.Trace("repo_id = %d, index = %d", project, id) if _, err := db.GetEngine(ctx).Where("`repo_id` = ? AND `index` = ?", project, id).Cols("name", "content").Update(o.forgejoPullRequest); err != nil { panic(fmt.Errorf("%v %v", o.forgejoPullRequest, err)) @@ -289,7 +289,7 @@ func (o *pullRequest) Put(ctx context.Context) generic.NodeID { } o.Trace("pullRequest created %d/%d", o.forgejoPullRequest.ID, o.forgejoPullRequest.Index) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoPullRequest.Index)) + return generic.NewNodeID(o.forgejoPullRequest.Index) } func (o *pullRequest) Delete(ctx context.Context) { diff --git a/services/f3/driver/reaction.go b/services/f3/driver/reaction.go index ce2814ee7..0dc486c72 100644 --- a/services/f3/driver/reaction.go +++ b/services/f3/driver/reaction.go @@ -67,7 +67,7 @@ func (o *reaction) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() if has, err := db.GetEngine(ctx).Where("ID = ?", id).Get(o.forgejoReaction); err != nil { panic(fmt.Errorf("reaction %v %w", id, err)) @@ -115,7 +115,7 @@ func (o *reaction) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("reaction created %d", o.forgejoReaction.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoReaction.ID)) + return generic.NewNodeID(o.forgejoReaction.ID) } func (o *reaction) Delete(ctx context.Context) { diff --git a/services/f3/driver/release.go b/services/f3/driver/release.go index fab9222c1..e937f84d0 100644 --- a/services/f3/driver/release.go +++ b/services/f3/driver/release.go @@ -85,7 +85,7 @@ func (o *release) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() release, err := repo_model.GetReleaseByID(ctx, id) if repo_model.IsErrReleaseNotExist(err) { @@ -133,7 +133,7 @@ func (o *release) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("release created %d", o.forgejoRelease.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoRelease.ID)) + return generic.NewNodeID(o.forgejoRelease.ID) } func (o *release) Delete(ctx context.Context) { diff --git a/services/f3/driver/repository.go b/services/f3/driver/repository.go index 203622ad9..da968b4c4 100644 --- a/services/f3/driver/repository.go +++ b/services/f3/driver/repository.go @@ -68,7 +68,7 @@ func (o *repository) Patch(ctx context.Context) { func (o *repository) upsert(ctx context.Context) generic.NodeID { o.Trace("%s", o.GetNativeID()) o.h.Upsert(ctx, o.f) - return generic.NodeID(o.f.Name) + return generic.NewNodeID(o.f.Name) } func (o *repository) SetFetchFunc(fetchFunc func(ctx context.Context, destination string)) { diff --git a/services/f3/driver/review.go b/services/f3/driver/review.go index b6a02bc14..a3c074bd6 100644 --- a/services/f3/driver/review.go +++ b/services/f3/driver/review.go @@ -111,7 +111,7 @@ func (o *review) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() review, err := issues_model.GetReviewByID(ctx, id) if issues_model.IsErrReviewNotExist(err) { @@ -153,7 +153,7 @@ func (o *review) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("review created %d", o.forgejoReview.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoReview.ID)) + return generic.NewNodeID(o.forgejoReview.ID) } func (o *review) Delete(ctx context.Context) { diff --git a/services/f3/driver/reviewcomment.go b/services/f3/driver/reviewcomment.go index c2a5537b2..8e13d86b6 100644 --- a/services/f3/driver/reviewcomment.go +++ b/services/f3/driver/reviewcomment.go @@ -92,7 +92,7 @@ func (o *reviewComment) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() reviewComment, err := issues_model.GetCommentByID(ctx, id) if issues_model.IsErrCommentNotExist(err) { @@ -125,7 +125,7 @@ func (o *reviewComment) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("reviewComment created %d", o.forgejoReviewComment.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoReviewComment.ID)) + return generic.NewNodeID(o.forgejoReviewComment.ID) } func (o *reviewComment) Delete(ctx context.Context) { diff --git a/services/f3/driver/topic.go b/services/f3/driver/topic.go index 5ea868289..16b2eb314 100644 --- a/services/f3/driver/topic.go +++ b/services/f3/driver/topic.go @@ -61,7 +61,7 @@ func (o *topic) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() if has, err := db.GetEngine(ctx).Where("ID = ?", id).Get(o.forgejoTopic); err != nil { panic(fmt.Errorf("topic %v %w", id, err)) @@ -86,7 +86,7 @@ func (o *topic) Put(ctx context.Context) generic.NodeID { panic(err) } o.Trace("topic created %d", o.forgejoTopic.ID) - return generic.NodeID(fmt.Sprintf("%d", o.forgejoTopic.ID)) + return generic.NewNodeID(o.forgejoTopic.ID) } func (o *topic) Delete(ctx context.Context) { diff --git a/services/f3/driver/user.go b/services/f3/driver/user.go index 91456b2cb..221b06e83 100644 --- a/services/f3/driver/user.go +++ b/services/f3/driver/user.go @@ -81,7 +81,7 @@ func (o *user) FromFormat(content f3.Interface) { func (o *user) Get(ctx context.Context) bool { node := o.GetNode() o.Trace("%s", node.GetID()) - id := f3_util.ParseInt(string(node.GetID())) + id := node.GetID().Int64() u, err := user_model.GetPossibleUserByID(ctx, id) if user_model.IsErrUserNotExist(err) { return false @@ -98,7 +98,7 @@ func (o *user) Patch(context.Context) { func (o *user) Put(ctx context.Context) generic.NodeID { if user := getSystemUserByName(o.forgejoUser.Name); user != nil { - return generic.NodeID(fmt.Sprintf("%d", user.ID)) + return generic.NewNodeID(user.ID) } o.forgejoUser.LowerName = strings.ToLower(o.forgejoUser.Name) @@ -111,7 +111,7 @@ func (o *user) Put(ctx context.Context) generic.NodeID { panic(err) } - return generic.NodeID(fmt.Sprintf("%d", o.forgejoUser.ID)) + return generic.NewNodeID(o.forgejoUser.ID) } func (o *user) Delete(ctx context.Context) { diff --git a/services/f3/driver/users.go b/services/f3/driver/users.go index bb5240c70..92ed0bcbc 100644 --- a/services/f3/driver/users.go +++ b/services/f3/driver/users.go @@ -40,7 +40,7 @@ func (o *users) GetIDFromName(ctx context.Context, name string) generic.NodeID { panic(fmt.Errorf("GetUserByName: %v", err)) } - return generic.NodeID(fmt.Sprintf("%d", user.ID)) + return generic.NewNodeID(user.ID) } func newUsers() generic.NodeDriverInterface {