flams_backend_types/
git.rs

1#[derive(Debug, Clone)]
2#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3#[cfg_attr(feature = "typescript", derive(tsify::Tsify))]
4#[cfg_attr(feature = "typescript", tsify(into_wasm_abi, from_wasm_abi))]
5pub struct Project {
6    pub id: u64,
7    pub name: String,
8    #[cfg_attr(feature = "serde", serde(rename = "path_with_namespace"))]
9    pub path: String,
10    #[cfg_attr(feature = "serde", serde(rename = "http_url_to_repo"))]
11    pub url: String,
12    pub default_branch: Option<String>,
13}
14
15/*
16[{
17    "id":4,
18    "description":null,
19    "name":"third",
20    "name_with_namespace":"some / third",
21    "path":"third",
22    "path_with_namespace":"some/third",
23    "created_at":"2024-12-23T10:43:32.858Z",
24    "default_branch":"main",
25    "tag_list":[],
26    "topics":[],
27    "ssh_url_to_repo":"git@gitlab.example.com:some/third.git",
28    "http_url_to_repo":"http://gitlab.example.com/some/third.git",
29    "web_url":"http://gitlab.example.com/some/third",
30    "readme_url":null,
31    "forks_count":0,
32    "avatar_url":null,
33    "star_count":0,
34    "last_activity_at":
35    "2024-12-23T10:43:32.822Z",
36    "namespace":{
37        "id":3,
38        "name":"some",
39        "path":"some",
40        "kind":"group",
41        "full_path":"some",
42        "parent_id":null,
43        "avatar_url":null,
44        "web_url":"http://gitlab.example.com/groups/some"
45    },
46    "repository_storage":"default",
47    "_links":{
48        "self":"http://gitlab.example.com/api/v4/projects/4",
49        "issues":"http://gitlab.example.com/api/v4/projects/4/issues",
50        "merge_requests":"http://gitlab.example.com/api/v4/projects/4/merge_requests",
51        "repo_branches":"http://gitlab.example.com/api/v4/projects/4/repository/branches",
52        "labels":"http://gitlab.example.com/api/v4/projects/4/labels",
53        "events":"http://gitlab.example.com/api/v4/projects/4/events",
54        "members":"http://gitlab.example.com/api/v4/projects/4/members",
55        "cluster_agents":"http://gitlab.example.com/api/v4/projects/4/cluster_agents"
56    },
57    "packages_enabled":true,
58    "empty_repo":false,
59    "archived":false,
60    "visibility":"public",
61    "resolve_outdated_diff_discussions":false,
62    "container_expiration_policy":{
63        "cadence":"1d","enabled":false,"keep_n":10,"older_than":"90d","name_regex":".*",
64        "name_regex_keep":null,"next_run_at":"2024-12-24T10:43:32.880Z"
65    },
66    "repository_object_format":"sha1",
67    "issues_enabled":true,
68    "merge_requests_enabled":true,
69    "wiki_enabled":true,
70    "jobs_enabled":true,
71    "snippets_enabled":true,
72    "container_registry_enabled":true,
73    "service_desk_enabled":false,
74    "service_desk_address":null,
75    "can_create_merge_request_in":true,
76    "issues_access_level":"enabled",
77    "repository_access_level":"enabled",
78    "merge_requests_access_level":"enabled",
79    "forking_access_level":"enabled",
80    "wiki_access_level":"enabled",
81    "builds_access_level":"enabled",
82    "snippets_access_level":"enabled",
83    "pages_access_level":"private",
84    "analytics_access_level":"enabled",
85    "container_registry_access_level":"enabled",
86    "security_and_compliance_access_level":"private",
87    "releases_access_level":"enabled",
88    "environments_access_level":"enabled",
89    "feature_flags_access_level":"enabled",
90    "infrastructure_access_level":"enabled",
91    "monitor_access_level":"enabled",
92    "model_experiments_access_level":"enabled",
93    "model_registry_access_level":"enabled",
94    "emails_disabled":false,
95    "emails_enabled":true,
96    "shared_runners_enabled":true,
97    "lfs_enabled":true,
98    "creator_id":2,
99    "import_url":null,
100    "import_type":null,
101    "import_status":"none",
102    "open_issues_count":0,
103    "description_html":"",
104    "updated_at":"2024-12-23T10:44:06.647Z",
105    "ci_default_git_depth":20,
106    "ci_delete_pipelines_in_seconds":null,
107    "ci_forward_deployment_enabled":true,
108    "ci_forward_deployment_rollback_allowed":true,
109    "ci_job_token_scope_enabled":false,
110    "ci_separated_caches":true,
111    "ci_allow_fork_pipelines_to_run_in_parent_project":true,
112    "ci_id_token_sub_claim_components":["project_path","ref_type","ref"],
113    "build_git_strategy":"fetch",
114    "keep_latest_artifact":true,
115    "restrict_user_defined_variables":true,
116    "ci_pipeline_variables_minimum_override_role":"developer",
117    "runners_token":"GR1348941Q6BMWPWzxwoMbcceaybe",
118    "runner_token_expiration_interval":null,
119    "group_runners_enabled":true,
120    "auto_cancel_pending_pipelines":"enabled",
121    "build_timeout":3600,
122    "auto_devops_enabled":true,
123    "auto_devops_deploy_strategy":"continuous",
124    "ci_push_repository_for_job_token_allowed":false,
125    "ci_config_path":null,
126    "public_jobs":true,
127    "shared_with_groups":[],
128    "only_allow_merge_if_pipeline_succeeds":false,
129    "allow_merge_on_skipped_pipeline":null,
130    "request_access_enabled":true,
131    "only_allow_merge_if_all_discussions_are_resolved":false,
132    "remove_source_branch_after_merge":true,
133    "printing_merge_request_link_enabled":true,
134    "merge_method":"merge",
135    "squash_option":"default_off",
136    "enforce_auth_checks_on_uploads":true,
137    "suggestion_commit_message":null,
138    "merge_commit_template":null,
139    "squash_commit_template":null,
140    "issue_branch_template":null,
141    "warn_about_potentially_unwanted_characters":true,
142    "autoclose_referenced_issues":true,
143    "permissions":{"project_access":null,"group_access":null}
144}]
145*/
146
147#[derive(Debug, Clone)]
148#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
149#[cfg_attr(feature = "typescript", derive(tsify::Tsify))]
150#[cfg_attr(feature = "typescript", tsify(into_wasm_abi, from_wasm_abi))]
151pub struct Branch {
152    pub name: String,
153    pub default: bool,
154    pub commit: Commit,
155}
156
157/*
158[
159    {
160        "name":"main",
161        "commit":{
162            "id":"2c10ef48497cb4af1068e194cfe49ea1444321de",
163            "short_id":"2c10ef48",
164            "created_at":"2024-12-23T11:44:01.000+01:00",
165            "parent_ids":[],
166            "title":"init",
167            "message":"init\n",
168            "author_name":"Jazzpirate",
169            "author_email":"raupi@jazzpirate.com",
170            "authored_date":"2024-12-23T11:44:01.000+01:00",
171            "committer_name":"Jazzpirate",
172            "committer_email":"raupi@jazzpirate.com",
173            "committed_date":"2024-12-23T11:44:01.000+01:00",
174            "trailers":{},
175            "extended_trailers":{},
176            "web_url":"http://gitlab.example.com/some/third/-/commit/2c10ef48497cb4af1068e194cfe49ea1444321de"
177        },
178        "merged":false,
179        "protected":true,
180        "developers_can_push":false,
181        "developers_can_merge":false,
182        "can_push":true,
183        "default":true,
184        "web_url":"http://gitlab.example.com/some/third/-/tree/main"
185    }
186]
187     */
188
189#[derive(Debug, Clone)]
190#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
191#[cfg_attr(feature = "typescript", derive(tsify::Tsify))]
192#[cfg_attr(feature = "typescript", tsify(into_wasm_abi, from_wasm_abi))]
193pub struct Commit {
194    pub id: String,
195    #[cfg_attr(feature = "typescript", tsify(type = "string"))]
196    pub created_at: chrono::DateTime<chrono::Utc>,
197    pub parent_ids: Vec<String>,
198    pub title: String,
199    pub message: String,
200    pub author_name: String,
201}
202
203#[derive(Debug, Clone)]
204#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
205#[cfg_attr(feature = "typescript", derive(tsify::Tsify))]
206#[cfg_attr(feature = "typescript", tsify(into_wasm_abi, from_wasm_abi))]
207pub struct TreeEntry {
208    pub name: String,
209    pub path: String,
210    #[cfg_attr(feature = "serde", serde(rename = "type"))]
211    pub tp: DirOrFile,
212}
213
214#[derive(Debug, Clone)]
215#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
216#[cfg_attr(feature = "typescript", derive(tsify::Tsify))]
217#[cfg_attr(feature = "typescript", tsify(into_wasm_abi, from_wasm_abi))]
218pub enum DirOrFile {
219    #[cfg_attr(feature = "serde", serde(rename = "tree"))]
220    Dir,
221    #[cfg_attr(feature = "serde", serde(rename = "blob"))]
222    File,
223}
224
225/*
226 */
227
228/*
229{
230    "id":"2f3cbdf17d7970bda62c7e749b9395295980a5ee",
231    "name":"META-INF",
232    "type":"tree"|"blob",
233    "path":"META-INF",
234    "mode":"040000"
235}
236*/