Merge "Fix pulling docs from remote branch"

This commit is contained in:
Zuul 2021-01-15 19:49:33 +00:00 committed by Gerrit Code Review
commit fa04ecc548
6 changed files with 19 additions and 3 deletions

View File

@ -35,6 +35,10 @@ const (
HTTPBasic = "http-basic"
)
// remoteName is a remote name that airshipctl work with during document pull
// TODO (raliev) consider make this variable configurable via repoCheckout options
var remoteName = git.DefaultRemoteName
// Repository struct holds the information for the remote sources of manifest yaml documents.
// Information such as location, authentication info,
// as well as details of what to get such as branch, tag, commit it, etc.
@ -80,6 +84,8 @@ type RepoCheckout struct {
RemoteRef string `json:"remoteRef,omitempty"`
// ForceCheckout is a boolean to indicate whether to use the `--force` option when checking out
ForceCheckout bool `json:"force"`
// LocalBranch is a boolean to indicate whether the Branch is local one. False by default
LocalBranch bool `json:"localBranch"`
}
// RepoCheckout methods
@ -223,7 +229,11 @@ func (repo *Repository) ToCheckoutOptions() *git.CheckoutOptions {
co.Force = repo.CheckoutOptions.ForceCheckout
switch {
case repo.CheckoutOptions.Branch != "":
co.Branch = plumbing.NewBranchReferenceName(repo.CheckoutOptions.Branch)
if repo.CheckoutOptions.LocalBranch {
co.Branch = plumbing.NewBranchReferenceName(repo.CheckoutOptions.Branch)
} else {
co.Branch = plumbing.NewRemoteReferenceName(remoteName, repo.CheckoutOptions.Branch)
}
case repo.CheckoutOptions.Tag != "":
co.Branch = plumbing.NewTagReferenceName(repo.CheckoutOptions.Tag)
case repo.CheckoutOptions.CommitHash != "":
@ -238,8 +248,9 @@ func (repo *Repository) ToCheckoutOptions() *git.CheckoutOptions {
// CloneOptions describes how a clone should be performed
func (repo *Repository) ToCloneOptions(auth transport.AuthMethod) *git.CloneOptions {
return &git.CloneOptions{
Auth: auth,
URL: repo.URLString,
Auth: auth,
URL: repo.URLString,
RemoteName: remoteName,
}
}

View File

@ -28,6 +28,7 @@ manifests:
branch: ""
commitHash: ""
force: false
localBranch: false
tag: v1.0.1
url: http://dummy.url.com/manifests.git
targetPath: /var/tmp/

View File

@ -9,6 +9,7 @@ repositories:
branch: ""
commitHash: ""
force: false
localBranch: false
tag: v1.0.1
url: http://dummy.url.com/manifests.git
targetPath: /var/tmp/

View File

@ -1,4 +1,5 @@
branch: ""
commitHash: ""
force: false
localBranch: false
tag: v1.0.1

View File

@ -5,5 +5,6 @@ checkout:
branch: ""
commitHash: ""
force: false
localBranch: false
tag: v1.0.1
url: http://dummy.url.com/manifests.git

View File

@ -73,6 +73,7 @@ func TestPull(t *testing.T) {
name: "TestCloneRepositoriesValidOpts",
checkoutOpts: &config.RepoCheckout{
Branch: "master",
LocalBranch: true,
ForceCheckout: false,
},
error: nil,