Skip to main content

gitverse_sdk/
actions.rs

1// Code generated by gitverse-codegen. DO NOT EDIT.
2
3use crate::client::{Client, decode_response, handle_empty_response};
4use crate::errors::Error;
5use crate::types::*;
6
7impl Client {
8    /// Returns a list of self-hosted runners for an organization
9    pub async fn list_org_runners(
10        &self,
11        org: &str,
12        opts: Option<&QueryOptions>,
13    ) -> Result<ActionRunners, Error> {
14        let path = format!("/orgs/{}/actions/runners", org);
15        let resp = self.send_get(&path, opts).await?;
16        decode_response(resp).await
17    }
18
19    /// Creates a registration token for an organization runner
20    pub async fn create_org_runner_registration_token(
21        &self,
22        org: &str,
23    ) -> Result<RegistrationToken, Error> {
24        let path = format!("/orgs/{}/actions/runners/registration-token", org);
25        let resp = self.send_post(&path, Option::<&()>::None).await?;
26        decode_response(resp).await
27    }
28
29    /// Gets a specific self-hosted runner for an organization
30    pub async fn get_org_runner(&self, org: &str, runner_id: f64) -> Result<ActionRunner, Error> {
31        let path = format!("/orgs/{}/actions/runners/{}", org, runner_id);
32        let resp = self.send_get(&path, None).await?;
33        decode_response(resp).await
34    }
35
36    /// Deletes a specific self-hosted runner from the organization
37    pub async fn delete_org_runner(&self, org: &str, runner_id: f64) -> Result<(), Error> {
38        let path = format!("/orgs/{}/actions/runners/{}", org, runner_id);
39        let resp = self.send_delete(&path, Option::<&()>::None).await?;
40        handle_empty_response(resp).await
41    }
42
43    /// List organization variables
44    pub async fn list_org_variables(
45        &self,
46        org: &str,
47        opts: Option<&QueryOptions>,
48    ) -> Result<VariableList, Error> {
49        let path = format!("/orgs/{}/actions/variables", org);
50        let resp = self.send_get(&path, opts).await?;
51        decode_response(resp).await
52    }
53
54    /// Create an organization variable
55    pub async fn create_org_variable(
56        &self,
57        org: &str,
58        params: &CreateVariableParams,
59    ) -> Result<(), Error> {
60        let path = format!("/orgs/{}/actions/variables", org);
61        let resp = self.send_post(&path, Some(params)).await?;
62        handle_empty_response(resp).await
63    }
64
65    /// Get an organization variable
66    pub async fn get_org_variable(&self, org: &str, name: &str) -> Result<Variable, Error> {
67        let path = format!("/orgs/{}/actions/variables/{}", org, name);
68        let resp = self.send_get(&path, None).await?;
69        decode_response(resp).await
70    }
71
72    /// Update an organization variable
73    pub async fn update_org_variable(
74        &self,
75        org: &str,
76        name: &str,
77        params: &CreateVariableParams,
78    ) -> Result<(), Error> {
79        let path = format!("/orgs/{}/actions/variables/{}", org, name);
80        let resp = self.send_patch(&path, Some(params)).await?;
81        handle_empty_response(resp).await
82    }
83
84    /// Delete an organization variable
85    pub async fn delete_org_variable(&self, org: &str, name: &str) -> Result<(), Error> {
86        let path = format!("/orgs/{}/actions/variables/{}", org, name);
87        let resp = self.send_delete(&path, Option::<&()>::None).await?;
88        handle_empty_response(resp).await
89    }
90
91    /// Returns a list of artifacts in the repository
92    pub async fn list_artifacts(
93        &self,
94        owner: &str,
95        repo: &str,
96        opts: Option<&QueryOptions>,
97    ) -> Result<ActionArtifactList, Error> {
98        let path = format!("/repos/{}/{}/actions/artifacts", owner, repo);
99        let resp = self.send_get(&path, opts).await?;
100        decode_response(resp).await
101    }
102
103    /// Returns a specific artifact from the repository
104    pub async fn get_artifact(
105        &self,
106        owner: &str,
107        repo: &str,
108        artifact_id: &str,
109    ) -> Result<ActionArtifact, Error> {
110        let path = format!(
111            "/repos/{}/{}/actions/artifacts/{}",
112            owner, repo, artifact_id
113        );
114        let resp = self.send_get(&path, None).await?;
115        decode_response(resp).await
116    }
117
118    /// Deletes a specific artifact
119    pub async fn delete_artifact(
120        &self,
121        owner: &str,
122        repo: &str,
123        artifact_id: &str,
124    ) -> Result<(), Error> {
125        let path = format!(
126            "/repos/{}/{}/actions/artifacts/{}",
127            owner, repo, artifact_id
128        );
129        let resp = self.send_delete(&path, Option::<&()>::None).await?;
130        handle_empty_response(resp).await
131    }
132
133    /// Downloads a specific artifact as a ZIP archive
134    pub async fn download_artifact(
135        &self,
136        owner: &str,
137        repo: &str,
138        artifact_id: &str,
139    ) -> Result<(), Error> {
140        let path = format!(
141            "/repos/{}/{}/actions/artifacts/{}/zip",
142            owner, repo, artifact_id
143        );
144        let resp = self.send_get(&path, None).await?;
145        handle_empty_response(resp).await
146    }
147
148    /// Downloads the artifact ZIP archive directly
149    pub async fn download_artifact_raw(
150        &self,
151        owner: &str,
152        repo: &str,
153        artifact_id: &str,
154    ) -> Result<String, Error> {
155        let path = format!(
156            "/repos/{}/{}/actions/artifacts/{}/zip/raw",
157            owner, repo, artifact_id
158        );
159        let resp = self.send_get(&path, None).await?;
160        decode_response(resp).await
161    }
162
163    /// Get a workflow run job
164    pub async fn get_workflow_job(
165        &self,
166        owner: &str,
167        repo: &str,
168        job_id: f64,
169    ) -> Result<ActionRunJob, Error> {
170        let path = format!("/repos/{}/{}/actions/jobs/{}", owner, repo, job_id);
171        let resp = self.send_get(&path, None).await?;
172        decode_response(resp).await
173    }
174
175    /// Get workflow run job logs
176    pub async fn get_workflow_job_logs(
177        &self,
178        owner: &str,
179        repo: &str,
180        job_id: f64,
181    ) -> Result<(), Error> {
182        let path = format!("/repos/{}/{}/actions/jobs/{}/logs", owner, repo, job_id);
183        let resp = self.send_get(&path, None).await?;
184        handle_empty_response(resp).await
185    }
186
187    /// Adds a link to an action run
188    pub async fn create_action_link(
189        &self,
190        owner: &str,
191        repo: &str,
192        params: &CreateActionLinkParams,
193    ) -> Result<ActionLink, Error> {
194        let path = format!("/repos/{}/{}/actions/links", owner, repo);
195        let resp = self.send_post(&path, Some(params)).await?;
196        decode_response(resp).await
197    }
198
199    /// Returns a list of runners for the repository
200    pub async fn list_repo_runners(
201        &self,
202        owner: &str,
203        repo: &str,
204        opts: Option<&QueryOptions>,
205    ) -> Result<ActionRunners, Error> {
206        let path = format!("/repos/{}/{}/actions/runners", owner, repo);
207        let resp = self.send_get(&path, opts).await?;
208        decode_response(resp).await
209    }
210
211    /// Creates a registration token for a repository runner
212    pub async fn create_repo_runner_registration_token(
213        &self,
214        owner: &str,
215        repo: &str,
216    ) -> Result<RegistrationToken, Error> {
217        let path = format!(
218            "/repos/{}/{}/actions/runners/registration-token",
219            owner, repo
220        );
221        let resp = self.send_post(&path, Option::<&()>::None).await?;
222        decode_response(resp).await
223    }
224
225    /// Gets a specific runner for a repository
226    pub async fn get_repo_runner(
227        &self,
228        owner: &str,
229        repo: &str,
230        runner_id: f64,
231    ) -> Result<ActionRunner, Error> {
232        let path = format!("/repos/{}/{}/actions/runners/{}", owner, repo, runner_id);
233        let resp = self.send_get(&path, None).await?;
234        decode_response(resp).await
235    }
236
237    /// Deletes a specific self-hosted runner from the repository
238    pub async fn delete_repo_runner(
239        &self,
240        owner: &str,
241        repo: &str,
242        runner_id: f64,
243    ) -> Result<(), Error> {
244        let path = format!("/repos/{}/{}/actions/runners/{}", owner, repo, runner_id);
245        let resp = self.send_delete(&path, Option::<&()>::None).await?;
246        handle_empty_response(resp).await
247    }
248
249    /// List workflow runs
250    pub async fn list_workflow_runs(
251        &self,
252        owner: &str,
253        repo: &str,
254        opts: Option<&QueryOptions>,
255    ) -> Result<RunsResponse, Error> {
256        let path = format!("/repos/{}/{}/actions/runs", owner, repo);
257        let resp = self.send_get(&path, opts).await?;
258        decode_response(resp).await
259    }
260
261    /// Get a workflow run by index
262    pub async fn get_workflow_run_by_index(
263        &self,
264        owner: &str,
265        repo: &str,
266        run_index: f64,
267    ) -> Result<ActionRun, Error> {
268        let path = format!("/repos/{}/{}/actions/runs/index/{}", owner, repo, run_index);
269        let resp = self.send_get(&path, None).await?;
270        decode_response(resp).await
271    }
272
273    /// List workflow run jobs by index
274    pub async fn list_workflow_run_jobs_by_index(
275        &self,
276        owner: &str,
277        repo: &str,
278        run_index: f64,
279        opts: Option<&QueryOptions>,
280    ) -> Result<JobsResponse, Error> {
281        let path = format!(
282            "/repos/{}/{}/actions/runs/index/{}/jobs",
283            owner, repo, run_index
284        );
285        let resp = self.send_get(&path, opts).await?;
286        decode_response(resp).await
287    }
288
289    /// Get a workflow run
290    pub async fn get_workflow_run(
291        &self,
292        owner: &str,
293        repo: &str,
294        run_id: f64,
295    ) -> Result<ActionRun, Error> {
296        let path = format!("/repos/{}/{}/actions/runs/{}", owner, repo, run_id);
297        let resp = self.send_get(&path, None).await?;
298        decode_response(resp).await
299    }
300
301    /// List workflow run jobs
302    pub async fn list_workflow_run_jobs(
303        &self,
304        owner: &str,
305        repo: &str,
306        run_id: f64,
307        opts: Option<&QueryOptions>,
308    ) -> Result<JobsResponse, Error> {
309        let path = format!("/repos/{}/{}/actions/runs/{}/jobs", owner, repo, run_id);
310        let resp = self.send_get(&path, opts).await?;
311        decode_response(resp).await
312    }
313
314    /// List repository variables
315    pub async fn list_repo_variables(
316        &self,
317        owner: &str,
318        repo: &str,
319        opts: Option<&QueryOptions>,
320    ) -> Result<VariableList, Error> {
321        let path = format!("/repos/{}/{}/actions/variables", owner, repo);
322        let resp = self.send_get(&path, opts).await?;
323        decode_response(resp).await
324    }
325
326    /// Create a repository variable
327    pub async fn create_repo_variable(
328        &self,
329        owner: &str,
330        repo: &str,
331        params: &CreateVariableParams,
332    ) -> Result<(), Error> {
333        let path = format!("/repos/{}/{}/actions/variables", owner, repo);
334        let resp = self.send_post(&path, Some(params)).await?;
335        handle_empty_response(resp).await
336    }
337
338    /// Get a repository variable
339    pub async fn get_repo_variable(
340        &self,
341        owner: &str,
342        repo: &str,
343        name: &str,
344    ) -> Result<Variable, Error> {
345        let path = format!("/repos/{}/{}/actions/variables/{}", owner, repo, name);
346        let resp = self.send_get(&path, None).await?;
347        decode_response(resp).await
348    }
349
350    /// Update a repository variable
351    pub async fn update_repo_variable(
352        &self,
353        owner: &str,
354        repo: &str,
355        name: &str,
356        params: &CreateVariableParams,
357    ) -> Result<(), Error> {
358        let path = format!("/repos/{}/{}/actions/variables/{}", owner, repo, name);
359        let resp = self.send_patch(&path, Some(params)).await?;
360        handle_empty_response(resp).await
361    }
362
363    /// Delete a repository variable
364    pub async fn delete_repo_variable(
365        &self,
366        owner: &str,
367        repo: &str,
368        name: &str,
369    ) -> Result<(), Error> {
370        let path = format!("/repos/{}/{}/actions/variables/{}", owner, repo, name);
371        let resp = self.send_delete(&path, Option::<&()>::None).await?;
372        handle_empty_response(resp).await
373    }
374
375    /// Get workflow_dispatch parameters
376    pub async fn get_workflow_dispatch_inputs(
377        &self,
378        owner: &str,
379        repo: &str,
380        workflow: &str,
381        opts: Option<&QueryOptions>,
382    ) -> Result<WorkflowDispatchInputList, Error> {
383        let path = format!(
384            "/repos/{}/{}/actions/workflows/{}/dispatches",
385            owner, repo, workflow
386        );
387        let resp = self.send_get(&path, opts).await?;
388        decode_response(resp).await
389    }
390
391    /// Trigger workflow_dispatch
392    pub async fn dispatch_workflow(
393        &self,
394        owner: &str,
395        repo: &str,
396        workflow: &str,
397        params: &serde_json::Value,
398        _opts: Option<&QueryOptions>,
399    ) -> Result<(), Error> {
400        let path = format!(
401            "/repos/{}/{}/actions/workflows/{}/dispatches",
402            owner, repo, workflow
403        );
404        let resp = self.send_post(&path, Some(params)).await?;
405        handle_empty_response(resp).await
406    }
407}