jinxapi_github/v1_1_4/request/
pulls_list.rs

1//! List pull requests
2//! 
3//! Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. 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/pulls#list-pull-requests)
6
7
8#[allow(clippy::too_many_arguments)]
9fn url_string(
10    base_url: &str,
11    p_owner: &str,
12    p_repo: &str,
13    q_state: ::std::option::Option<&str>,
14    q_head: ::std::option::Option<&str>,
15    q_base: ::std::option::Option<&str>,
16    q_sort: ::std::option::Option<&str>,
17    q_direction: ::std::option::Option<&str>,
18    q_per_page: ::std::option::Option<i64>,
19    q_page: ::std::option::Option<i64>,
20) -> Result<String, crate::v1_1_4::ApiError> {
21    let trimmed = if base_url.is_empty() {
22        "https://api.github.com"
23    } else {
24        base_url.trim_end_matches('/')
25    };
26    let mut url = String::with_capacity(trimmed.len() + 32);
27    url.push_str(trimmed);
28    url.push_str("/repos/");
29    ::querylizer::Simple::extend(&mut url, &p_owner, false, &::querylizer::encode_path)?;
30    url.push('/');
31    ::querylizer::Simple::extend(&mut url, &p_repo, false, &::querylizer::encode_path)?;
32    url.push_str("/pulls");
33    let mut prefix = '?';
34    if let Some(value) = &q_state {
35        url.push(::std::mem::replace(&mut prefix, '&'));
36        ::querylizer::Form::extend(&mut url, "state", value, false, &::querylizer::encode_query)?;
37    }
38    if let Some(value) = &q_head {
39        url.push(::std::mem::replace(&mut prefix, '&'));
40        ::querylizer::Form::extend(&mut url, "head", value, false, &::querylizer::encode_query)?;
41    }
42    if let Some(value) = &q_base {
43        url.push(::std::mem::replace(&mut prefix, '&'));
44        ::querylizer::Form::extend(&mut url, "base", value, false, &::querylizer::encode_query)?;
45    }
46    if let Some(value) = &q_sort {
47        url.push(::std::mem::replace(&mut prefix, '&'));
48        ::querylizer::Form::extend(&mut url, "sort", value, false, &::querylizer::encode_query)?;
49    }
50    if let Some(value) = &q_direction {
51        url.push(::std::mem::replace(&mut prefix, '&'));
52        ::querylizer::Form::extend(&mut url, "direction", value, false, &::querylizer::encode_query)?;
53    }
54    if let Some(value) = &q_per_page {
55        url.push(::std::mem::replace(&mut prefix, '&'));
56        ::querylizer::Form::extend(&mut url, "per_page", value, false, &::querylizer::encode_query)?;
57    }
58    if let Some(value) = &q_page {
59        url.push(::std::mem::replace(&mut prefix, '&'));
60        ::querylizer::Form::extend(&mut url, "page", value, false, &::querylizer::encode_query)?;
61    }
62    Ok(url)
63}
64
65#[cfg(feature = "hyper")]
66#[allow(clippy::too_many_arguments)]
67pub fn http_builder(
68    base_url: &str,
69    p_owner: &str,
70    p_repo: &str,
71    q_state: ::std::option::Option<&str>,
72    q_head: ::std::option::Option<&str>,
73    q_base: ::std::option::Option<&str>,
74    q_sort: ::std::option::Option<&str>,
75    q_direction: ::std::option::Option<&str>,
76    q_per_page: ::std::option::Option<i64>,
77    q_page: ::std::option::Option<i64>,
78    h_user_agent: &str,
79    h_accept: ::std::option::Option<&str>,
80) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
81    let url = url_string(
82        base_url,
83        p_owner,
84        p_repo,
85        q_state,
86        q_head,
87        q_base,
88        q_sort,
89        q_direction,
90        q_per_page,
91        q_page,
92    )?;
93    let mut builder = ::http::request::Request::get(url);
94    builder = builder.header(
95        "User-Agent",
96        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
97    );
98    if let Some(value) = &h_accept {
99        builder = builder.header(
100            "Accept",
101            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
102        );
103    }
104    Ok(builder)
105}
106
107#[cfg(feature = "hyper")]
108#[inline]
109pub fn hyper_request(
110    builder: ::http::request::Builder,
111) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
112    Ok(builder.body(::hyper::Body::empty())?)
113}
114
115#[cfg(feature = "reqwest")]
116#[allow(clippy::too_many_arguments)]
117pub fn reqwest_builder(
118    base_url: &str,
119    p_owner: &str,
120    p_repo: &str,
121    q_state: ::std::option::Option<&str>,
122    q_head: ::std::option::Option<&str>,
123    q_base: ::std::option::Option<&str>,
124    q_sort: ::std::option::Option<&str>,
125    q_direction: ::std::option::Option<&str>,
126    q_per_page: ::std::option::Option<i64>,
127    q_page: ::std::option::Option<i64>,
128    h_user_agent: &str,
129    h_accept: ::std::option::Option<&str>,
130) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
131    let url = url_string(
132        base_url,
133        p_owner,
134        p_repo,
135        q_state,
136        q_head,
137        q_base,
138        q_sort,
139        q_direction,
140        q_per_page,
141        q_page,
142    )?;
143    let reqwest_url = ::reqwest::Url::parse(&url)?;
144    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
145    let headers = request.headers_mut();
146    headers.append(
147        "User-Agent",
148        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
149    );
150    if let Some(value) = &h_accept {
151        headers.append(
152            "Accept",
153            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
154        );
155    }
156    Ok(request)
157}
158
159#[cfg(feature = "reqwest")]
160#[inline(always)]
161pub fn reqwest_request(
162    builder: ::reqwest::Request,
163) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
164{
165    Ok(builder)
166}
167
168#[cfg(feature = "reqwest-blocking")]
169#[allow(clippy::too_many_arguments)]
170pub fn reqwest_blocking_builder(
171    base_url: &str,
172    p_owner: &str,
173    p_repo: &str,
174    q_state: ::std::option::Option<&str>,
175    q_head: ::std::option::Option<&str>,
176    q_base: ::std::option::Option<&str>,
177    q_sort: ::std::option::Option<&str>,
178    q_direction: ::std::option::Option<&str>,
179    q_per_page: ::std::option::Option<i64>,
180    q_page: ::std::option::Option<i64>,
181    h_user_agent: &str,
182    h_accept: ::std::option::Option<&str>,
183) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
184    let url = url_string(
185        base_url,
186        p_owner,
187        p_repo,
188        q_state,
189        q_head,
190        q_base,
191        q_sort,
192        q_direction,
193        q_per_page,
194        q_page,
195    )?;
196    let reqwest_url = ::reqwest::Url::parse(&url)?;
197    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
198    let headers = request.headers_mut();
199    headers.append(
200        "User-Agent",
201        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
202    );
203    if let Some(value) = &h_accept {
204        headers.append(
205            "Accept",
206            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
207        );
208    }
209    Ok(request)
210}
211
212#[cfg(feature = "reqwest-blocking")]
213#[inline(always)]
214pub fn reqwest_blocking_request(
215    builder: ::reqwest::blocking::Request,
216) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
217{
218    Ok(builder)
219}