gitlab

GitLab APIv4 OCaml library
IN THIS PACKAGE
Module Gitlab_t
type wiki_attributes = {
wiki_attributes_title : string;
wiki_attributes_content : string;
wiki_attributes_format : string;
wiki_attributes_slug : string;
wiki_attributes_url : string;
wiki_attributes_action : string;
wiki_attributes_diff_url : string;
}
type wiki = {
wiki_web_url : string;
wiki_git_ssh_url : string;
wiki_git_http_url : string;
wiki_path_with_namespace : string;
wiki_default_branch : string;
}
type user_short = {
user_short_id : int;
user_short_name : string;
user_short_username : string;
user_short_state : string option;
user_short_avatar_url : string;
user_short_web_url : string option;
user_short_email : string option;
}
type project_webhook = {
project_webhook_id : int;
project_webhook_name : string;
project_webhook_description : string option;
project_webhook_web_url : string;
project_webhook_avatar_url : string option;
project_webhook_ci_config_path : string option;
project_webhook_git_ssh_url : string;
project_webhook_git_http_url : string;
project_webhook_namespace : string;
project_webhook_path_with_namespace : string;
project_webhook_visibility_level : int;
project_webhook_default_branch : string;
project_webhook_homepage : string option;
project_webhook_url : string option;
project_webhook_ssh_url : string option;
project_webhook_http_url : string option;
}
type wiki_page_webhook = {
wiki_page_webhook_user : user_short;
wiki_page_webhook_project : project_webhook;
wiki_page_webhook_wiki : wiki;
wiki_page_webhook_attributes : wiki_attributes;
}
type wiki_page = {
wiki_page_format : string;
wiki_page_slug : string;
wiki_page_title : string;
}
type updated_by_id = {
update_by_id_previous : int option;
update_by_id_current : int;
}
type updated_at = {
updated_at_previous : string;
updated_at_current : string;
}
type state = [
| `Opened
| `Closed
| `Locked
| `Merged
]
type source = {
source_format : string;
source_url : string;
}
type repository = {
repository_name : string;
repository_url : string;
repository_description : string;
repository_homepage : string;
repository_git_http_url : string option;
repository_git_ssh_url : string option;
repository_visibility_level : int option;
}
type date_time = Gitlab_json.DateTime.t
type author = {
author_name : string;
author_email : string;
}
type commit_short_webhook = {
commit_short_webhook_id : string;
commit_short_webhook_message : string;
commit_short_webhook_title : string;
commit_short_webhook_timestamp : string;
commit_short_webhook_url : string;
commit_short_webhook_author : author;
}
type assets = {
assets_count : int;
assets_sources : source list;
}
type release_webhook = {
release_webhook_id : int;
release_webhook_created_at : date_time;
release_webhook_description : string;
release_webhook_name : string;
release_webhook_released_at : string;
release_webhook_tag : string;
release_webhook_project : project_webhook;
release_webhook_url : string;
release_webhook_action : string;
release_webhook_assets : assets;
release_webhook_commit : commit_short_webhook;
}
type commit_webhook = {
commit_webhook_id : string;
commit_webhook_message : string;
commit_webhook_title : string;
commit_webhook_timestamp : string;
commit_webhook_url : string;
commit_webhook_author : author;
commit_webhook_added : string list;
commit_webhook_modified : string list;
commit_webhook_removed : string list;
}
type commits_webhook = commit_webhook list
type push_webhook = {
push_webhook_event_name : string;
push_webhook_before : string;
push_webhook_after : string;
push_webhook_ref : string;
push_webhook_checkout_sha : string;
push_webhook_message : string option;
push_webhook_user_id : int;
push_webhook_user_name : string;
push_webhook_user_username : string;
push_webhook_user_email : string;
push_webhook_user_avatar : string;
push_webhook_project_id : int;
push_webhook_project : project_webhook;
push_webhook_commits : commits_webhook;
push_webhook_total_commits_count : int;
push_webhook_repository : repository;
}
type date = Gitlab_json.Date.t
type note_issue = {
note_issue_author_id : int;
note_issue_closed_at : string option;
note_issue_confidential : bool;
note_issue_created_at : date_time;
note_issue_description : string;
note_issue_discussion_locked : string option;
note_issue_due_date : date option;
note_issue_id : int;
note_issue_iid : int;
note_issue_last_edited_at : string option;
note_issue_last_edited_by_id : int option;
note_issue_milestone_id : int option;
note_issue_moved_to_id : string option;
note_issue_duplicated_to_id : int option;
note_issue_project_id : int;
note_issue_relative_position : int;
note_issue_state_id : int;
note_issue_time_estimate : int;
note_issue_title : string;
note_issue_updated_at : date_time;
note_issue_updated_by_id : string option;
note_issue_weight : string option;
note_issue_url : string;
note_issue_total_time_spent : int;
note_issue_time_change : int;
note_issue_human_total_time_spent : int option;
note_issue_human_time_change : int option;
note_issue_human_time_estimate : int option;
note_issue_assignee_ids : int list;
note_issue_assignee_id : int;
note_issue_labels : string list;
note_issue_state : state;
note_issue_severity : string;
}
type note_attributes = {
note_attrbutes_attachment : string option;
note_attrbutes_author_id : int;
note_attrbutes_change_position : string option;
note_attrbutes_commit_id : string option;
note_attrbutes_created_at : date_time;
note_attrbutes_discussion_id : string;
note_attrbutes_id : int;
note_attrbutes_line_code : int option;
note_attrbutes_note : string;
note_attrbutes_noteable_id : int;
note_attrbutes_noteable_type : string;
note_attrbutes_original_position : string option;
note_attrbutes_position : string option;
note_attrbutes_project_id : int;
note_attrbutes_resolved_at : string option;
note_attrbutes_resolved_by_id : string option;
note_attrbutes_resolved_by_push : string option;
note_attrbutes_st_diff : string option;
note_attrbutes_system : bool;
note_attrbutes_note_attribute_type : string option;
note_attrbutes_updated_at : date_time;
note_attrbutes_updated_by_id : string option;
note_attrbutes_description : string;
note_attrbutes_url : string;
}
type note_webhook = {
note_webhook_event_type : string;
note_webhook_user : user_short;
note_webhook_project : project_webhook;
note_webhook_attributes : note_attributes;
note_webhook_repository : repository;
note_webhook_project_id : int;
note_webhook_issue : note_issue;
}
type merge_status = [
| `Unchecked
| `Checking
| `CanBeMerged
| `CannotBeMerged
| `CannotBeMergedRecheck
| `Preparing
]
type assignees = {
assignees_previous : user_short list;
assignees_current : user_short list;
}
type merge_request_changes = {
merge_request_changes_updated_by_id : updated_by_id option;
merge_request_changes_updated_at : updated_at option;
merge_request_changes_assignees : assignees option;
}
type merge_params = {
merge_params_force_remove_source_branch : string;
}
type merge_request_attributes = {
merge_request_attributes_action : string option;
merge_request_attributes_assignee_id : int option;
merge_request_attributes_assignee_ids : int list;
merge_request_attributes_author_id : int;
merge_request_attributes_created_at : date_time;
merge_request_attributes_description : string;
merge_request_attributes_head_pipeline_id : int option;
merge_request_attributes_id : int;
merge_request_attributes_iid : int;
merge_request_attributes_last_edited_at : string option;
merge_request_attributes_last_edited_by_id : int option;
merge_request_attributes_last_commit : commit_short_webhook;
merge_request_attributes_oldrev : string option;
merge_request_attributes_merge_commit_sha : string option;
merge_request_attributes_merge_error : string option;
merge_request_attributes_merge_params : merge_params;
merge_request_attributes_merge_status : merge_status;
merge_request_attributes_merge_user_id : int option;
merge_request_attributes_merge_when_pipeline_succeeds : bool;
merge_request_attributes_milestone_id : int option;
merge_request_attributes_source : project_webhook;
merge_request_attributes_source_branch : string;
merge_request_attributes_source_project_id : int;
merge_request_attributes_state_id : int;
merge_request_attributes_state : string;
merge_request_attributes_target : project_webhook;
merge_request_attributes_target_branch : string;
merge_request_attributes_target_project_id : int;
merge_request_attributes_title : string;
merge_request_attributes_updated_at : date_time;
merge_request_attributes_updated_by_id : int option;
merge_request_attributes_url : string;
merge_request_attributes_work_in_progress : bool;
merge_request_attributes_total_time_spent : int;
merge_request_attributes_time_change : int;
merge_request_attributes_time_estimate : int;
merge_request_attributes_human_total_time_spent : int option;
merge_request_attributes_human_time_change : int option;
merge_request_attributes_human_time_estimate : int option;
}
type label = {
label_id : int;
label_title : string;
label_color : string;
label_project_id : int;
label_created_at : date_time;
label_updated_at : date_time;
label_template : bool;
label_description : string option;
label_label_type : string;
label_group_id : int option;
}
type merge_request_webhook = {
merge_request_webhook_event_type : string;
merge_request_webhook_user : user_short;
merge_request_webhook_project : project_webhook;
merge_request_webhook_attributes : merge_request_attributes;
merge_request_webhook_repository : repository;
merge_request_webhook_labels : label list;
merge_request_webhook_changes : merge_request_changes option;
merge_request_webhook_assignees : user_short list option;
}
type issue_attributes = {
issue_attributes_assignee_id : int option;
issue_attributes_assignee_ids : int list;
issue_attributes_author_id : int;
issue_attributes_closed_at : string option;
issue_attributes_confidential : bool;
issue_attributes_created_at : date_time;
issue_attributes_description : string;
issue_attributes_discussion_locked : string option;
issue_attributes_due_date : string option;
issue_attributes_duplicated_to_id : string option;
issue_attributes_human_time_change : string option;
issue_attributes_human_time_estimate : string option;
issue_attributes_human_total_time_spent : string option;
issue_attributes_id : int;
issue_attributes_iid : int;
issue_attributes_labels : string list;
issue_attributes_last_edited_at : string option;
issue_attributes_last_edited_by_id : int option;
issue_attributes_milestone_id : int option;
issue_attributes_moved_to_id : int option;
issue_attributes_project_id : int;
issue_attributes_relative_position : int;
issue_attributes_severity : string;
issue_attributes_state : string;
issue_attributes_state_id : int;
issue_attributes_time_change : int;
issue_attributes_time_estimate : int;
issue_attributes_title : string;
issue_attributes_total_time_spent : int;
issue_attributes_updated_at : date_time;
issue_attributes_updated_by_id : int option;
issue_attributes_url : string;
issue_attributes_weight : int option;
}
type issue_webhook = {
issue_webhook_event_type : string;
issue_webhook_user : user_short;
issue_webhook_project : project_webhook;
issue_webhook_attributes : issue_attributes;
issue_webhook_labels : label list;
issue_webhook_repository : repository;
issue_webhook_assignees : user_short list;
}
type webhook = [
| `Push of push_webhook
| `MergeRequest of merge_request_webhook
| `Issue of issue_webhook
| `Note of note_webhook
| `WikiPage of wiki_page_webhook
| `Release of release_webhook
]
type webhooks = webhook list
type visibility = [
| `Private
| `Public
| `Internal
]
type users = user_short list
type user = {
user_id : Int64.t;
user_username : string;
user_name : string;
user_state : string;
user_avatar_url : string;
user_web_url : string;
user_created_at : date_time;
user_bio : string option;
user_bio_html : string option;
user_location : string option;
user_public_email : string option;
user_skype : string option;
user_linkedin : string option;
user_twitter : string option;
user_website_url : string option;
user_organization : string option;
user_job_title : string option;
user_pronouns : string option;
user_bot : bool;
user_work_information : string option;
user_followers : int;
user_following : int;
}
type time_stats = {
time_stats_time_estimate : int;
time_stats_total_time_spent : int;
time_stats_human_time_estimate : int option;
time_stats_human_total_time_spent : int option;
}
type task_completion_status = {
time_completion_status_count : int;
time_completion_status_completed_count : int;
}
type status_check_status = [
| `Approved
| `Pending
]
type status_check = {
status_check_id : int;
status_check_name : string;
status_check_external_url : string;
status_check_status : status_check_status;
}
type status_checks = status_check list
type statistics = {
statistics_commit_count : int;
statistics_storage_size : int;
statistics_repository_size : int;
statistics_wiki_size : int;
statistics_lfs_objects_size : int;
statistics_job_artifacts_size : int;
statistics_packages_size : int;
statistics_snippets_size : int;
}
type sort = [
| `Asc
| `Desc
]
type scope = [
| `Api
| `ReadApi
| `ReadUser
| `ReadRegistry
| `WriteRegistry
| `ReadRepository
| `WriteRepository
]
type references = {
references_short : string;
references_relative : string;
references_full : string;
}
type push_data = {
push_data_commit_count : int;
push_data_action : string;
push_data_ref_type : string;
push_data_commit_from : string option;
push_data_commit_to : string option;
push_data_ref : string option;
push_data_commit_title : string option;
push_data_ref_count : int option;
}
type namespace = {
namespace_id : int;
namespace_name : string;
namespace_path : string;
namespace_kind : string;
namespace_full_path : string;
namespace_parent_id : int option;
namespace_avatar_url : string;
namespace_web_url : string;
}
type project_short = {
project_short_id : int;
project_short_name : string;
project_short_description : string;
project_short_name_with_namespace : string;
project_short_path : string;
project_short_path_with_namespace : string;
project_short_created_at : date_time;
project_short_default_branch : string;
project_short_tag_list : string list option;
project_short_topics : string list option;
project_short_ssh_url_to_repo : string;
project_short_http_url_to_repo : string;
project_short_web_url : string;
project_short_readme_url : string option;
project_short_avatar_url : string option;
project_short_forks_count : int;
project_short_star_count : int;
project_short_last_activity_at : date_time;
project_short_namespace : namespace;
}
type projects_short = project_short list
type project_access = {
project_access_access_level : int;
project_access_notification_level : int;
}
type permissions = {
permissions_group_access : string option;
permissions_project_access : project_access;
}
type merge_method = [
| `Merge
| `RebaseMerge
| `FastForward
]
type container_expiration_policy = {
container_expiration_policy_cadence : string;
container_expiration_policy_enabled : bool;
container_expiration_policy_keep_n : int;
container_expiration_policy_name_regex : string;
container_expiration_policy_name_regex_keep : string option;
container_expiration_policy_next_run_at : date_time;
container_expiration_policy_older_than : string;
}
type project_full = {
project_full_id : int;
project_full_name : string;
project_full_description : string;
project_full_name_with_namespace : string;
project_full_created_at : date_time;
project_full_default_branch : string;
project_full_tag_list : string list option;
project_full_topics : string list option;
project_full_ssh_url_to_repo : string;
project_full_http_url_to_repo : string;
project_full_web_url : string;
project_full_readme_url : string option;
project_full_avatar_url : string option;
project_full_forks_count : int;
project_full_star_count : int;
project_full_last_activity_at : date_time;
project_full_namespace : namespace;
project_full_runners_token : string option;
project_full_statistics : statistics option;
project_full_allow_merge_on_skipped_pipeline : bool option;
project_full_analytics_access_level : string;
project_full_approvals_before_merge : int;
project_full_archived : bool;
project_full_auto_cancel_pending_pipelines : string;
project_full_auto_devops_deploy_strategy : string;
project_full_auto_devops_enabled : bool;
project_full_autoclose_referenced_issues : bool;
project_full_build_coverage_regex : string option;
project_full_build_timeout : int;
project_full_builds_access_level : string;
project_full_can_create_merge_request_in : bool;
project_full_ci_config_path : string option;
project_full_ci_default_git_depth : int option;
project_full_ci_forward_deployment_enabled : bool option;
project_full_ci_job_token_scope_enabled : bool;
project_full_compliance_frameworks : string list;
project_full_container_expiration_policy : container_expiration_policy option;
project_full_container_registry_access_level : string;
project_full_container_registry_enabled : bool;
project_full_container_registry_image_prefix : string;
project_full_creator_id : int;
project_full_emails_disabled : string option;
project_full_empty_repo : bool;
project_full_external_authorization_classification_label : string;
project_full_forked_from_project : project_short option;
project_full_forking_access_level : string;
project_full_import_status : string;
project_full_issues_access_level : string;
project_full_issues_enabled : bool;
project_full_issues_template : string option;
project_full_jobs_enabled : bool;
project_full_keep_latest_artifact : bool;
project_full_lfs_enabled : bool;
project_full_marked_for_deletion_at : date option;
project_full_marked_for_deletion_on : date option;
project_full_merge_method : merge_method;
project_full_merge_pipelines_enabled : bool;
project_full_merge_requests_access_level : string;
project_full_merge_requests_enabled : bool;
project_full_merge_requests_template : string option;
project_full_merge_trains_enabled : bool;
project_full_mirror : bool;
project_full_only_allow_merge_if_all_discussions_are_resolved : bool option;
project_full_only_allow_merge_if_pipeline_succeeds : bool;
project_full_open_issues_count : int;
project_full_operations_access_level : string;
project_full_owner : user_short;
project_full_packages_enabled : bool option;
project_full_pages_access_level : string;
project_full_path : string;
project_full_path_with_namespace : string;
project_full_permissions : permissions;
project_full_public_jobs : bool;
project_full_remove_source_branch_after_merge : bool option;
project_full_repository_access_level : string;
project_full_request_access_enabled : bool;
project_full_requirements_enabled : bool;
project_full_resolve_outdated_diff_discussions : bool option;
project_full_restrict_user_defined_variables : bool option;
project_full_security_and_compliance_enabled : bool;
project_full_service_desk_address : string option;
project_full_service_desk_enabled : bool option;
project_full_shared_runners_enabled : bool;
project_full_shared_with_groups : string list;
project_full_snippets_enabled : bool;
project_full_snippets_access_level : string;
project_full_squash_option : string;
project_full_suggestion_commit_message : string option;
project_full_visibility : visibility;
project_full_wiki_access_level : string;
project_full_wiki_enabled : bool;
}
type projects_full = project_full list
type project_shorts = project_short list
type project_access_token = {
project_access_token_id : int;
project_access_token_name : string;
project_access_token_revoked : bool;
project_access_token_created_at : date_time;
project_access_token_scopes : scope list;
project_access_token_user_id : int;
project_access_token_active : bool;
project_access_token_expires_at : string option;
}
type project_access_tokens = project_access_token list
type personal_access_token = {
personal_access_token_id : int;
personal_access_token_name : string;
personal_access_token_revoked : bool;
personal_access_token_created_at : date_time;
personal_access_token_scopes : scope list;
personal_access_token_user_id : int;
personal_access_token_active : bool;
personal_access_token_expires_at : string option;
}
type personal_access_tokens = personal_access_token list
type owner = {
owner_id : int;
owner_name : string;
owner_created_at : date_time;
}
type noteable_type = [
| `MergeRequest
| `Issue
]
type note = {
note_id : int;
note_note_type : string option;
note_body : string;
note_attachment : string option;
note_author : user_short;
note_created_at : date_time;
note_updated_at : date_time;
note_system : bool;
note_noteable_id : int;
note_noteable_type : noteable_type;
note_resolvable : bool;
note_confidential : bool;
note_noteable_iid : int;
}
type new_token = {
name : string;
expires_at : string;
scopes : scope list;
}
type commit_status_status = [
| `Pending
| `Running
| `Success
| `Failed
| `Cancelled
]
type new_status = {
state : commit_status_status;
ref_name : string option;
name : string option;
target_url : string option;
description : string option;
coverage : int option;
pipeline_id : int option;
}
type new_milestone = {
title : string;
description : string option;
due_date : string option;
start_date : string option;
}
type line_type = [
| `New
| `Old
]
type new_comment = {
note : string;
path : string option;
line : int option;
line_type : line_type option;
}
type milestone_state = [
| `Active
| `Closed
]
type milestone = {
milestone_id : int;
milestone_iid : int;
milestone_project_id : int option;
milestone_group_id : int option;
milestone_title : string;
milestone_description : string;
milestone_state : milestone_state;
milestone_created_at : date_time;
milestone_updated_at : date_time;
milestone_due_date : date option;
milestone_start_date : date option;
milestone_expired : bool option;
milestone_web_url : string;
}
type milestones = milestone list
type error = {
error_resource : string;
error_field : string option;
error_code : string;
error_message : string option;
}
type message = {
message_message : string;
message_errors : error list;
}
type merge_request = {
merge_request_id : int;
merge_request_iid : int;
merge_request_project_id : int;
merge_request_title : string;
merge_request_description : string;
merge_request_state : state;
merge_request_merged_by : user_short option;
merge_request_merged_at : string option;
merge_request_closed_by : user_short option;
merge_request_closed_at : string option;
merge_request_created_at : date_time;
merge_request_updated_at : date_time;
merge_request_target_branch : string;
merge_request_source_branch : string;
merge_request_upvotes : int;
merge_request_downvotes : int;
merge_request_author : user_short;
merge_request_assignee : user_short option;
merge_request_approvals_before_merge : string option;
merge_request_allow_collaboration : bool option;
merge_request_allow_maintainer_to_push : bool option;
merge_request_blocking_discussions_resolved : bool;
merge_request_has_conflicts : bool;
merge_request_assignees : user_short list;
merge_request_reviewers : user_short list;
merge_request_source_project_id : int;
merge_request_target_project_id : int;
merge_request_labels : string list;
merge_request_draft : bool;
merge_request_work_in_progress : bool;
merge_request_milestone : milestone option;
merge_request_merge_when_pipeline_succeeds : bool;
merge_request_merge_status : merge_status;
merge_request_sha : string;
merge_request_merge_commit_sha : string option;
merge_request_squash_commit_sha : string option;
merge_request_user_notes_count : int;
merge_request_discussion_locked : bool option;
merge_request_should_remove_source_branch : bool option;
merge_request_force_remove_source_branch : bool option;
merge_request_web_url : string;
merge_request_reference : string;
merge_request_references : references;
merge_request_time_stats : time_stats;
merge_request_squash : bool;
merge_request_task_completion_status : task_completion_status;
}
type merge_requests = merge_request list
type merge_request_scope = [
| `CreatedByMe
| `AssignedToMe
| `All
]
type labels = {
labels_previous : label list;
labels_current : label list;
}
type issue_type = [
| `Issue
| `Incident
| `TestCase
]
type issue = {
issue_id : int;
issue_iid : int;
issue_project_id : int;
issue_title : string;
issue_description : string;
issue_state : state;
issue_created_at : date_time;
issue_updated_at : date_time;
issue_closed_at : string option;
issue_closed_by : user_short option;
issue_labels : string list;
issue_milestone : string option;
issue_assignees : user_short list;
issue_author : user_short;
issue_type_ : string;
issue_assignee : user_short option;
issue_user_notes_count : int;
issue_merge_requests_count : int;
issue_upvotes : int;
issue_downvotes : int;
issue_due_date : date option;
issue_confidential : bool;
issue_discussion_locked : string option;
issue_issue_type : issue_type;
issue_web_url : string;
issue_time_stats : time_stats;
issue_task_completion_status : task_completion_status;
issue_weight : int option;
issue_blocking_issues_count : int;
issue_has_tasks : bool;
issue_references : references;
issue_severity : string;
issue_moved_to_id : string option;
issue_service_desk_reply_to : string option;
issue_health_status : string option;
}
type issues = issue list
type branch = {
branch_id : int;
branch_project_id : int;
branch_name : string;
branch_created_at : date_time;
branch_updated_at : date_time;
branch_code_owner_approval_required : bool;
}
type external_status_check = {
external_status_check_id : int;
external_status_check_name : string;
external_status_check_project_id : int;
external_status_check_external_url : string;
external_status_check_protected_branches : branch list;
}
type external_status_checks = external_status_check list
type event_target_type = [
| `Issue
| `Milestone
| `MergeRequest
| `Note
| `Project
| `Snippet
| `User
| `WikiPage
]
type event_action_name = [
| `Accepted
| `Approved
| `Closed
| `CommentedOn
| `Created
| `Destroyed
| `Deleted
| `Expired
| `Joined
| `Left
| `Merged
| `Opened
| `Pushed
| `PushedTo
| `PushedNew
| `Reopened
| `Updated
]
type event = {
event_id : int;
event_project_id : int;
event_action_name : event_action_name option;
event_target_id : int option;
event_target_iid : int option;
event_target_type : event_target_type option;
event_author_id : int;
event_target_title : string option;
event_created_at : date_time;
event_author : user_short option;
event_push_data : push_data option;
event_note : note option;
event_wiki_page : wiki_page option;
event_author_username : string;
}
type events = event list
type error_detail = {
message : string;
detail : string option;
}
type create_issue = {
create_issue_assignee_id : int option;
create_issue_assignee_ids : int option;
create_issue_confidential : bool option;
create_issue_created_at : date_time option;
create_issue_description : string option;
create_issue_discussion_to_resolve : string option;
create_issue_due_date : date option;
create_issue_epic_id : int option;
create_issue_epic_iid : int option;
create_issue_id : int;
create_issue_iid : int option;
create_issue_issue_type : issue_type option;
create_issue_labels : string list option;
create_issue_merge_request_to_resolve_discussions_of : int option;
create_issue_milestone_id : int option;
create_issue_title : string;
create_issue_weight : int option;
}
type commit = {
commit_id : string;
commit_short_id : string;
commit_title : string;
commit_author_name : string;
commit_author_email : string;
commit_authored_date : string;
commit_committed_date : date_time;
commit_committer_email : string;
commit_committer_name : string;
commit_created_at : date_time;
commit_message : string;
commit_parent_ids : string list option;
commit_web_url : string;
}
type commits = commit list
type commit_status = {
commit_status_id : int;
commit_status_sha : string;
commit_status_ref : string;
commit_status_status : string;
commit_status_name : string;
commit_status_target_url : string option;
commit_status_description : string option;
commit_status_created_at : date_time;
commit_status_started_at : date_time option;
commit_status_finished_at : date_time option;
commit_status_allow_failure : bool;
commit_status_coverage : string option;
commit_status_author : user_short;
}
type commit_statuses = commit_status list
type commit_comment = {
commit_comment_note : string;
commit_comment_author : user_short;
}
type commit_comments = commit_comment list
type commit_commented = {
commit_commented_author : user_short;
commit_commented_created_at : date_time;
commit_commented_line_type : line_type;
commit_commented_path : string;
commit_commented_line : int;
commit_commented_note : string;
}
type change = {
change_old_path : string;
change_new_path : string;
change_a_mode : string;
change_b_mode : string;
change_diff : string;
change_new_file : bool;
change_renamed_file : bool;
change_deleted_file : bool;
}
type changes = {
changes_id : int;
changes_iid : int;
changes_project_id : int;
changes_title : string;
changes_state : string;
changes_created_at : date_time;
changes_updated_at : date_time;
changes_target_branch : string;
changes_source_branch : string;
changes_upvotes : int;
changes_downvotes : int;
changes_author : user_short;
changes_assignee : user_short option;
changes_assignees : user_short list option;
changes_reviewers : user_short list;
changes_source_project_id : int;
changes_target_project_id : int;
changes_labels : string list;
changes_description : string;
changes_draft : bool;
changes_work_in_progress : bool;
changes_milestone : milestone option;
changes_merge_when_pipeline_succeeds : bool;
changes_merge_status : merge_status;
changes_subscribed : bool;
changes_sha : string;
changes_merge_commit_sha : string option;
changes_squash_commit_sha : string option;
changes_user_notes_count : int;
changes_changes_count : int;
changes_should_remove_source_branch : bool;
changes_force_remove_source_branch : bool;
changes_squash : bool;
changes_web_url : string;
changes_references : references;
changes_discussion_locked : bool;
changes_time_stats : time_stats;
changes_task_completion_status : task_completion_status;
changes_changes : change list;
changes_overflow : bool;
}
type branch_full = {
branch_full_name : string;
branch_full_merged : bool;
branch_full_protected : bool;
branch_full_developers_can_push : bool;
branch_full_developers_can_merge : bool;
branch_full_can_push : bool;
branch_full_default : bool;
branch_full_web_url : string;
branch_full_commit : commit;
}
type branches_full = branch_full list
type author_short = {
author_short_name : string;
author_short_email : string;
}
type auth = {
access_token : string;
token_type : string;
expires_in : int;
refresh_token : string;
created_at : int;
}