jinxapi_github/v1_1_4/request/
repos_list_branches.rs

1//! List branches
2//! 
3//! [API method documentation](https://docs.github.com/rest/reference/repos#list-branches)
4
5
6fn url_string(
7    base_url: &str,
8    p_owner: &str,
9    p_repo: &str,
10    q_protected: ::std::option::Option<bool>,
11    q_per_page: ::std::option::Option<i64>,
12    q_page: ::std::option::Option<i64>,
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() + 35);
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    let mut prefix = '?';
27    if let Some(value) = &q_protected {
28        url.push(::std::mem::replace(&mut prefix, '&'));
29        ::querylizer::Form::extend(&mut url, "protected", value, false, &::querylizer::encode_query)?;
30    }
31    if let Some(value) = &q_per_page {
32        url.push(::std::mem::replace(&mut prefix, '&'));
33        ::querylizer::Form::extend(&mut url, "per_page", value, false, &::querylizer::encode_query)?;
34    }
35    if let Some(value) = &q_page {
36        url.push(::std::mem::replace(&mut prefix, '&'));
37        ::querylizer::Form::extend(&mut url, "page", value, false, &::querylizer::encode_query)?;
38    }
39    Ok(url)
40}
41
42#[cfg(feature = "hyper")]
43#[allow(clippy::too_many_arguments)]
44pub fn http_builder(
45    base_url: &str,
46    p_owner: &str,
47    p_repo: &str,
48    q_protected: ::std::option::Option<bool>,
49    q_per_page: ::std::option::Option<i64>,
50    q_page: ::std::option::Option<i64>,
51    h_user_agent: &str,
52    h_accept: ::std::option::Option<&str>,
53) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
54    let url = url_string(
55        base_url,
56        p_owner,
57        p_repo,
58        q_protected,
59        q_per_page,
60        q_page,
61    )?;
62    let mut builder = ::http::request::Request::get(url);
63    builder = builder.header(
64        "User-Agent",
65        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
66    );
67    if let Some(value) = &h_accept {
68        builder = builder.header(
69            "Accept",
70            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
71        );
72    }
73    Ok(builder)
74}
75
76#[cfg(feature = "hyper")]
77#[inline]
78pub fn hyper_request(
79    builder: ::http::request::Builder,
80) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
81    Ok(builder.body(::hyper::Body::empty())?)
82}
83
84#[cfg(feature = "reqwest")]
85#[allow(clippy::too_many_arguments)]
86pub fn reqwest_builder(
87    base_url: &str,
88    p_owner: &str,
89    p_repo: &str,
90    q_protected: ::std::option::Option<bool>,
91    q_per_page: ::std::option::Option<i64>,
92    q_page: ::std::option::Option<i64>,
93    h_user_agent: &str,
94    h_accept: ::std::option::Option<&str>,
95) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
96    let url = url_string(
97        base_url,
98        p_owner,
99        p_repo,
100        q_protected,
101        q_per_page,
102        q_page,
103    )?;
104    let reqwest_url = ::reqwest::Url::parse(&url)?;
105    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
106    let headers = request.headers_mut();
107    headers.append(
108        "User-Agent",
109        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
110    );
111    if let Some(value) = &h_accept {
112        headers.append(
113            "Accept",
114            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
115        );
116    }
117    Ok(request)
118}
119
120#[cfg(feature = "reqwest")]
121#[inline(always)]
122pub fn reqwest_request(
123    builder: ::reqwest::Request,
124) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
125{
126    Ok(builder)
127}
128
129#[cfg(feature = "reqwest-blocking")]
130#[allow(clippy::too_many_arguments)]
131pub fn reqwest_blocking_builder(
132    base_url: &str,
133    p_owner: &str,
134    p_repo: &str,
135    q_protected: ::std::option::Option<bool>,
136    q_per_page: ::std::option::Option<i64>,
137    q_page: ::std::option::Option<i64>,
138    h_user_agent: &str,
139    h_accept: ::std::option::Option<&str>,
140) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
141    let url = url_string(
142        base_url,
143        p_owner,
144        p_repo,
145        q_protected,
146        q_per_page,
147        q_page,
148    )?;
149    let reqwest_url = ::reqwest::Url::parse(&url)?;
150    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
151    let headers = request.headers_mut();
152    headers.append(
153        "User-Agent",
154        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
155    );
156    if let Some(value) = &h_accept {
157        headers.append(
158            "Accept",
159            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
160        );
161    }
162    Ok(request)
163}
164
165#[cfg(feature = "reqwest-blocking")]
166#[inline(always)]
167pub fn reqwest_blocking_request(
168    builder: ::reqwest::blocking::Request,
169) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
170{
171    Ok(builder)
172}