jinxapi_github/v1_1_4/request/
actions_get_workflow_run.rs

1//! Get a workflow run
2//! 
3//! Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.
4//! 
5//! [API method documentation](https://docs.github.com/rest/reference/actions#get-a-workflow-run)
6
7
8fn url_string(
9    base_url: &str,
10    p_owner: &str,
11    p_repo: &str,
12    p_run_id: i64,
13    q_exclude_pull_requests: ::std::option::Option<bool>,
14) -> Result<String, crate::v1_1_4::ApiError> {
15    let trimmed = if base_url.is_empty() {
16        "https://api.github.com"
17    } else {
18        base_url.trim_end_matches('/')
19    };
20    let mut url = String::with_capacity(trimmed.len() + 41);
21    url.push_str(trimmed);
22    url.push_str("/repos/");
23    ::querylizer::Simple::extend(&mut url, &p_owner, false, &::querylizer::encode_path)?;
24    url.push('/');
25    ::querylizer::Simple::extend(&mut url, &p_repo, false, &::querylizer::encode_path)?;
26    url.push_str("/actions/runs/");
27    ::querylizer::Simple::extend(&mut url, &p_run_id, false, &::querylizer::encode_path)?;
28    if let Some(value) = &q_exclude_pull_requests {
29        url.push('?');
30        ::querylizer::Form::extend(&mut url, "exclude_pull_requests", value, false, &::querylizer::encode_query)?;
31    }
32    Ok(url)
33}
34
35#[cfg(feature = "hyper")]
36pub fn http_builder(
37    base_url: &str,
38    p_owner: &str,
39    p_repo: &str,
40    p_run_id: i64,
41    q_exclude_pull_requests: ::std::option::Option<bool>,
42    h_user_agent: &str,
43    h_accept: ::std::option::Option<&str>,
44) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
45    let url = url_string(
46        base_url,
47        p_owner,
48        p_repo,
49        p_run_id,
50        q_exclude_pull_requests,
51    )?;
52    let mut builder = ::http::request::Request::get(url);
53    builder = builder.header(
54        "User-Agent",
55        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
56    );
57    if let Some(value) = &h_accept {
58        builder = builder.header(
59            "Accept",
60            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
61        );
62    }
63    Ok(builder)
64}
65
66#[cfg(feature = "hyper")]
67#[inline]
68pub fn hyper_request(
69    builder: ::http::request::Builder,
70) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
71    Ok(builder.body(::hyper::Body::empty())?)
72}
73
74#[cfg(feature = "reqwest")]
75pub fn reqwest_builder(
76    base_url: &str,
77    p_owner: &str,
78    p_repo: &str,
79    p_run_id: i64,
80    q_exclude_pull_requests: ::std::option::Option<bool>,
81    h_user_agent: &str,
82    h_accept: ::std::option::Option<&str>,
83) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
84    let url = url_string(
85        base_url,
86        p_owner,
87        p_repo,
88        p_run_id,
89        q_exclude_pull_requests,
90    )?;
91    let reqwest_url = ::reqwest::Url::parse(&url)?;
92    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
93    let headers = request.headers_mut();
94    headers.append(
95        "User-Agent",
96        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
97    );
98    if let Some(value) = &h_accept {
99        headers.append(
100            "Accept",
101            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
102        );
103    }
104    Ok(request)
105}
106
107#[cfg(feature = "reqwest")]
108#[inline(always)]
109pub fn reqwest_request(
110    builder: ::reqwest::Request,
111) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
112{
113    Ok(builder)
114}
115
116#[cfg(feature = "reqwest-blocking")]
117pub fn reqwest_blocking_builder(
118    base_url: &str,
119    p_owner: &str,
120    p_repo: &str,
121    p_run_id: i64,
122    q_exclude_pull_requests: ::std::option::Option<bool>,
123    h_user_agent: &str,
124    h_accept: ::std::option::Option<&str>,
125) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
126    let url = url_string(
127        base_url,
128        p_owner,
129        p_repo,
130        p_run_id,
131        q_exclude_pull_requests,
132    )?;
133    let reqwest_url = ::reqwest::Url::parse(&url)?;
134    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
135    let headers = request.headers_mut();
136    headers.append(
137        "User-Agent",
138        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
139    );
140    if let Some(value) = &h_accept {
141        headers.append(
142            "Accept",
143            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
144        );
145    }
146    Ok(request)
147}
148
149#[cfg(feature = "reqwest-blocking")]
150#[inline(always)]
151pub fn reqwest_blocking_request(
152    builder: ::reqwest::blocking::Request,
153) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
154{
155    Ok(builder)
156}