Loading projects.go +3 −0 Original line number Diff line number Diff line Loading @@ -497,6 +497,7 @@ type Project struct { ProtectMergeRequestPipelines bool `json:"protect_merge_request_pipelines"` MergeRequestTitleRegex string `json:"merge_request_title_regex"` MergeRequestTitleRegexDescription string `json:"merge_request_title_regex_description"` CICDCatalogEnabled bool `json:"cicd_catalog_enabled"` // Deprecated: Use PackageRegistryAccessLevel instead. PackagesEnabled bool `json:"packages_enabled"` // Deprecated: use Topics instead Loading Loading @@ -871,6 +872,7 @@ type CreateProjectOptions struct { BuildTimeout *int64 `url:"build_timeout,omitempty" json:"build_timeout,omitempty"` BuildsAccessLevel *AccessControlValue `url:"builds_access_level,omitempty" json:"builds_access_level,omitempty"` CIConfigPath *string `url:"ci_config_path,omitempty" json:"ci_config_path,omitempty"` CICDCatalogEnabled *bool `url:"cicd_catalog_enabled,omitempty" json:"cicd_catalog_enabled,omitempty"` ContainerExpirationPolicyAttributes *ContainerExpirationPolicyAttributes `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"` ContainerRegistryAccessLevel *AccessControlValue `url:"container_registry_access_level,omitempty" json:"container_registry_access_level,omitempty"` PackageRegistryAccessLevel *AccessControlValue `url:"package_registry_access_level,omitempty" json:"package_registry_access_level,omitempty"` Loading Loading @@ -1075,6 +1077,7 @@ type EditProjectOptions struct { CISeparatedCaches *bool `url:"ci_separated_caches,omitempty" json:"ci_separated_caches,omitempty"` CIRestrictPipelineCancellationRole *AccessControlValue `url:"ci_restrict_pipeline_cancellation_role,omitempty" json:"ci_restrict_pipeline_cancellation_role,omitempty"` CIPipelineVariablesMinimumOverrideRole *CIPipelineVariablesMinimumOverrideRoleValue `url:"ci_pipeline_variables_minimum_override_role,omitempty" json:"ci_pipeline_variables_minimum_override_role,omitempty"` CICDCatalogEnabled *bool `url:"cicd_catalog_enabled,omitempty" json:"cicd_catalog_enabled,omitempty"` ContainerExpirationPolicyAttributes *ContainerExpirationPolicyAttributes `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"` ContainerRegistryAccessLevel *AccessControlValue `url:"container_registry_access_level,omitempty" json:"container_registry_access_level,omitempty"` PackageRegistryAccessLevel *AccessControlValue `url:"package_registry_access_level,omitempty" json:"package_registry_access_level,omitempty"` Loading projects_test.go +12 −4 Original line number Diff line number Diff line Loading @@ -348,6 +348,7 @@ func TestEditProject(t *testing.T) { CIRestrictPipelineCancellationRole: Ptr(developerRole), CIPipelineVariablesMinimumOverrideRole: Ptr(developerPipelineVariablesRole), MRDefaultTitleTemplate: Ptr("Default MR title"), CICDCatalogEnabled: Ptr(true), } mux.HandleFunc("/api/v4/projects/1", func(w http.ResponseWriter, r *http.Request) { Loading @@ -357,6 +358,7 @@ func TestEditProject(t *testing.T) { "ci_restrict_pipeline_cancellation_role": "developer", "ci_pipeline_variables_minimum_override_role": "developer", "mr_default_title_template": "Default MR title", "cicd_catalog_enabled": true, }) // Print the start of the mock example from https://docs.gitlab.com/api/projects/#edit-a-project Loading @@ -375,7 +377,8 @@ func TestEditProject(t *testing.T) { "ci_restrict_pipeline_cancellation_role": "developer", "ci_pipeline_variables_minimum_override_role": "developer", "ci_delete_pipelines_in_seconds": 14, "mr_default_title_template": "Default MR title" "mr_default_title_template": "Default MR title", "cicd_catalog_enabled": true }`) }) Loading @@ -386,6 +389,7 @@ func TestEditProject(t *testing.T) { assert.Equal(t, developerPipelineVariablesRole, project.CIPipelineVariablesMinimumOverrideRole) assert.Equal(t, int64(14), project.CIDeletePipelinesInSeconds) assert.Equal(t, "Default MR title", project.MRDefaultTitleTemplate) assert.True(t, project.CICDCatalogEnabled) } func TestEditProjectWithReviewerAssignmentStrategy(t *testing.T) { Loading Loading @@ -469,7 +473,8 @@ func TestGetProjectByID(t *testing.T) { "package_registry_access_level": "public", "build_coverage_regex": "Total.*([0-9]{1,3})%", "ci_delete_pipelines_in_seconds": 14, "resource_group_default_process_mode": "oldest_first" "resource_group_default_process_mode": "oldest_first", "cicd_catalog_enabled": true }`) }) Loading @@ -491,6 +496,7 @@ func TestGetProjectByID(t *testing.T) { CIPipelineVariablesMinimumOverrideRole: "no_one_allowed", CIDeletePipelinesInSeconds: 14, ResourceGroupDefaultProcessMode: OldestFirst, CICDCatalogEnabled: true, } project, resp, err := client.Projects.GetProject(1, nil) Loading Loading @@ -568,21 +574,23 @@ func TestCreateProject(t *testing.T) { "name": "n", "merge_method": "rebase_merge", "mr_default_title_template": "Default MR title", "cicd_catalog_enabled": true, }) fmt.Fprint(w, `{"id":1,"mr_default_title_template":"Default MR title"}`) fmt.Fprint(w, `{"id":1,"mr_default_title_template":"Default MR title","cicd_catalog_enabled":true}`) }) opt := &CreateProjectOptions{ Name: Ptr("n"), MergeMethod: Ptr(RebaseMerge), MRDefaultTitleTemplate: Ptr("Default MR title"), CICDCatalogEnabled: Ptr(true), } project, resp, err := client.Projects.CreateProject(opt) assert.NoError(t, err) assert.NotNil(t, resp) want := &Project{ID: 1, MRDefaultTitleTemplate: "Default MR title"} want := &Project{ID: 1, MRDefaultTitleTemplate: "Default MR title", CICDCatalogEnabled: true} assert.Equal(t, want, project) } Loading Loading
projects.go +3 −0 Original line number Diff line number Diff line Loading @@ -497,6 +497,7 @@ type Project struct { ProtectMergeRequestPipelines bool `json:"protect_merge_request_pipelines"` MergeRequestTitleRegex string `json:"merge_request_title_regex"` MergeRequestTitleRegexDescription string `json:"merge_request_title_regex_description"` CICDCatalogEnabled bool `json:"cicd_catalog_enabled"` // Deprecated: Use PackageRegistryAccessLevel instead. PackagesEnabled bool `json:"packages_enabled"` // Deprecated: use Topics instead Loading Loading @@ -871,6 +872,7 @@ type CreateProjectOptions struct { BuildTimeout *int64 `url:"build_timeout,omitempty" json:"build_timeout,omitempty"` BuildsAccessLevel *AccessControlValue `url:"builds_access_level,omitempty" json:"builds_access_level,omitempty"` CIConfigPath *string `url:"ci_config_path,omitempty" json:"ci_config_path,omitempty"` CICDCatalogEnabled *bool `url:"cicd_catalog_enabled,omitempty" json:"cicd_catalog_enabled,omitempty"` ContainerExpirationPolicyAttributes *ContainerExpirationPolicyAttributes `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"` ContainerRegistryAccessLevel *AccessControlValue `url:"container_registry_access_level,omitempty" json:"container_registry_access_level,omitempty"` PackageRegistryAccessLevel *AccessControlValue `url:"package_registry_access_level,omitempty" json:"package_registry_access_level,omitempty"` Loading Loading @@ -1075,6 +1077,7 @@ type EditProjectOptions struct { CISeparatedCaches *bool `url:"ci_separated_caches,omitempty" json:"ci_separated_caches,omitempty"` CIRestrictPipelineCancellationRole *AccessControlValue `url:"ci_restrict_pipeline_cancellation_role,omitempty" json:"ci_restrict_pipeline_cancellation_role,omitempty"` CIPipelineVariablesMinimumOverrideRole *CIPipelineVariablesMinimumOverrideRoleValue `url:"ci_pipeline_variables_minimum_override_role,omitempty" json:"ci_pipeline_variables_minimum_override_role,omitempty"` CICDCatalogEnabled *bool `url:"cicd_catalog_enabled,omitempty" json:"cicd_catalog_enabled,omitempty"` ContainerExpirationPolicyAttributes *ContainerExpirationPolicyAttributes `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"` ContainerRegistryAccessLevel *AccessControlValue `url:"container_registry_access_level,omitempty" json:"container_registry_access_level,omitempty"` PackageRegistryAccessLevel *AccessControlValue `url:"package_registry_access_level,omitempty" json:"package_registry_access_level,omitempty"` Loading
projects_test.go +12 −4 Original line number Diff line number Diff line Loading @@ -348,6 +348,7 @@ func TestEditProject(t *testing.T) { CIRestrictPipelineCancellationRole: Ptr(developerRole), CIPipelineVariablesMinimumOverrideRole: Ptr(developerPipelineVariablesRole), MRDefaultTitleTemplate: Ptr("Default MR title"), CICDCatalogEnabled: Ptr(true), } mux.HandleFunc("/api/v4/projects/1", func(w http.ResponseWriter, r *http.Request) { Loading @@ -357,6 +358,7 @@ func TestEditProject(t *testing.T) { "ci_restrict_pipeline_cancellation_role": "developer", "ci_pipeline_variables_minimum_override_role": "developer", "mr_default_title_template": "Default MR title", "cicd_catalog_enabled": true, }) // Print the start of the mock example from https://docs.gitlab.com/api/projects/#edit-a-project Loading @@ -375,7 +377,8 @@ func TestEditProject(t *testing.T) { "ci_restrict_pipeline_cancellation_role": "developer", "ci_pipeline_variables_minimum_override_role": "developer", "ci_delete_pipelines_in_seconds": 14, "mr_default_title_template": "Default MR title" "mr_default_title_template": "Default MR title", "cicd_catalog_enabled": true }`) }) Loading @@ -386,6 +389,7 @@ func TestEditProject(t *testing.T) { assert.Equal(t, developerPipelineVariablesRole, project.CIPipelineVariablesMinimumOverrideRole) assert.Equal(t, int64(14), project.CIDeletePipelinesInSeconds) assert.Equal(t, "Default MR title", project.MRDefaultTitleTemplate) assert.True(t, project.CICDCatalogEnabled) } func TestEditProjectWithReviewerAssignmentStrategy(t *testing.T) { Loading Loading @@ -469,7 +473,8 @@ func TestGetProjectByID(t *testing.T) { "package_registry_access_level": "public", "build_coverage_regex": "Total.*([0-9]{1,3})%", "ci_delete_pipelines_in_seconds": 14, "resource_group_default_process_mode": "oldest_first" "resource_group_default_process_mode": "oldest_first", "cicd_catalog_enabled": true }`) }) Loading @@ -491,6 +496,7 @@ func TestGetProjectByID(t *testing.T) { CIPipelineVariablesMinimumOverrideRole: "no_one_allowed", CIDeletePipelinesInSeconds: 14, ResourceGroupDefaultProcessMode: OldestFirst, CICDCatalogEnabled: true, } project, resp, err := client.Projects.GetProject(1, nil) Loading Loading @@ -568,21 +574,23 @@ func TestCreateProject(t *testing.T) { "name": "n", "merge_method": "rebase_merge", "mr_default_title_template": "Default MR title", "cicd_catalog_enabled": true, }) fmt.Fprint(w, `{"id":1,"mr_default_title_template":"Default MR title"}`) fmt.Fprint(w, `{"id":1,"mr_default_title_template":"Default MR title","cicd_catalog_enabled":true}`) }) opt := &CreateProjectOptions{ Name: Ptr("n"), MergeMethod: Ptr(RebaseMerge), MRDefaultTitleTemplate: Ptr("Default MR title"), CICDCatalogEnabled: Ptr(true), } project, resp, err := client.Projects.CreateProject(opt) assert.NoError(t, err) assert.NotNil(t, resp) want := &Project{ID: 1, MRDefaultTitleTemplate: "Default MR title"} want := &Project{ID: 1, MRDefaultTitleTemplate: "Default MR title", CICDCatalogEnabled: true} assert.Equal(t, want, project) } Loading