Refactory pr discover with Bitbucket, avoid using number to compare
Signed-off-by: rick <rick@jenkins-zh.cn>
This commit is contained in:
@@ -35,16 +35,13 @@ func AppendBitbucketServerSourceToEtree(source *etree.Element, gitSource *devops
|
|||||||
forkTrait := traits.CreateElement("com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait")
|
forkTrait := traits.CreateElement("com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait")
|
||||||
forkTrait.CreateElement("strategyId").SetText(strconv.Itoa(gitSource.DiscoverPRFromForks.Strategy))
|
forkTrait.CreateElement("strategyId").SetText(strconv.Itoa(gitSource.DiscoverPRFromForks.Strategy))
|
||||||
trustClass := "com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait$"
|
trustClass := "com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait$"
|
||||||
switch gitSource.DiscoverPRFromForks.Trust {
|
|
||||||
case 1:
|
if prTrust := PRDiscoverTrust(gitSource.DiscoverPRFromForks.Trust); prTrust.IsValid() {
|
||||||
trustClass += "TrustEveryone"
|
trustClass += prTrust.String()
|
||||||
case 2:
|
} else {
|
||||||
trustClass += "TrustTeamForks"
|
klog.Warningf("invalid Bitbucket discover PR trust value: %d", prTrust.Value())
|
||||||
case 3:
|
|
||||||
trustClass += "TrustNobody"
|
|
||||||
default:
|
|
||||||
trustClass += "TrustEveryone"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
forkTrait.CreateElement("trust").CreateAttr("class", trustClass)
|
forkTrait.CreateElement("trust").CreateAttr("class", trustClass)
|
||||||
}
|
}
|
||||||
if gitSource.DiscoverTags {
|
if gitSource.DiscoverTags {
|
||||||
@@ -111,23 +108,16 @@ func GetBitbucketServerSourceFromEtree(source *etree.Element) *devopsv1alpha3.Bi
|
|||||||
strategyId, _ := strconv.Atoi(forkPRDiscoverTrait.SelectElement("strategyId").Text())
|
strategyId, _ := strconv.Atoi(forkPRDiscoverTrait.SelectElement("strategyId").Text())
|
||||||
trustClass := forkPRDiscoverTrait.SelectElement("trust").SelectAttr("class").Value
|
trustClass := forkPRDiscoverTrait.SelectElement("trust").SelectAttr("class").Value
|
||||||
trust := strings.Split(trustClass, "$")
|
trust := strings.Split(trustClass, "$")
|
||||||
switch trust[1] {
|
|
||||||
case "TrustEveryone":
|
if prTrust := BitbucketPRDiscoverTrust(1).ParseFromString(trust[1]); prTrust.IsValid() {
|
||||||
s.DiscoverPRFromForks = &devopsv1alpha3.DiscoverPRFromForks{
|
s.DiscoverPRFromForks = &devopsv1alpha3.DiscoverPRFromForks{
|
||||||
Strategy: strategyId,
|
Strategy: strategyId,
|
||||||
Trust: 1,
|
Trust: prTrust.Value(),
|
||||||
}
|
|
||||||
case "TrustTeamForks":
|
|
||||||
s.DiscoverPRFromForks = &devopsv1alpha3.DiscoverPRFromForks{
|
|
||||||
Strategy: strategyId,
|
|
||||||
Trust: 2,
|
|
||||||
}
|
|
||||||
case "TrustNobody":
|
|
||||||
s.DiscoverPRFromForks = &devopsv1alpha3.DiscoverPRFromForks{
|
|
||||||
Strategy: strategyId,
|
|
||||||
Trust: 3,
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
klog.Warningf("invalid Bitbucket discover PR trust value: %s", trust[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
if cloneTrait := traits.SelectElement(
|
if cloneTrait := traits.SelectElement(
|
||||||
"jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil {
|
"jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil {
|
||||||
if cloneExtension := cloneTrait.SelectElement(
|
if cloneExtension := cloneTrait.SelectElement(
|
||||||
|
|||||||
@@ -10,12 +10,6 @@ const (
|
|||||||
PRDiscoverUnknown PRDiscoverTrust = -1
|
PRDiscoverUnknown PRDiscoverTrust = -1
|
||||||
)
|
)
|
||||||
|
|
||||||
type GitHubPRDiscoverTrust int
|
|
||||||
|
|
||||||
const (
|
|
||||||
GitHubPRDiscoverTrustContributors GitHubPRDiscoverTrust = 1
|
|
||||||
)
|
|
||||||
|
|
||||||
func (p PRDiscoverTrust) Value() int {
|
func (p PRDiscoverTrust) Value() int {
|
||||||
return int(p)
|
return int(p)
|
||||||
}
|
}
|
||||||
@@ -49,6 +43,13 @@ func (p PRDiscoverTrust) ParseFromString(prTrust string) PRDiscoverTrust {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GitHub
|
||||||
|
type GitHubPRDiscoverTrust int
|
||||||
|
|
||||||
|
const (
|
||||||
|
GitHubPRDiscoverTrustContributors GitHubPRDiscoverTrust = 1
|
||||||
|
)
|
||||||
|
|
||||||
func (p GitHubPRDiscoverTrust) Value() int {
|
func (p GitHubPRDiscoverTrust) Value() int {
|
||||||
return int(p)
|
return int(p)
|
||||||
}
|
}
|
||||||
@@ -78,3 +79,46 @@ func (p GitHubPRDiscoverTrust) ParseFromString(prTrust string) GitHubPRDiscoverT
|
|||||||
func (p GitHubPRDiscoverTrust) IsValid() bool {
|
func (p GitHubPRDiscoverTrust) IsValid() bool {
|
||||||
return PRDiscoverTrust(p).IsValid()
|
return PRDiscoverTrust(p).IsValid()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Bitbucket
|
||||||
|
type BitbucketPRDiscoverTrust int
|
||||||
|
|
||||||
|
const (
|
||||||
|
BitbucketPRDiscoverTrustEveryone BitbucketPRDiscoverTrust = 1
|
||||||
|
BitbucketPRDiscoverTrustTeamForks BitbucketPRDiscoverTrust = 2
|
||||||
|
BitbucketPRDiscoverTrustNobody BitbucketPRDiscoverTrust = 3
|
||||||
|
)
|
||||||
|
|
||||||
|
func (p BitbucketPRDiscoverTrust) Value() int {
|
||||||
|
return int(p)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p BitbucketPRDiscoverTrust) IsValid() bool {
|
||||||
|
return p.String() != ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p BitbucketPRDiscoverTrust) String() string {
|
||||||
|
switch p {
|
||||||
|
default:
|
||||||
|
fallthrough
|
||||||
|
case BitbucketPRDiscoverTrustEveryone:
|
||||||
|
return "TrustEveryone"
|
||||||
|
case BitbucketPRDiscoverTrustTeamForks:
|
||||||
|
return "TrustTeamForks"
|
||||||
|
case BitbucketPRDiscoverTrustNobody:
|
||||||
|
return "TrustNobody"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p BitbucketPRDiscoverTrust) ParseFromString(prTrust string) BitbucketPRDiscoverTrust {
|
||||||
|
switch prTrust {
|
||||||
|
default:
|
||||||
|
fallthrough
|
||||||
|
case "TrustEveryone":
|
||||||
|
return BitbucketPRDiscoverTrustEveryone
|
||||||
|
case "TrustTeamForks":
|
||||||
|
return BitbucketPRDiscoverTrustTeamForks
|
||||||
|
case "TrustNobody":
|
||||||
|
return BitbucketPRDiscoverTrustNobody
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -19,10 +19,23 @@ func TestPRDiscoverTrust(t *testing.T) {
|
|||||||
assert.Equal(t, PRDiscoverTrust(1).ParseFromString("TrustNobody"), PRDiscoverTrustNobody)
|
assert.Equal(t, PRDiscoverTrust(1).ParseFromString("TrustNobody"), PRDiscoverTrustNobody)
|
||||||
assert.Equal(t, PRDiscoverTrust(1).ParseFromString("fake").IsValid(), false)
|
assert.Equal(t, PRDiscoverTrust(1).ParseFromString("fake").IsValid(), false)
|
||||||
|
|
||||||
|
// GitHub
|
||||||
assert.Equal(t, GitHubPRDiscoverTrust(1).String(), "TrustContributors")
|
assert.Equal(t, GitHubPRDiscoverTrust(1).String(), "TrustContributors")
|
||||||
assert.Equal(t, GitHubPRDiscoverTrust(2).String(), PRDiscoverTrust(2).String())
|
assert.Equal(t, GitHubPRDiscoverTrust(2).String(), PRDiscoverTrust(2).String())
|
||||||
assert.Equal(t, GitHubPRDiscoverTrust(1).Value(), 1)
|
assert.Equal(t, GitHubPRDiscoverTrust(1).Value(), 1)
|
||||||
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("TrustContributors"), GitHubPRDiscoverTrustContributors)
|
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("TrustContributors"), GitHubPRDiscoverTrustContributors)
|
||||||
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("TrustEveryone").String(), "TrustEveryone")
|
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("TrustEveryone").String(), "TrustEveryone")
|
||||||
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("fake").IsValid(), false)
|
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("fake").IsValid(), false)
|
||||||
|
|
||||||
|
// Bithucket
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(1).String(), "TrustEveryone")
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(2).String(), "TrustTeamForks")
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(3).String(), "TrustNobody")
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(3).Value(), 3)
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(-1).String(), "TrustEveryone")
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(1).ParseFromString("TrustEveryone"), BitbucketPRDiscoverTrustEveryone)
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(1).ParseFromString("TrustTeamForks"), BitbucketPRDiscoverTrustTeamForks)
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(1).ParseFromString("TrustNobody"), BitbucketPRDiscoverTrustNobody)
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(1).ParseFromString("fake"), BitbucketPRDiscoverTrustEveryone)
|
||||||
|
assert.Equal(t, BitbucketPRDiscoverTrust(1).ParseFromString("TrustNobody").IsValid(), true)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user