jinxapi_github/v1_1_4/request/
migrations_get_commit_authors.rs

1//! Get commit authors
2//! 
3//! Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot <hubot@12341234-abab-fefe-8787-fedcba987654>`.
4//! 
5//! This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information.
6//! 
7//! [API method documentation](https://docs.github.com/rest/reference/migrations#get-commit-authors)
8
9
10fn url_string(
11    base_url: &str,
12    p_owner: &str,
13    p_repo: &str,
14    q_since: ::std::option::Option<i64>,
15) -> Result<String, crate::v1_1_4::ApiError> {
16    let trimmed = if base_url.is_empty() {
17        "https://api.github.com"
18    } else {
19        base_url.trim_end_matches('/')
20    };
21    let mut url = String::with_capacity(trimmed.len() + 41);
22    url.push_str(trimmed);
23    url.push_str("/repos/");
24    ::querylizer::Simple::extend(&mut url, &p_owner, false, &::querylizer::encode_path)?;
25    url.push('/');
26    ::querylizer::Simple::extend(&mut url, &p_repo, false, &::querylizer::encode_path)?;
27    url.push_str("/import/authors");
28    if let Some(value) = &q_since {
29        url.push('?');
30        ::querylizer::Form::extend(&mut url, "since", 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    q_since: ::std::option::Option<i64>,
41    h_user_agent: &str,
42    h_accept: ::std::option::Option<&str>,
43) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
44    let url = url_string(
45        base_url,
46        p_owner,
47        p_repo,
48        q_since,
49    )?;
50    let mut builder = ::http::request::Request::get(url);
51    builder = builder.header(
52        "User-Agent",
53        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
54    );
55    if let Some(value) = &h_accept {
56        builder = builder.header(
57            "Accept",
58            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
59        );
60    }
61    Ok(builder)
62}
63
64#[cfg(feature = "hyper")]
65#[inline]
66pub fn hyper_request(
67    builder: ::http::request::Builder,
68) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
69    Ok(builder.body(::hyper::Body::empty())?)
70}
71
72#[cfg(feature = "reqwest")]
73pub fn reqwest_builder(
74    base_url: &str,
75    p_owner: &str,
76    p_repo: &str,
77    q_since: ::std::option::Option<i64>,
78    h_user_agent: &str,
79    h_accept: ::std::option::Option<&str>,
80) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
81    let url = url_string(
82        base_url,
83        p_owner,
84        p_repo,
85        q_since,
86    )?;
87    let reqwest_url = ::reqwest::Url::parse(&url)?;
88    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
89    let headers = request.headers_mut();
90    headers.append(
91        "User-Agent",
92        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
93    );
94    if let Some(value) = &h_accept {
95        headers.append(
96            "Accept",
97            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
98        );
99    }
100    Ok(request)
101}
102
103#[cfg(feature = "reqwest")]
104#[inline(always)]
105pub fn reqwest_request(
106    builder: ::reqwest::Request,
107) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
108{
109    Ok(builder)
110}
111
112#[cfg(feature = "reqwest-blocking")]
113pub fn reqwest_blocking_builder(
114    base_url: &str,
115    p_owner: &str,
116    p_repo: &str,
117    q_since: ::std::option::Option<i64>,
118    h_user_agent: &str,
119    h_accept: ::std::option::Option<&str>,
120) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
121    let url = url_string(
122        base_url,
123        p_owner,
124        p_repo,
125        q_since,
126    )?;
127    let reqwest_url = ::reqwest::Url::parse(&url)?;
128    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
129    let headers = request.headers_mut();
130    headers.append(
131        "User-Agent",
132        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
133    );
134    if let Some(value) = &h_accept {
135        headers.append(
136            "Accept",
137            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
138        );
139    }
140    Ok(request)
141}
142
143#[cfg(feature = "reqwest-blocking")]
144#[inline(always)]
145pub fn reqwest_blocking_request(
146    builder: ::reqwest::blocking::Request,
147) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
148{
149    Ok(builder)
150}