summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormvink <mike1994vink@gmail.com>2023-02-28 09:16:56 +0100
committerMike Vink <mike1994vink@gmail.com>2023-02-28 10:14:28 +0100
commit65f2fb333d7c659202809dee7e5d2ce3bdc2619c (patch)
tree688871dbfd5debc1ec1b9bc9cedb6c1b79001a29
parenteea6302bab752663b50f80952eea0eb63fbdad98 (diff)
fix: Remove computed from ref_commit_id
Co-authored-by: xuzhang3 <57888764+xuzhang3@users.noreply.github.com>
-rw-r--r--azuredevops/internal/service/git/resource_git_repository_branch.go32
1 files changed, 11 insertions, 21 deletions
diff --git a/azuredevops/internal/service/git/resource_git_repository_branch.go b/azuredevops/internal/service/git/resource_git_repository_branch.go
index c6a9bc5d..f57618a4 100644
--- a/azuredevops/internal/service/git/resource_git_repository_branch.go
+++ b/azuredevops/internal/service/git/resource_git_repository_branch.go
@@ -83,25 +83,18 @@ func resourceGitRepositoryBranchCreate(ctx context.Context, d *schema.ResourceDa
return diag.Errorf("Branch name must be in short format without refs/heads/ prefix, got: %q", name)
}
- ref, hasRef := d.GetOk("ref_branch")
- tag, hasTag := d.GetOk("ref_tag")
- _, hasCommitId := d.GetOk("ref_commit_id")
- if !hasRef && !hasTag && !hasCommitId {
- return diag.Errorf("One of 'ref' or 'tag' or 'commit_id' must be provided.")
- }
-
- // Get a commitId from a head or tag if it is not provided in the resource
- if !hasCommitId {
+ var newObjectId string
+ if v, ok := d.GetOk("ref_commit_id"); ok {
+ newObjectId = v.(string)
+ } else {
var rs string
- if hasRef {
- rs = withPrefix(REF_BRANCH_PREFIX, ref.(string))
+ if v, ok := d.GetOk("ref_branch"); ok {
+ rs = withPrefix(REF_BRANCH_PREFIX, v.(string))
}
- if hasTag {
- rs = withPrefix(REF_TAG_PREFIX, tag.(string))
+ if v, ok := d.GetOk("ref_tag"); ok {
+ rs = withPrefix(REF_TAG_PREFIX, v.(string))
}
- // Azuredevops GetRefs api returns refs whose "prefix" matches Filter sorted from shortest to longest
- // Top1 should return best match
filter := strings.TrimPrefix(rs, "refs/")
gotRefs, err := clients.GitReposClient.GetRefs(clients.Ctx, git.GetRefsArgs{
RepositoryId: converter.String(repoId),
@@ -127,18 +120,15 @@ func resourceGitRepositoryBranchCreate(ctx context.Context, d *schema.ResourceDa
return diag.FromErr(fmt.Errorf("Ref %q not found, closest match is %q.", filter, *gotRef.Name))
}
- // Check if ref was a tag and we need to use PeeledObjectId to get the commit id of the tag
- var refObjectIdSha *string
if gotRef.PeeledObjectId != nil {
- refObjectIdSha = gotRef.PeeledObjectId
+ newObjectId = *gotRef.PeeledObjectId
} else if gotRef.ObjectId != nil {
- refObjectIdSha = gotRef.ObjectId
+ newObjectId = *gotRef.ObjectId
} else {
return diag.FromErr(fmt.Errorf("GetRefs response doesn't have a valid commit id."))
}
- d.Set("ref_commit_id", *refObjectIdSha)
}
- newObjectId := d.Get("ref_commit_id").(string)
+
_, err := updateRefs(clients, git.UpdateRefsArgs{
RefUpdates: &[]git.GitRefUpdate{{