in internal/provider/sdk/resource_gitlab_project.go [896:1018]
func resourceGitlabProjectSetToState(ctx context.Context, client *gitlab.Client, d *schema.ResourceData, project *gitlab.Project) error {
d.SetId(fmt.Sprintf("%d", project.ID))
d.Set("name", project.Name)
d.Set("path", project.Path)
d.Set("path_with_namespace", project.PathWithNamespace)
d.Set("description", project.Description)
d.Set("default_branch", project.DefaultBranch)
d.Set("request_access_enabled", project.RequestAccessEnabled)
d.Set("issues_enabled", project.IssuesEnabled) //nolint:staticcheck
d.Set("merge_requests_enabled", project.MergeRequestsEnabled) //nolint:staticcheck
d.Set("pipelines_enabled", project.JobsEnabled) //nolint:staticcheck
d.Set("approvals_before_merge", project.ApprovalsBeforeMerge) //nolint:staticcheck
d.Set("wiki_enabled", project.WikiEnabled) //nolint:staticcheck
d.Set("snippets_enabled", project.SnippetsEnabled) //nolint:staticcheck
d.Set("container_registry_enabled", project.ContainerRegistryEnabled) //nolint:staticcheck
d.Set("lfs_enabled", project.LFSEnabled)
d.Set("visibility_level", string(project.Visibility))
d.Set("merge_method", string(project.MergeMethod))
d.Set("only_allow_merge_if_pipeline_succeeds", project.OnlyAllowMergeIfPipelineSucceeds)
d.Set("only_allow_merge_if_all_discussions_are_resolved", project.OnlyAllowMergeIfAllDiscussionsAreResolved)
d.Set("allow_merge_on_skipped_pipeline", project.AllowMergeOnSkippedPipeline)
d.Set("allow_pipeline_trigger_approve_deployment", project.AllowPipelineTriggerApproveDeployment)
d.Set("restrict_user_defined_variables", project.RestrictUserDefinedVariables) //nolint:staticcheck
d.Set("namespace_id", project.Namespace.ID)
d.Set("ssh_url_to_repo", project.SSHURLToRepo)
d.Set("http_url_to_repo", project.HTTPURLToRepo)
d.Set("web_url", project.WebURL)
d.Set("runners_token", project.RunnersToken)
d.Set("shared_runners_enabled", project.SharedRunnersEnabled)
d.Set("group_runners_enabled", project.GroupRunnersEnabled)
if err := d.Set("tags", project.TagList); err != nil { //nolint:staticcheck
return err
}
d.Set("empty_repo", project.EmptyRepo)
d.Set("archived", project.Archived)
d.Set("squash_option", project.SquashOption)
d.Set("remove_source_branch_after_merge", project.RemoveSourceBranchAfterMerge)
d.Set("printing_merge_request_link_enabled", project.PrintingMergeRequestLinkEnabled)
d.Set("packages_enabled", project.PackagesEnabled)
d.Set("pages_access_level", string(project.PagesAccessLevel))
d.Set("mirror", project.Mirror)
d.Set("mirror_trigger_builds", project.MirrorTriggerBuilds)
d.Set("mirror_overwrites_diverged_branches", project.MirrorOverwritesDivergedBranches)
d.Set("only_mirror_protected_branches", project.OnlyMirrorProtectedBranches)
d.Set("import_url", project.ImportURL)
d.Set("issues_template", project.IssuesTemplate)
d.Set("merge_requests_template", project.MergeRequestsTemplate)
d.Set("ci_config_path", project.CIConfigPath)
if err := d.Set("ci_id_token_sub_claim_components", project.CIIdTokenSubClaimComponents); err != nil {
return fmt.Errorf("error setting ci_id_token_sub_claim_components: %v", err)
}
d.Set("ci_forward_deployment_enabled", project.CIForwardDeploymentEnabled)
d.Set("ci_separated_caches", project.CISeperateCache)
d.Set("ci_restrict_pipeline_cancellation_role", project.CIRestrictPipelineCancellationRole)
d.Set("ci_pipeline_variables_minimum_override_role", project.CIPipelineVariablesMinimumOverrideRole)
d.Set("keep_latest_artifact", project.KeepLatestArtifact)
d.Set("merge_pipelines_enabled", project.MergePipelinesEnabled)
d.Set("merge_trains_enabled", project.MergeTrainsEnabled)
d.Set("resolve_outdated_diff_discussions", project.ResolveOutdatedDiffDiscussions)
d.Set("analytics_access_level", string(project.AnalyticsAccessLevel))
d.Set("auto_cancel_pending_pipelines", project.AutoCancelPendingPipelines)
d.Set("auto_devops_deploy_strategy", project.AutoDevopsDeployStrategy)
d.Set("auto_devops_enabled", project.AutoDevopsEnabled)
d.Set("autoclose_referenced_issues", project.AutocloseReferencedIssues)
d.Set("build_git_strategy", project.BuildGitStrategy)
d.Set("build_timeout", project.BuildTimeout)
d.Set("builds_access_level", string(project.BuildsAccessLevel))
if err := d.Set("container_expiration_policy", flattenContainerExpirationPolicy(project.ContainerExpirationPolicy)); err != nil {
return fmt.Errorf("error setting container_expiration_policy: %v", err)
}
d.Set("container_registry_access_level", string(project.ContainerRegistryAccessLevel))
d.Set("emails_enabled", project.EmailsEnabled)
d.Set("external_authorization_classification_label", project.ExternalAuthorizationClassificationLabel)
d.Set("forking_access_level", string(project.ForkingAccessLevel))
d.Set("issues_access_level", string(project.IssuesAccessLevel))
d.Set("merge_requests_access_level", string(project.MergeRequestsAccessLevel))
// First, try to set the public_jobs. If it's not available, fall back to public_builds.
// nolint:staticcheck // SA1019 ignore deprecated GetOkExists
// lintignore: XR001 // TODO: replace with alternative for GetOkExists
if err := d.Set("public_jobs", project.PublicJobs); err != nil {
if err := d.Set("public_builds", project.PublicJobs); err != nil {
return fmt.Errorf("error setting public_jobs: %v", err)
}
}
d.Set("repository_access_level", string(project.RepositoryAccessLevel))
d.Set("repository_storage", project.RepositoryStorage)
d.Set("requirements_access_level", string(project.RequirementsAccessLevel))
d.Set("security_and_compliance_access_level", string(project.SecurityAndComplianceAccessLevel))
d.Set("snippets_access_level", string(project.SnippetsAccessLevel))
d.Set("suggestion_commit_message", project.SuggestionCommitMessage)
if err := d.Set("topics", project.Topics); err != nil {
return fmt.Errorf("error setting topics: %v", err)
}
d.Set("wiki_access_level", string(project.WikiAccessLevel))
d.Set("squash_commit_template", project.SquashCommitTemplate)
d.Set("merge_commit_template", project.MergeCommitTemplate)
d.Set("ci_default_git_depth", project.CIDefaultGitDepth)
d.Set("ci_delete_pipelines_in_seconds", project.CIDeletePipelinesInSeconds)
d.Set("avatar_url", project.AvatarURL)
if project.ForkedFromProject != nil {
d.Set("forked_from_project_id", project.ForkedFromProject.ID)
} else {
d.Set("forked_from_project_id", nil)
}
d.Set("mr_default_target_self", project.MergeRequestDefaultTargetSelf)
d.Set("releases_access_level", string(project.ReleasesAccessLevel))
d.Set("environments_access_level", string(project.EnvironmentsAccessLevel))
d.Set("feature_flags_access_level", string(project.FeatureFlagsAccessLevel))
d.Set("infrastructure_access_level", string(project.InfrastructureAccessLevel))
d.Set("monitor_access_level", string(project.MonitorAccessLevel))
d.Set("pre_receive_secret_detection_enabled", project.PreReceiveSecretDetectionEnabled)
d.Set("model_experiments_access_level", string(project.ModelExperimentsAccessLevel))
d.Set("model_registry_access_level", string(project.ModelRegistryAccessLevel))
d.Set("prevent_merge_without_jira_issue", project.PreventMergeWithoutJiraIssue)
return nil
}