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.CreateElement("strategyId").SetText(strconv.Itoa(gitSource.DiscoverPRFromForks.Strategy))
|
||||
trustClass := "com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait$"
|
||||
switch gitSource.DiscoverPRFromForks.Trust {
|
||||
case 1:
|
||||
trustClass += "TrustEveryone"
|
||||
case 2:
|
||||
trustClass += "TrustTeamForks"
|
||||
case 3:
|
||||
trustClass += "TrustNobody"
|
||||
default:
|
||||
trustClass += "TrustEveryone"
|
||||
|
||||
if prTrust := PRDiscoverTrust(gitSource.DiscoverPRFromForks.Trust); prTrust.IsValid() {
|
||||
trustClass += prTrust.String()
|
||||
} else {
|
||||
klog.Warningf("invalid Bitbucket discover PR trust value: %d", prTrust.Value())
|
||||
}
|
||||
|
||||
forkTrait.CreateElement("trust").CreateAttr("class", trustClass)
|
||||
}
|
||||
if gitSource.DiscoverTags {
|
||||
@@ -111,23 +108,16 @@ func GetBitbucketServerSourceFromEtree(source *etree.Element) *devopsv1alpha3.Bi
|
||||
strategyId, _ := strconv.Atoi(forkPRDiscoverTrait.SelectElement("strategyId").Text())
|
||||
trustClass := forkPRDiscoverTrait.SelectElement("trust").SelectAttr("class").Value
|
||||
trust := strings.Split(trustClass, "$")
|
||||
switch trust[1] {
|
||||
case "TrustEveryone":
|
||||
|
||||
if prTrust := BitbucketPRDiscoverTrust(1).ParseFromString(trust[1]); prTrust.IsValid() {
|
||||
s.DiscoverPRFromForks = &devopsv1alpha3.DiscoverPRFromForks{
|
||||
Strategy: strategyId,
|
||||
Trust: 1,
|
||||
}
|
||||
case "TrustTeamForks":
|
||||
s.DiscoverPRFromForks = &devopsv1alpha3.DiscoverPRFromForks{
|
||||
Strategy: strategyId,
|
||||
Trust: 2,
|
||||
}
|
||||
case "TrustNobody":
|
||||
s.DiscoverPRFromForks = &devopsv1alpha3.DiscoverPRFromForks{
|
||||
Strategy: strategyId,
|
||||
Trust: 3,
|
||||
Trust: prTrust.Value(),
|
||||
}
|
||||
} else {
|
||||
klog.Warningf("invalid Bitbucket discover PR trust value: %s", trust[1])
|
||||
}
|
||||
|
||||
if cloneTrait := traits.SelectElement(
|
||||
"jenkins.plugins.git.traits.CloneOptionTrait"); cloneTrait != nil {
|
||||
if cloneExtension := cloneTrait.SelectElement(
|
||||
|
||||
@@ -10,12 +10,6 @@ const (
|
||||
PRDiscoverUnknown PRDiscoverTrust = -1
|
||||
)
|
||||
|
||||
type GitHubPRDiscoverTrust int
|
||||
|
||||
const (
|
||||
GitHubPRDiscoverTrustContributors GitHubPRDiscoverTrust = 1
|
||||
)
|
||||
|
||||
func (p PRDiscoverTrust) Value() int {
|
||||
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 {
|
||||
return int(p)
|
||||
}
|
||||
@@ -78,3 +79,46 @@ func (p GitHubPRDiscoverTrust) ParseFromString(prTrust string) GitHubPRDiscoverT
|
||||
func (p GitHubPRDiscoverTrust) IsValid() bool {
|
||||
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("fake").IsValid(), false)
|
||||
|
||||
// GitHub
|
||||
assert.Equal(t, GitHubPRDiscoverTrust(1).String(), "TrustContributors")
|
||||
assert.Equal(t, GitHubPRDiscoverTrust(2).String(), PRDiscoverTrust(2).String())
|
||||
assert.Equal(t, GitHubPRDiscoverTrust(1).Value(), 1)
|
||||
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("TrustContributors"), GitHubPRDiscoverTrustContributors)
|
||||
assert.Equal(t, GitHubPRDiscoverTrust(1).ParseFromString("TrustEveryone").String(), "TrustEveryone")
|
||||
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