mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 08:21:11 +00:00 
			
		
		
		
	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
		
	
			
		
			
				
	
	
		
			104 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			104 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
 | 
						|
}
 |