gitforgefs/forges/gitlab/project.go

52 lines
1.1 KiB
Go
Raw Normal View History

2020-12-30 00:49:11 +00:00
package gitlab
2020-12-30 23:00:37 +00:00
import (
"path"
2024-08-14 02:55:18 +00:00
"github.com/badjware/gitforgefs/config"
2020-12-30 23:00:37 +00:00
"github.com/xanzy/go-gitlab"
)
2020-12-30 00:49:11 +00:00
type Project struct {
ID int
Path string
CloneURL string
DefaultBranch string
2020-12-30 00:49:11 +00:00
}
func (p *Project) GetRepositoryID() uint64 {
return uint64(p.ID)
}
func (p *Project) GetCloneURL() string {
return p.CloneURL
}
func (p *Project) GetDefaultBranch() string {
return p.DefaultBranch
}
func (c *gitlabClient) newProjectFromGitlabProject(project *gitlab.Project) *Project {
2020-12-30 00:49:11 +00:00
// https://godoc.org/github.com/xanzy/go-gitlab#Project
if c.ArchivedProjectHandling == config.ArchivedProjectIgnore && project.Archived {
return nil
}
2020-12-30 23:00:37 +00:00
p := Project{
ID: project.ID,
Path: project.Path,
DefaultBranch: project.DefaultBranch,
}
if p.DefaultBranch == "" {
p.DefaultBranch = "master"
2020-12-30 00:49:11 +00:00
}
if c.PullMethod == config.PullMethodSSH {
2020-12-30 23:00:37 +00:00
p.CloneURL = project.SSHURLToRepo
} else {
p.CloneURL = project.HTTPURLToRepo
}
if c.ArchivedProjectHandling == config.ArchivedProjectHide && project.Archived {
p.Path = path.Join(path.Dir(p.Path), "."+path.Base(p.Path))
}
return &p
2020-12-30 00:49:11 +00:00
}