Skip to content
Snippets Groups Projects
Commit 20bcd68f authored by vincent.steinman's avatar vincent.steinman Committed by michael.minelli
Browse files

fix copy issue

parent b5b61aa3
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 465 deletions
enum ExerciseCheckerError {
EXERCISE_ASSIGNMENT_GET_ERROR = 200,
DOCKER_COMPOSE_RUN_ERROR = 201,
DOCKER_COMPOSE_LOGS_ERROR = 202,
DOCKER_COMPOSE_DOWN_ERROR = 203,
EXERCISE_RESULTS_FOLDER_TOO_BIG = 204,
EXERCISE_RESULTS_FILE_SCHEMA_NOT_VALID = 206,
UPLOAD = 207,
DOCKER_COMPOSE_REMOVE_DANGLING_ERROR = 208
}
/**
* Codes that are unusable for historic reasons:
* - 205: EXERCISE_RESULTS_FILE_NOT_FOUND => From the version 2.2.0 this error is not possible anymore because the results file is now optional
*/
export default ExerciseCheckerError;
\ No newline at end of file
import Icon from '../Icon';
import { z } from 'zod';
const ExerciseResultsFile = z.object({
success: z.boolean().optional(),
containerExitCode: z.number().optional(),
successfulTests: z.number().optional(),
failedTests : z.number().optional(),
successfulTestsList: z.array(z.string()).optional(),
failedTestsList : z.array(z.string()).optional(),
otherInformations: z.array(z.object({
name : z.string(),
description : z.string().optional(),
icon : z.enum(Object.keys(Icon) as [ firstKey: string, ...otherKeys: Array<string> ]).optional(),
itemsOrInformations: z.union([ z.array(z.string()), z.string() ])
}))
.optional()
}).strict().transform(value => {
if ( value.successfulTests === undefined && value.successfulTestsList !== undefined ) {
value.successfulTests = value.successfulTestsList.length;
}
if ( value.failedTests === undefined && value.failedTestsList !== undefined ) {
value.failedTests = value.failedTestsList.length;
}
return value;
});
type ExerciseResultsFile = z.infer<typeof ExerciseResultsFile>;
export default ExerciseResultsFile;
\ No newline at end of file
import { z } from 'zod';
const ImmutableFileDescriptor = z.object({
description: z.string().optional(),
path : z.string(),
isDirectory: z.boolean().optional()
});
type ImmutableFileDescriptor = z.infer<typeof ImmutableFileDescriptor>;
export default ImmutableFileDescriptor;
\ No newline at end of file
enum GitlabAccessLevel {
GUEST = 10,
REPORTER = 20,
DEVELOPER = 30,
MAINTAINER = 40,
OWNER = 50,
ADMIN = 60
}
export default GitlabAccessLevel;
interface GitlabCommit {
id: string;
short_id: string;
created_at: string;
parent_ids: Array<string>;
title: string;
message: string;
author_name: string;
author_email: string;
authored_date: string;
committer_name: string;
committer_email: string;
committed_date: string;
}
export default GitlabCommit;
\ No newline at end of file
interface GitlabFile {
file_name: string,
file_path: string,
size: number,
encoding: string,
content_sha256: string,
ref: string,
blob_id: string,
commit_id: string,
last_commit_id: string,
execute_filemode: boolean,
content: string,
}
export default GitlabFile;
\ No newline at end of file
interface GitlabGroup {
group_id: number,
group_name: string,
group_full_path: string,
group_access_level: number,
expires_at: string
}
export default GitlabGroup;
\ No newline at end of file
import GitlabUser from './GitlabUser';
interface GitlabMember extends GitlabUser {
access_level: number,
created_at: string,
created_by: GitlabUser,
expires_at: string | null
}
export default GitlabMember;
\ No newline at end of file
interface GitlabMilestone {
id: number;
iid: number;
project_id: number;
title: string;
description: string;
state: string;
created_at: string;
updated_at: string;
due_date: string;
start_date: string;
web_url: string;
issue_stats: {
total: number; closed: number;
};
}
export default GitlabMilestone;
\ No newline at end of file
interface GitlabNamespace {
id: number,
name: string,
path: string,
kind: string,
full_path: string,
parent_id: number,
avatar_url: string,
web_url: string
}
export default GitlabNamespace;
\ No newline at end of file
import GitlabPipelineStatus from './GitlabPipelineStatus';
import GitlabPipelineSource from './GitlabPipelineSource';
import GitlabUser from './GitlabUser';
interface GitlabPipeline {
id: number,
iid: number,
project_id: number,
status: GitlabPipelineStatus,
source: GitlabPipelineSource,
ref: string,
sha: string,
before_sha: string,
tag: boolean,
name: string,
yaml_errors: string | null,
user: GitlabUser,
web_url: string,
created_at: string,
updated_at: string,
started_at: string | null,
finished_at: string | null,
committed_at: string | null,
duration: number | null,
queued_duration: number | null,
coverage: string | null,
}
export default GitlabPipeline;
\ No newline at end of file
enum GitlabPipelineSource {
PUSH = 'push',
WEB = 'web',
TRIGGER = 'trigger',
SCHEDULE = 'schedule',
API = 'api',
EXTERNAL = 'external',
PIPELINE = 'pipeline',
CHAT = 'chat',
WEBIDE = 'webide',
MERGE_REQUEST = 'merge_request_event',
EXTERNAL_PULL_REQUEST = 'external_pull_request_event',
PARENT_PIPELINE = 'parent_pipeline',
ON_DEMAND_DAST_SCAN = 'ondemand_dast_scan',
ON_DEMAND_DAST_VALIDATION = 'ondemand_dast_validation',
}
export default GitlabPipelineSource;
enum GitlabPipelineStatus {
CREATED = 'created',
WAITING_FOR_RESOURCE = 'waiting_for_resource',
PREPARING = 'preparing',
PENDING = 'pending',
RUNNING = 'running',
SUCCESS = 'success',
FAILED = 'failed',
CANCELED = 'canceled',
SKIPPED = 'skipped',
MANUAL = 'manual',
SCHEDULED = 'scheduled'
}
export default GitlabPipelineStatus;
import GitlabUser from './GitlabUser';
interface GitlabProfile extends GitlabUser {
created_at: string,
bio: string,
location: string,
public_email: string,
skype: string,
linkedin: string,
twitter: string,
discord: string,
website_url: string,
organization: string,
job_title: string,
pronouns: string,
bot: boolean,
work_information: string,
local_time: string,
last_sign_in_at: string,
confirmed_at: string,
last_activity_on: string,
email: string,
theme_id: number,
color_scheme_id: number,
projects_limit: number,
current_sign_in_at: string,
identities: Array<{
provider: string, extern_uid: string
}>,
can_create_group: boolean,
can_create_project: boolean,
two_factor_enabled: boolean,
external: boolean,
private_profile: boolean,
commit_email: string
}
export default GitlabProfile;
\ No newline at end of file
import GitlabUser from './GitlabUser';
import GitlabCommit from './GitlabCommit';
import GitlabMilestone from './GitlabMilestone';
interface GitlabRelease {
tag_name: string;
description: string;
created_at: string;
released_at: string;
author: GitlabUser;
commit: GitlabCommit;
milestones: Array<GitlabMilestone>;
commit_path: string;
tag_path: string;
assets: {
count: number; sources: Array<{
format: string; url: string;
}>; links: Array<{
id: number; name: string; url: string; link_type: string;
}>; evidence_file_path: string;
};
evidences: Array<{
sha: string; filepath: string; collected_at: string;
}>;
}
export default GitlabRelease;
\ No newline at end of file
import GitlabGroup from './GitlabGroup';
import GitlabNamespace from './GitlabNamespace';
interface GitlabRepository {
id: number,
description: string,
name: string,
name_with_namespace: string,
path: string,
path_with_namespace: string,
created_at: string,
default_branch: string,
tag_list: Array<string>,
topics: Array<string>,
ssh_url_to_repo: string,
http_url_to_repo: string,
web_url: string,
readme_url: string,
forks_count: number,
avatar_url: string,
star_count: number,
last_activity_at: string,
namespace: GitlabNamespace,
_links: {
self: string, issues: string, merge_requests: string, repo_branches: string, labels: string, events: string, members: string, cluster_agents: string
},
packages_enabled: boolean,
empty_repo: boolean,
archived: boolean,
visibility: string,
resolve_outdated_diff_discussions: boolean,
container_expiration_policy: {
cadence: string, enabled: boolean, keep_n: number, older_than: string, name_regex: string, name_regex_keep: string, next_run_at: string
},
issues_enabled: boolean,
merge_requests_enabled: boolean,
wiki_enabled: boolean,
jobs_enabled: boolean,
snippets_enabled: boolean,
container_registry_enabled: boolean,
service_desk_enabled: boolean,
service_desk_address: string,
can_create_merge_request_in: boolean,
issues_access_level: string,
repository_access_level: string,
merge_requests_access_level: string,
forking_access_level: string,
wiki_access_level: string,
builds_access_level: string,
snippets_access_level: string,
pages_access_level: string,
operations_access_level: string,
analytics_access_level: string,
container_registry_access_level: string,
security_and_compliance_access_level: string,
releases_access_level: string,
environments_access_level: string,
feature_flags_access_level: string,
infrastructure_access_level: string,
monitor_access_level: string,
emails_disabled: boolean,
shared_runners_enabled: boolean,
lfs_enabled: boolean,
creator_id: number,
import_url: string,
import_type: string,
import_status: string,
import_error: string,
open_issues_count: number,
runners_token: string,
ci_default_git_depth: number,
ci_forward_deployment_enabled: boolean,
ci_job_token_scope_enabled: boolean,
ci_separated_caches: boolean,
ci_opt_in_jwt: boolean,
ci_allow_fork_pipelines_to_run_in_parent_project: boolean,
public_jobs: boolean,
build_git_strategy: string,
build_timeout: number,
auto_cancel_pending_pipelines: string,
ci_config_path: string,
shared_with_groups: Array<GitlabGroup>,
only_allow_merge_if_pipeline_succeeds: boolean,
allow_merge_on_skipped_pipeline: boolean,
restrict_user_defined_variables: boolean,
request_access_enabled: boolean,
only_allow_merge_if_all_discussions_are_resolved: boolean,
remove_source_branch_after_merge: boolean,
printing_merge_request_link_enabled: boolean,
merge_method: string,
squash_option: string,
enforce_auth_checks_on_uploads: boolean,
suggestion_commit_message: string,
merge_commit_template: string,
squash_commit_template: string,
issue_branch_template: string,
auto_devops_enabled: boolean,
auto_devops_deploy_strategy: string,
autoclose_referenced_issues: boolean,
keep_latest_artifact: boolean,
runner_token_expiration_interval: number,
}
export default GitlabRepository;
\ No newline at end of file
enum GitlabRoute {
NOTIFICATION_SETTINGS = '/notification_settings',
PROFILE_GET = '/user',
USERS_GET = '/users',
REPOSITORY_GET = '/projects/{{id}}',
REPOSITORY_CREATE = '/projects', // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
REPOSITORY_DELETE = '/projects/{{id}}', // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
REPOSITORY_EDIT = '/projects/{{id}}',
REPOSITORY_FORK = '/projects/{{id}}/fork',
REPOSITORY_MEMBER_ADD = '/projects/{{id}}/members',
REPOSITORY_MEMBERS_GET = '/projects/{{id}}/members/all',
REPOSITORY_RELEASES_GET = '/projects/{{id}}/releases',
REPOSITORY_BADGES_ADD = '/projects/{{id}}/badges',
REPOSITORY_VARIABLES_ADD = '/projects/{{id}}/variables',
REPOSITORY_BRANCHES_PROTECT = '/projects/{{id}}/protected_branches',
REPOSITORY_TREE = '/projects/{{id}}/repository/tree',
REPOSITORY_FILE = '/projects/{{id}}/repository/files/{{filePath}}',
REPOSITORY_PIPELINES = '/projects/{{id}}/pipelines',
}
export default GitlabRoute;
\ No newline at end of file
interface GitlabToken {
access_token: string;
token_type: string;
expires_in: number;
refresh_token: string;
scope: string;
created_at: number;
}
export default GitlabToken;
\ No newline at end of file
import GitlabTreeFileType from './GitlabTreeFileType';
interface GitlabTreeFile {
id: number,
name: string,
type: GitlabTreeFileType,
path: string,
mode: string
}
export default GitlabTreeFile;
\ No newline at end of file
enum GitlabTreeFileType {
TREE = 'tree',
BLOB = 'blob',
COMMIT = 'commit'
}
export default GitlabTreeFileType;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment