Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions NGitLab/Models/ContainerExpirationPolicy.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using System;
using System.Text.Json.Serialization;

public class ContainerExpirationPolicy

Check failure on line 4 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

Symbol 'implicit constructor for 'ContainerExpirationPolicy'' is not part of the declared public API (https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)

Check failure on line 4 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

Symbol 'ContainerExpirationPolicy' is not part of the declared public API (https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)

Check failure on line 4 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

Declare type 'ContainerExpirationPolicy' in a namespace (https://github.com/meziantou/Meziantou.Analyzer/blob/main/docs/Rules/MA0047.md)
{
[JsonPropertyName("cadence")]
public string Cadence { get; set; }

Check failure on line 8 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

[JsonPropertyName("enabled")]
public bool Enabled { get; set; }

Check failure on line 11 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

[JsonPropertyName("keep_n")]
public long KeepN { get; set; }

Check failure on line 14 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

[JsonPropertyName("older_than")]
public string OlderThan { get; set; }

Check failure on line 17 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

[JsonPropertyName("name_regex")]
public string NameRegex { get; set; }

Check failure on line 20 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

[JsonPropertyName("name_regex_keep")]
public string NameRegexKeep { get; set; }

Check failure on line 23 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

[JsonPropertyName("next_run_at")]
public DateTime? NextRunAt { get; set; }
}

Check failure on line 26 in NGitLab/Models/ContainerExpirationPolicy.cs

View workflow job for this annotation

GitHub Actions / create_nuget

179 changes: 172 additions & 7 deletions NGitLab/Models/Project.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Diagnostics;
using System.Text.Json.Serialization;

Expand Down Expand Up @@ -29,14 +29,14 @@ public class Project
public bool JobEnabled { get; set; }

[JsonPropertyName("builds_access_level")]
public string BuildsAccessLevel { get; set; }
public RepositoryAccessLevel BuildsAccessLevel { get; set; }

[JsonPropertyName("snippets_enabled")]
[Obsolete("Deprecated by GitLab. Use SnippetsAccessLevel instead")]
public bool SnippetsEnabled { get; set; }

[JsonPropertyName("snippets_access_level")]
public string SnippetsAccessLevel { get; set; }
public RepositoryAccessLevel SnippetsAccessLevel { get; set; }

[JsonPropertyName("resolve_outdated_diff_discussions")]
public bool ResolveOutdatedDiffDiscussions { get; set; }
Expand Down Expand Up @@ -67,7 +67,7 @@ public class Project
public bool IssuesEnabled { get; set; }

[JsonPropertyName("issues_access_level")]
public string IssuesAccessLevel { get; set; }
public RepositoryAccessLevel IssuesAccessLevel { get; set; }

[JsonPropertyName("merge_pipelines_enabled")]
public bool MergePipelinesEnabled { get; set; }
Expand All @@ -77,7 +77,7 @@ public class Project
public bool MergeRequestsEnabled { get; set; }

[JsonPropertyName("merge_requests_access_level")]
public string MergeRequestsAccessLevel { get; set; }
public RepositoryAccessLevel MergeRequestsAccessLevel { get; set; }

[JsonPropertyName("merge_trains_enabled")]
public bool MergeTrainsEnabled { get; set; }
Expand All @@ -96,7 +96,7 @@ public class Project
public bool WikiEnabled { get; set; }

[JsonPropertyName("wiki_access_level")]
public string WikiAccessLevel { get; set; }
public RepositoryAccessLevel WikiAccessLevel { get; set; }

[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
Expand Down Expand Up @@ -220,11 +220,176 @@ public class Project
public ProjectPermissions Permissions { get; set; }

[JsonPropertyName("releases_access_level")]
public ReleasesAccessLevel ReleasesAccessLevel { get; set; }
public RepositoryAccessLevel ReleasesAccessLevel { get; set; }

[JsonPropertyName("requirements_access_level")]
public RepositoryAccessLevel RequirementsAccessLevel { get; set; }

[JsonPropertyName("mr_default_target_self")]
public bool? MrDefaultTargetSelf { get; set; }

[JsonPropertyName("ci_default_git_depth")]
public int? CiDefaultGitDepth { get; set; }

[JsonPropertyName("readme_url")]
public string ReadmeUrl { get; set; }

[JsonPropertyName("container_registry_image_prefix")]
public string ContainerRegistryImagePrefix { get; set; }

[JsonPropertyName("marked_for_deletion_at")]
public DateTime? MarkedForDeletionAt { get; set; }

[JsonPropertyName("marked_for_deletion_on")]
public DateTime? MarkedForDeletionOn { get; set; }

[JsonPropertyName("packages_enabled")]
public bool PackagesEnabled { get; set; }

[JsonPropertyName("container_expiration_policy")]
public ContainerExpirationPolicy ContainerExpirationPolicy { get; set; }

[JsonPropertyName("repository_object_format")]
public string RepositoryObjectFormat { get; set; }

[JsonPropertyName("service_desk_enabled")]
public bool ServiceDeskEnabled { get; set; }

[JsonPropertyName("service_desk_address")]
public string ServiceDeskAddress { get; set; }

[JsonPropertyName("can_create_merge_request_in")]
public bool CanCreateMergeRequestIn { get; set; }

[JsonPropertyName("pages_access_level")]
public RepositoryAccessLevel PagesAccessLevel { get; set; }

[JsonPropertyName("analytics_access_level")]
public RepositoryAccessLevel AnalyticsAccessLevel { get; set; }

[JsonPropertyName("container_registry_access_level")]
public RepositoryAccessLevel ContainerRegistryAccessLevel { get; set; }

[JsonPropertyName("security_and_compliance_access_level")]
public RepositoryAccessLevel SecurityAndComplianceAccessLevel { get; set; }

[JsonPropertyName("environments_access_level")]
public RepositoryAccessLevel EnvironmentsAccessLevel { get; set; }

[JsonPropertyName("feature_flags_access_level")]
public RepositoryAccessLevel FeatureFlagsAccessLevel { get; set; }

[JsonPropertyName("infrastructure_access_level")]
public RepositoryAccessLevel InfrastructureAccessLevel { get; set; }

[JsonPropertyName("monitor_access_level")]
public RepositoryAccessLevel MonitorAccessLevel { get; set; }

[JsonPropertyName("model_experiments_access_level")]
public RepositoryAccessLevel ModelExperimentsAccessLevel { get; set; }

[JsonPropertyName("model_registry_access_level")]
public RepositoryAccessLevel ModelRegistryAccessLevel { get; set; }

[JsonPropertyName("emails_disabled")]
public bool? EmailsDisabled { get; set; }

[JsonPropertyName("emails_enabled")]
public bool? EmailsEnabled { get; set; }

[JsonPropertyName("import_url")]
public string ImportUrl { get; set; }

[JsonPropertyName("import_type")]
public string ImportType { get; set; }

[JsonPropertyName("description_html")]
public string DescriptionHtml { get; set; }

[JsonPropertyName("updated_at")]
public DateTime UpdatedAt { get; set; }

[JsonPropertyName("ci_delete_pipelines_in_seconds")]
public long? CiDeletePipelinesInSeconds { get; set; }

[JsonPropertyName("ci_forward_deployment_enabled")]
public bool CiForwardDeploymentEnabled { get; set; }

[JsonPropertyName("ci_forward_deployment_rollback_allowed")]
public bool CiForwardDeploymentRollbackAllowed { get; set; }

[JsonPropertyName("ci_job_token_scope_enabled")]
public bool CiJobTokenScopeEnabled { get; set; }

[JsonPropertyName("ci_separated_caches")]
public bool CiSeparatedCaches { get; set; }

[JsonPropertyName("ci_allow_fork_pipelines_to_run_in_parent_project")]
public bool CiAllowForkPipelinesToRunInParentProject { get; set; }

[JsonPropertyName("ci_id_token_sub_claim_components")]
public string[] CiIdTokenSubClaimComponents { get; set; }

[JsonPropertyName("build_git_strategy")]
public string BuildGitStrategy { get; set; }

[JsonPropertyName("keep_latest_artifact")]
public bool KeepLatestArtifact { get; set; }

[JsonPropertyName("restrict_user_defined_variables")]
public bool RestrictUserDefinedVariables { get; set; }

[JsonPropertyName("ci_pipeline_variables_minimum_override_role")]
public string CiPipelineVariablesMinimumOverrideRole { get; set; }

[JsonPropertyName("runner_token_expiration_interval")]
public long? RunnerTokenExpirationInterval { get; set; }

[JsonPropertyName("auto_cancel_pending_pipelines")]
public string AutoCancelPendingPipelines { get; set; }

[JsonPropertyName("auto_devops_enabled")]
public bool AutoDevopsEnabled { get; set; }

[JsonPropertyName("auto_devops_deploy_strategy")]
public string AutoDevopsDeployStrategy { get; set; }

[JsonPropertyName("ci_push_repository_for_job_token_allowed")]
public bool CiPushRepositoryForJobTokenAllowed { get; set; }

[JsonPropertyName("ci_config_path")]
public string CiConfigPath { get; set; }

[JsonPropertyName("allow_merge_on_skipped_pipeline")]
public bool? AllowMergeOnSkippedPipeline { get; set; }

[JsonPropertyName("remove_source_branch_after_merge")]
public bool RemoveSourceBranchAfterMerge { get; set; }

[JsonPropertyName("merge_request_title_regex")]
public string MergeRequestTitleRegex { get; set; }

[JsonPropertyName("enforce_auth_checks_on_uploads")]
public bool EnforceAuthChecksOnUploads { get; set; }

[JsonPropertyName("suggestion_commit_message")]
public string SuggestionCommitMessage { get; set; }

[JsonPropertyName("merge_commit_template")]
public string MergeCommitTemplate { get; set; }

[JsonPropertyName("squash_commit_template")]
public string SquashCommitTemplate { get; set; }

[JsonPropertyName("issue_branch_template")]
public string IssueBranchTemplate { get; set; }

[JsonPropertyName("warn_about_potentially_unwanted_characters")]
public bool WarnAboutPotentiallyUnwantedCharacters { get; set; }

[JsonPropertyName("autoclose_referenced_issues")]
public bool AutocloseReferencedIssues { get; set; }

[JsonPropertyName("max_artifacts_size")]
public long? MaxArtifactsSize { get; set; }
}
3 changes: 2 additions & 1 deletion NGitLab/Models/RepositoryAccessLevel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ public enum RepositoryAccessLevel
{
Disabled,
Private,
Enabled,
Enabled,
Public // Only valid for pages_access_level
}
Loading