use crate::client::{Client, decode_response, handle_empty_response};
use crate::errors::Error;
use crate::types::*;
impl Client {
pub async fn list_org_runners(
&self,
org: &str,
opts: Option<&QueryOptions>,
) -> Result<ActionRunners, Error> {
let path = format!("/orgs/{}/actions/runners", org);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn create_org_runner_registration_token(
&self,
org: &str,
) -> Result<RegistrationToken, Error> {
let path = format!("/orgs/{}/actions/runners/registration-token", org);
let resp = self.send_post(&path, Option::<&()>::None).await?;
decode_response(resp).await
}
pub async fn get_org_runner(&self, org: &str, runner_id: f64) -> Result<ActionRunner, Error> {
let path = format!("/orgs/{}/actions/runners/{}", org, runner_id);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn delete_org_runner(&self, org: &str, runner_id: f64) -> Result<(), Error> {
let path = format!("/orgs/{}/actions/runners/{}", org, runner_id);
let resp = self.send_delete(&path, Option::<&()>::None).await?;
handle_empty_response(resp).await
}
pub async fn list_org_variables(
&self,
org: &str,
opts: Option<&QueryOptions>,
) -> Result<VariableList, Error> {
let path = format!("/orgs/{}/actions/variables", org);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn create_org_variable(
&self,
org: &str,
params: &CreateVariableParams,
) -> Result<(), Error> {
let path = format!("/orgs/{}/actions/variables", org);
let resp = self.send_post(&path, Some(params)).await?;
handle_empty_response(resp).await
}
pub async fn get_org_variable(&self, org: &str, name: &str) -> Result<Variable, Error> {
let path = format!("/orgs/{}/actions/variables/{}", org, name);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn update_org_variable(
&self,
org: &str,
name: &str,
params: &CreateVariableParams,
) -> Result<(), Error> {
let path = format!("/orgs/{}/actions/variables/{}", org, name);
let resp = self.send_patch(&path, Some(params)).await?;
handle_empty_response(resp).await
}
pub async fn delete_org_variable(&self, org: &str, name: &str) -> Result<(), Error> {
let path = format!("/orgs/{}/actions/variables/{}", org, name);
let resp = self.send_delete(&path, Option::<&()>::None).await?;
handle_empty_response(resp).await
}
pub async fn list_artifacts(
&self,
owner: &str,
repo: &str,
opts: Option<&QueryOptions>,
) -> Result<ActionArtifactList, Error> {
let path = format!("/repos/{}/{}/actions/artifacts", owner, repo);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn get_artifact(
&self,
owner: &str,
repo: &str,
artifact_id: &str,
) -> Result<ActionArtifact, Error> {
let path = format!(
"/repos/{}/{}/actions/artifacts/{}",
owner, repo, artifact_id
);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn delete_artifact(
&self,
owner: &str,
repo: &str,
artifact_id: &str,
) -> Result<(), Error> {
let path = format!(
"/repos/{}/{}/actions/artifacts/{}",
owner, repo, artifact_id
);
let resp = self.send_delete(&path, Option::<&()>::None).await?;
handle_empty_response(resp).await
}
pub async fn download_artifact(
&self,
owner: &str,
repo: &str,
artifact_id: &str,
) -> Result<(), Error> {
let path = format!(
"/repos/{}/{}/actions/artifacts/{}/zip",
owner, repo, artifact_id
);
let resp = self.send_get(&path, None).await?;
handle_empty_response(resp).await
}
pub async fn download_artifact_raw(
&self,
owner: &str,
repo: &str,
artifact_id: &str,
) -> Result<String, Error> {
let path = format!(
"/repos/{}/{}/actions/artifacts/{}/zip/raw",
owner, repo, artifact_id
);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn get_workflow_job(
&self,
owner: &str,
repo: &str,
job_id: f64,
) -> Result<ActionRunJob, Error> {
let path = format!("/repos/{}/{}/actions/jobs/{}", owner, repo, job_id);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn get_workflow_job_logs(
&self,
owner: &str,
repo: &str,
job_id: f64,
) -> Result<(), Error> {
let path = format!("/repos/{}/{}/actions/jobs/{}/logs", owner, repo, job_id);
let resp = self.send_get(&path, None).await?;
handle_empty_response(resp).await
}
pub async fn create_action_link(
&self,
owner: &str,
repo: &str,
params: &CreateActionLinkParams,
) -> Result<ActionLink, Error> {
let path = format!("/repos/{}/{}/actions/links", owner, repo);
let resp = self.send_post(&path, Some(params)).await?;
decode_response(resp).await
}
pub async fn list_repo_runners(
&self,
owner: &str,
repo: &str,
opts: Option<&QueryOptions>,
) -> Result<ActionRunners, Error> {
let path = format!("/repos/{}/{}/actions/runners", owner, repo);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn create_repo_runner_registration_token(
&self,
owner: &str,
repo: &str,
) -> Result<RegistrationToken, Error> {
let path = format!(
"/repos/{}/{}/actions/runners/registration-token",
owner, repo
);
let resp = self.send_post(&path, Option::<&()>::None).await?;
decode_response(resp).await
}
pub async fn get_repo_runner(
&self,
owner: &str,
repo: &str,
runner_id: f64,
) -> Result<ActionRunner, Error> {
let path = format!("/repos/{}/{}/actions/runners/{}", owner, repo, runner_id);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn delete_repo_runner(
&self,
owner: &str,
repo: &str,
runner_id: f64,
) -> Result<(), Error> {
let path = format!("/repos/{}/{}/actions/runners/{}", owner, repo, runner_id);
let resp = self.send_delete(&path, Option::<&()>::None).await?;
handle_empty_response(resp).await
}
pub async fn list_workflow_runs(
&self,
owner: &str,
repo: &str,
opts: Option<&QueryOptions>,
) -> Result<RunsResponse, Error> {
let path = format!("/repos/{}/{}/actions/runs", owner, repo);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn get_workflow_run_by_index(
&self,
owner: &str,
repo: &str,
run_index: f64,
) -> Result<ActionRun, Error> {
let path = format!("/repos/{}/{}/actions/runs/index/{}", owner, repo, run_index);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn list_workflow_run_jobs_by_index(
&self,
owner: &str,
repo: &str,
run_index: f64,
opts: Option<&QueryOptions>,
) -> Result<JobsResponse, Error> {
let path = format!(
"/repos/{}/{}/actions/runs/index/{}/jobs",
owner, repo, run_index
);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn get_workflow_run(
&self,
owner: &str,
repo: &str,
run_id: f64,
) -> Result<ActionRun, Error> {
let path = format!("/repos/{}/{}/actions/runs/{}", owner, repo, run_id);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn list_workflow_run_jobs(
&self,
owner: &str,
repo: &str,
run_id: f64,
opts: Option<&QueryOptions>,
) -> Result<JobsResponse, Error> {
let path = format!("/repos/{}/{}/actions/runs/{}/jobs", owner, repo, run_id);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn list_repo_variables(
&self,
owner: &str,
repo: &str,
opts: Option<&QueryOptions>,
) -> Result<VariableList, Error> {
let path = format!("/repos/{}/{}/actions/variables", owner, repo);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn create_repo_variable(
&self,
owner: &str,
repo: &str,
params: &CreateVariableParams,
) -> Result<(), Error> {
let path = format!("/repos/{}/{}/actions/variables", owner, repo);
let resp = self.send_post(&path, Some(params)).await?;
handle_empty_response(resp).await
}
pub async fn get_repo_variable(
&self,
owner: &str,
repo: &str,
name: &str,
) -> Result<Variable, Error> {
let path = format!("/repos/{}/{}/actions/variables/{}", owner, repo, name);
let resp = self.send_get(&path, None).await?;
decode_response(resp).await
}
pub async fn update_repo_variable(
&self,
owner: &str,
repo: &str,
name: &str,
params: &CreateVariableParams,
) -> Result<(), Error> {
let path = format!("/repos/{}/{}/actions/variables/{}", owner, repo, name);
let resp = self.send_patch(&path, Some(params)).await?;
handle_empty_response(resp).await
}
pub async fn delete_repo_variable(
&self,
owner: &str,
repo: &str,
name: &str,
) -> Result<(), Error> {
let path = format!("/repos/{}/{}/actions/variables/{}", owner, repo, name);
let resp = self.send_delete(&path, Option::<&()>::None).await?;
handle_empty_response(resp).await
}
pub async fn get_workflow_dispatch_inputs(
&self,
owner: &str,
repo: &str,
workflow: &str,
opts: Option<&QueryOptions>,
) -> Result<WorkflowDispatchInputList, Error> {
let path = format!(
"/repos/{}/{}/actions/workflows/{}/dispatches",
owner, repo, workflow
);
let resp = self.send_get(&path, opts).await?;
decode_response(resp).await
}
pub async fn dispatch_workflow(
&self,
owner: &str,
repo: &str,
workflow: &str,
params: &serde_json::Value,
_opts: Option<&QueryOptions>,
) -> Result<(), Error> {
let path = format!(
"/repos/{}/{}/actions/workflows/{}/dispatches",
owner, repo, workflow
);
let resp = self.send_post(&path, Some(params)).await?;
handle_empty_response(resp).await
}
}