mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-22 09:54:24 +01:00
e99d3f7055
feat(F3): driver stub feat(F3): util.Logger feat(F3): driver compliance tests feat(F3): driver/users implementation feat(F3): driver/user implementation feat(F3): driver/{projects,project} implementation feat(F3): driver/{labels,label} implementation feat(F3): driver/{milestones,milestone} implementation feat(F3): driver/{repositories,repository} implementation feat(F3): driver/{organizations,organization} implementation feat(F3): driver/{releases,release} implementation feat(F3): driver/{issues,issue} implementation feat(F3): driver/{comments,comment} implementation feat(F3): driver/{assets,asset} implementation feat(F3): driver/{pullrequests,pullrequest} implementation feat(F3): driver/{reviews,review} implementation feat(F3): driver/{topics,topic} implementation feat(F3): driver/{reactions,reaction} implementation feat(F3): driver/{reviewComments,reviewComment} implementation feat(F3): CLI: f3 mirror chore(F3): move to code.forgejo.org feat(f3): upgrade to gof3 3.1.0 repositories in pull requests are represented with a reference instead of an owner/project pair of names
105 lines
2.5 KiB
Go
105 lines
2.5 KiB
Go
// Copyright Earl Warren <contact@earl-warren.org>
|
|
// Copyright Loïc Dachary <loic@dachary.org>
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package driver
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
forgejo_options "code.gitea.io/gitea/services/f3/driver/options"
|
|
|
|
f3_tree "code.forgejo.org/f3/gof3/v3/tree/f3"
|
|
"code.forgejo.org/f3/gof3/v3/tree/generic"
|
|
)
|
|
|
|
type treeDriver struct {
|
|
generic.NullTreeDriver
|
|
|
|
options *forgejo_options.Options
|
|
}
|
|
|
|
func (o *treeDriver) Init() {
|
|
o.NullTreeDriver.Init()
|
|
}
|
|
|
|
func (o *treeDriver) Factory(ctx context.Context, kind generic.Kind) generic.NodeDriverInterface {
|
|
switch kind {
|
|
case f3_tree.KindForge:
|
|
return newForge()
|
|
case f3_tree.KindOrganizations:
|
|
return newOrganizations()
|
|
case f3_tree.KindOrganization:
|
|
return newOrganization()
|
|
case f3_tree.KindUsers:
|
|
return newUsers()
|
|
case f3_tree.KindUser:
|
|
return newUser()
|
|
case f3_tree.KindProjects:
|
|
return newProjects()
|
|
case f3_tree.KindProject:
|
|
return newProject()
|
|
case f3_tree.KindIssues:
|
|
return newIssues()
|
|
case f3_tree.KindIssue:
|
|
return newIssue()
|
|
case f3_tree.KindComments:
|
|
return newComments()
|
|
case f3_tree.KindComment:
|
|
return newComment()
|
|
case f3_tree.KindAssets:
|
|
return newAssets()
|
|
case f3_tree.KindAsset:
|
|
return newAsset()
|
|
case f3_tree.KindLabels:
|
|
return newLabels()
|
|
case f3_tree.KindLabel:
|
|
return newLabel()
|
|
case f3_tree.KindReactions:
|
|
return newReactions()
|
|
case f3_tree.KindReaction:
|
|
return newReaction()
|
|
case f3_tree.KindReviews:
|
|
return newReviews()
|
|
case f3_tree.KindReview:
|
|
return newReview()
|
|
case f3_tree.KindReviewComments:
|
|
return newReviewComments()
|
|
case f3_tree.KindReviewComment:
|
|
return newReviewComment()
|
|
case f3_tree.KindMilestones:
|
|
return newMilestones()
|
|
case f3_tree.KindMilestone:
|
|
return newMilestone()
|
|
case f3_tree.KindPullRequests:
|
|
return newPullRequests()
|
|
case f3_tree.KindPullRequest:
|
|
return newPullRequest()
|
|
case f3_tree.KindReleases:
|
|
return newReleases()
|
|
case f3_tree.KindRelease:
|
|
return newRelease()
|
|
case f3_tree.KindTopics:
|
|
return newTopics()
|
|
case f3_tree.KindTopic:
|
|
return newTopic()
|
|
case f3_tree.KindRepositories:
|
|
return newRepositories()
|
|
case f3_tree.KindRepository:
|
|
return newRepository(ctx)
|
|
case generic.KindRoot:
|
|
return newRoot(o.GetTree().(f3_tree.TreeInterface).NewFormat(kind))
|
|
default:
|
|
panic(fmt.Errorf("unexpected kind %s", kind))
|
|
}
|
|
}
|
|
|
|
func newTreeDriver(tree generic.TreeInterface, anyOptions any) generic.TreeDriverInterface {
|
|
driver := &treeDriver{
|
|
options: anyOptions.(*forgejo_options.Options),
|
|
}
|
|
driver.Init()
|
|
return driver
|
|
}
|