Skip to content

Commit 5712fb4

Browse files
committed
Extract import to named function
Signed-off-by: Timo Sand <[email protected]>
1 parent 1fb1d1b commit 5712fb4

1 file changed

Lines changed: 42 additions & 34 deletions

File tree

github/resource_github_repository_environment_deployment_policy.go

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,40 +21,7 @@ func resourceGithubRepositoryEnvironmentDeploymentPolicy() *schema.Resource {
2121
UpdateContext: resourceGithubRepositoryEnvironmentDeploymentPolicyUpdate,
2222
DeleteContext: resourceGithubRepositoryEnvironmentDeploymentPolicyDelete,
2323
Importer: &schema.ResourceImporter{
24-
StateContext: func(ctx context.Context, d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) {
25-
tflog.Debug(ctx, "Importing repository environment deployment policy", map[string]any{
26-
"id": d.Id(),
27-
})
28-
29-
repoName, envName, policyId, err := parseThreePartID(d.Id(), "repository", "environment", "branchPolicyId")
30-
if err != nil {
31-
tflog.Error(ctx, "Failed to parse import ID", map[string]any{
32-
"id": d.Id(),
33-
"error": err.Error(),
34-
})
35-
return nil, err
36-
}
37-
38-
_ = d.Set("repository", repoName)
39-
envNameUnescaped, err := url.PathUnescape(envName)
40-
if err != nil {
41-
tflog.Error(ctx, "Failed to unescape environment name", map[string]any{
42-
"id": d.Id(),
43-
"environment": envName,
44-
"error": err.Error(),
45-
})
46-
return nil, err
47-
}
48-
_ = d.Set("environment", envNameUnescaped)
49-
50-
tflog.Info(ctx, "Imported repository environment deployment policy", map[string]any{
51-
"repository": repoName,
52-
"environment": envNameUnescaped,
53-
"policy_id": policyId,
54-
})
55-
56-
return []*schema.ResourceData{d}, nil
57-
},
24+
StateContext: resourceGithubRepositoryEnvironmentDeploymentPolicyImport,
5825
},
5926
Schema: map[string]*schema.Schema{
6027
"repository": {
@@ -335,3 +302,44 @@ func customDeploymentPolicyDiffFunction(_ context.Context, diff *schema.Resource
335302

336303
return nil
337304
}
305+
306+
func resourceGithubRepositoryEnvironmentDeploymentPolicyImport(ctx context.Context, d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) {
307+
tflog.Debug(ctx, "Importing repository environment deployment policy", map[string]any{
308+
"id": d.Id(),
309+
})
310+
311+
repoName, envName, policyId, err := parseThreePartID(d.Id(), "repository", "environment", "branchPolicyId")
312+
if err != nil {
313+
tflog.Error(ctx, "Failed to parse import ID", map[string]any{
314+
"id": d.Id(),
315+
"error": err.Error(),
316+
})
317+
return nil, err
318+
}
319+
320+
if err := d.Set("repository", repoName); err != nil {
321+
return nil, err
322+
}
323+
324+
envNameUnescaped, err := url.PathUnescape(envName)
325+
if err != nil {
326+
tflog.Error(ctx, "Failed to unescape environment name", map[string]any{
327+
"id": d.Id(),
328+
"environment": envName,
329+
"error": err.Error(),
330+
})
331+
return nil, err
332+
}
333+
334+
if err := d.Set("environment", envNameUnescaped); err != nil {
335+
return nil, err
336+
}
337+
338+
tflog.Info(ctx, "Imported repository environment deployment policy", map[string]any{
339+
"repository": repoName,
340+
"environment": envNameUnescaped,
341+
"policy_id": policyId,
342+
})
343+
344+
return []*schema.ResourceData{d}, nil
345+
}

0 commit comments

Comments
 (0)