1
0
Fork 0
golang-forgejo-f3-gof3/f3/project.go

51 lines
1.3 KiB
Go
Raw Normal View History

// Copyright Earl Warren <contact@earl-warren.org>
// Copyright Loïc Dachary <loic@dachary.org>
// SPDX-License-Identifier: MIT
package f3
type Project struct {
Common
Name string `json:"name"`
IsPrivate bool `json:"is_private"`
IsMirror bool `json:"is_mirror"`
Description string `json:"description"`
DefaultBranch string `json:"default_branch"`
Forked *Reference `json:"forked"`
HasWiki bool `json:"has_wiki"`
Topics []*Reference `json:"topics"`
}
func (o Project) Project(other Project) bool {
return o.Common.Equal(other.Common) &&
o.Name == other.Name &&
o.IsPrivate == other.IsPrivate &&
o.IsMirror == other.IsMirror &&
o.Description == other.Description &&
o.DefaultBranch == other.DefaultBranch &&
nilOrEqual(o.Forked, other.Forked) &&
o.HasWiki == other.HasWiki &&
arrayEqual(o.Topics, other.Topics)
}
func (o *Project) GetName() string {
return o.Name
}
func (o *Project) GetReferences() References {
references := o.Common.GetReferences()
if !o.Forked.IsNil() {
references = append(references, o.Forked)
}
for _, topic := range o.Topics {
references = append(references, topic)
}
return references
}
func (o *Project) Clone() Interface {
clone := &Project{}
*clone = *o
return clone
}