jinxapi_github/v1_1_4/request/
repos_get_branch_protection.rs

1//! Get branch protection
2//! 
3//! Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.
4//! 
5//! [API method documentation](https://docs.github.com/rest/reference/repos#get-branch-protection)
6
7
8fn url_string(
9    base_url: &str,
10    p_owner: &str,
11    p_repo: &str,
12    p_branch: &str,
13) -> Result<String, crate::v1_1_4::ApiError> {
14    let trimmed = if base_url.is_empty() {
15        "https://api.github.com"
16    } else {
17        base_url.trim_end_matches('/')
18    };
19    let mut url = String::with_capacity(trimmed.len() + 48);
20    url.push_str(trimmed);
21    url.push_str("/repos/");
22    ::querylizer::Simple::extend(&mut url, &p_owner, false, &::querylizer::encode_path)?;
23    url.push('/');
24    ::querylizer::Simple::extend(&mut url, &p_repo, false, &::querylizer::encode_path)?;
25    url.push_str("/branches/");
26    ::querylizer::Simple::extend(&mut url, &p_branch, false, &::querylizer::encode_path)?;
27    url.push_str("/protection");
28    Ok(url)
29}
30
31#[cfg(feature = "hyper")]
32pub fn http_builder(
33    base_url: &str,
34    p_owner: &str,
35    p_repo: &str,
36    p_branch: &str,
37    h_user_agent: &str,
38    h_accept: ::std::option::Option<&str>,
39) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
40    let url = url_string(
41        base_url,
42        p_owner,
43        p_repo,
44        p_branch,
45    )?;
46    let mut builder = ::http::request::Request::get(url);
47    builder = builder.header(
48        "User-Agent",
49        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
50    );
51    if let Some(value) = &h_accept {
52        builder = builder.header(
53            "Accept",
54            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
55        );
56    }
57    Ok(builder)
58}
59
60#[cfg(feature = "hyper")]
61#[inline]
62pub fn hyper_request(
63    builder: ::http::request::Builder,
64) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
65    Ok(builder.body(::hyper::Body::empty())?)
66}
67
68#[cfg(feature = "reqwest")]
69pub fn reqwest_builder(
70    base_url: &str,
71    p_owner: &str,
72    p_repo: &str,
73    p_branch: &str,
74    h_user_agent: &str,
75    h_accept: ::std::option::Option<&str>,
76) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
77    let url = url_string(
78        base_url,
79        p_owner,
80        p_repo,
81        p_branch,
82    )?;
83    let reqwest_url = ::reqwest::Url::parse(&url)?;
84    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
85    let headers = request.headers_mut();
86    headers.append(
87        "User-Agent",
88        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
89    );
90    if let Some(value) = &h_accept {
91        headers.append(
92            "Accept",
93            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
94        );
95    }
96    Ok(request)
97}
98
99#[cfg(feature = "reqwest")]
100#[inline(always)]
101pub fn reqwest_request(
102    builder: ::reqwest::Request,
103) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
104{
105    Ok(builder)
106}
107
108#[cfg(feature = "reqwest-blocking")]
109pub fn reqwest_blocking_builder(
110    base_url: &str,
111    p_owner: &str,
112    p_repo: &str,
113    p_branch: &str,
114    h_user_agent: &str,
115    h_accept: ::std::option::Option<&str>,
116) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
117    let url = url_string(
118        base_url,
119        p_owner,
120        p_repo,
121        p_branch,
122    )?;
123    let reqwest_url = ::reqwest::Url::parse(&url)?;
124    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
125    let headers = request.headers_mut();
126    headers.append(
127        "User-Agent",
128        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
129    );
130    if let Some(value) = &h_accept {
131        headers.append(
132            "Accept",
133            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
134        );
135    }
136    Ok(request)
137}
138
139#[cfg(feature = "reqwest-blocking")]
140#[inline(always)]
141pub fn reqwest_blocking_request(
142    builder: ::reqwest::blocking::Request,
143) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
144{
145    Ok(builder)
146}