jinxapi_github/v1_1_4/request/
actions_get_github_actions_permissions_repository.rs

1//! Get GitHub Actions permissions for a repository
2//! 
3//! Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository.
4//! 
5//! You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API.
6//! 
7//! [API method documentation](https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-a-repository)
8
9
10fn url_string(
11    base_url: &str,
12    p_owner: &str,
13    p_repo: &str,
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() + 46);
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/permissions");
27    Ok(url)
28}
29
30#[cfg(feature = "hyper")]
31pub fn http_builder(
32    base_url: &str,
33    p_owner: &str,
34    p_repo: &str,
35    h_user_agent: &str,
36    h_accept: ::std::option::Option<&str>,
37) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
38    let url = url_string(
39        base_url,
40        p_owner,
41        p_repo,
42    )?;
43    let mut builder = ::http::request::Request::get(url);
44    builder = builder.header(
45        "User-Agent",
46        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
47    );
48    if let Some(value) = &h_accept {
49        builder = builder.header(
50            "Accept",
51            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
52        );
53    }
54    Ok(builder)
55}
56
57#[cfg(feature = "hyper")]
58#[inline]
59pub fn hyper_request(
60    builder: ::http::request::Builder,
61) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
62    Ok(builder.body(::hyper::Body::empty())?)
63}
64
65#[cfg(feature = "reqwest")]
66pub fn reqwest_builder(
67    base_url: &str,
68    p_owner: &str,
69    p_repo: &str,
70    h_user_agent: &str,
71    h_accept: ::std::option::Option<&str>,
72) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
73    let url = url_string(
74        base_url,
75        p_owner,
76        p_repo,
77    )?;
78    let reqwest_url = ::reqwest::Url::parse(&url)?;
79    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
80    let headers = request.headers_mut();
81    headers.append(
82        "User-Agent",
83        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
84    );
85    if let Some(value) = &h_accept {
86        headers.append(
87            "Accept",
88            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
89        );
90    }
91    Ok(request)
92}
93
94#[cfg(feature = "reqwest")]
95#[inline(always)]
96pub fn reqwest_request(
97    builder: ::reqwest::Request,
98) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
99{
100    Ok(builder)
101}
102
103#[cfg(feature = "reqwest-blocking")]
104pub fn reqwest_blocking_builder(
105    base_url: &str,
106    p_owner: &str,
107    p_repo: &str,
108    h_user_agent: &str,
109    h_accept: ::std::option::Option<&str>,
110) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
111    let url = url_string(
112        base_url,
113        p_owner,
114        p_repo,
115    )?;
116    let reqwest_url = ::reqwest::Url::parse(&url)?;
117    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
118    let headers = request.headers_mut();
119    headers.append(
120        "User-Agent",
121        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
122    );
123    if let Some(value) = &h_accept {
124        headers.append(
125            "Accept",
126            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
127        );
128    }
129    Ok(request)
130}
131
132#[cfg(feature = "reqwest-blocking")]
133#[inline(always)]
134pub fn reqwest_blocking_request(
135    builder: ::reqwest::blocking::Request,
136) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
137{
138    Ok(builder)
139}