Skip to content

Commit 0f29261

Browse files
committed
Share request building
1 parent 205d213 commit 0f29261

File tree

1 file changed

+53
-85
lines changed

1 file changed

+53
-85
lines changed

site/src/github/client.rs

Lines changed: 53 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,8 @@ impl Client {
4141
sha: &'a str,
4242
}
4343
let url = format!("{}/git/refs", self.repository_url);
44-
let response = self
45-
.inner
46-
.post(&url)
47-
.json(&CreateRefRequest { ref_, sha })
48-
.header(USER_AGENT, "perf-rust-lang-org-server")
49-
.basic_auth("rust-timer", Some(&self.token))
50-
.send()
51-
.await
52-
.context("POST git/refs failed")?;
44+
let req = self.inner.post(&url).json(&CreateRefRequest { ref_, sha });
45+
let response = self.send(req).await.context("POST git/refs failed")?;
5346
if response.status() != reqwest::StatusCode::CREATED {
5447
anyhow::bail!("{:?} != 201 CREATED", response.status());
5548
}
@@ -78,21 +71,14 @@ impl Client {
7871
}
7972

8073
let url = format!("{}/pulls", self.repository_url);
81-
let response = self
82-
.inner
83-
.post(&url)
84-
.json(&CreatePrRequest {
85-
title,
86-
head,
87-
base,
88-
description,
89-
draft,
90-
})
91-
.header(USER_AGENT, "perf-rust-lang-org-server")
92-
.basic_auth("rust-timer", Some(&self.token))
93-
.send()
94-
.await
95-
.context("POST pulls failed")?;
74+
let req = self.inner.post(&url).json(&CreatePrRequest {
75+
title,
76+
head,
77+
base,
78+
description,
79+
draft,
80+
});
81+
let response = self.send(req).await.context("POST pulls failed")?;
9682
if response.status() != reqwest::StatusCode::CREATED {
9783
anyhow::bail!("{:?} != 201 CREATED", response.status());
9884
}
@@ -107,17 +93,14 @@ impl Client {
10793
force: bool,
10894
}
10995
let url = format!("{}/git/refs/{}", self.repository_url, branch);
110-
let commit_response = self
96+
let req = self
11197
.inner
11298
.patch(&url)
113-
.json(&UpdateBranchRequest { sha, force: true })
114-
.header(USER_AGENT, "perf-rust-lang-org-server")
115-
.basic_auth("rust-timer", Some(&self.token))
116-
.send()
117-
.await
118-
.context("PATCH git/refs failed")?;
119-
if commit_response.status() != reqwest::StatusCode::OK {
120-
anyhow::bail!("{:?} != 200 OK", commit_response.status());
99+
.json(&UpdateBranchRequest { sha, force: true });
100+
101+
let response = self.send(req).await.context("PATCH git/refs failed")?;
102+
if response.status() != reqwest::StatusCode::OK {
103+
anyhow::bail!("{:?} != 200 OK", response.status());
121104
}
122105

123106
Ok(())
@@ -136,19 +119,12 @@ impl Client {
136119
commit_message: &'a str,
137120
}
138121
let url = format!("{}/merges", self.repository_url);
139-
let response = self
140-
.inner
141-
.patch(&url)
142-
.json(&MergeBranchRequest {
143-
base: branch,
144-
head: sha,
145-
commit_message,
146-
})
147-
.header(USER_AGENT, "perf-rust-lang-org-server")
148-
.basic_auth("rust-timer", Some(&self.token))
149-
.send()
150-
.await
151-
.context("PATCH /merges failed")?;
122+
let req = self.inner.patch(&url).json(&MergeBranchRequest {
123+
base: branch,
124+
head: sha,
125+
commit_message,
126+
});
127+
let response = self.send(req).await.context("PATCH /merges failed")?;
152128
if !response.status().is_success() {
153129
anyhow::bail!("{:?} != 201 CREATED", response.status());
154130
}
@@ -169,24 +145,18 @@ impl Client {
169145
parents: &'a [&'a str],
170146
}
171147
let url = format!("{}/git/commits", self.repository_url);
172-
let commit_response = self
173-
.inner
174-
.post(&url)
175-
.json(&CreateCommitRequest {
176-
message,
177-
tree,
178-
parents,
179-
})
180-
.header(USER_AGENT, "perf-rust-lang-org-server")
181-
.basic_auth("rust-timer", Some(&self.token))
182-
.send()
183-
.await
184-
.context("POST git/commits failed")?;
185-
if commit_response.status() != reqwest::StatusCode::CREATED {
186-
anyhow::bail!("{:?} != 201 CREATED", commit_response.status());
148+
let req = self.inner.post(&url).json(&CreateCommitRequest {
149+
message,
150+
tree,
151+
parents,
152+
});
153+
154+
let response = self.send(req).await.context("POST git/commits failed")?;
155+
if response.status() != reqwest::StatusCode::CREATED {
156+
anyhow::bail!("{:?} != 201 CREATED", response.status());
187157
}
188158

189-
Ok(commit_response
159+
Ok(response
190160
.json::<CreateCommitResponse>()
191161
.await
192162
.context("deserializing failed")?
@@ -195,14 +165,8 @@ impl Client {
195165

196166
pub async fn get_issue(&self, number: u64) -> anyhow::Result<Issue> {
197167
let url = format!("{}/issues/{}", self.repository_url, number);
198-
let response = self
199-
.inner
200-
.get(&url)
201-
.header(USER_AGENT, "perf-rust-lang-org-server")
202-
.basic_auth("rust-timer", Some(&self.token))
203-
.send()
204-
.await
205-
.context("cannot get issue")?;
168+
let req = self.inner.get(&url);
169+
let response = self.send(req).await.context("cannot get issue")?;
206170
if !response.status().is_success() {
207171
anyhow::bail!("{:?} != 200 OK", response.status());
208172
}
@@ -212,15 +176,9 @@ impl Client {
212176

213177
pub async fn get_commit(&self, sha: &str) -> anyhow::Result<Commit> {
214178
let url = format!("{}/commits/{}", self.repository_url, sha);
215-
let commit_response = self
216-
.inner
217-
.get(&url)
218-
.header(USER_AGENT, "perf-rust-lang-org-server")
219-
.basic_auth("rust-timer", Some(&self.token))
220-
.send()
221-
.await
222-
.context("cannot get commit")?;
223-
commit_response
179+
let req = self.inner.get(&url);
180+
let response = self.send(req).await.context("cannot get commit")?;
181+
response
224182
.json()
225183
.await
226184
.map_err(|e| anyhow::anyhow!("cannot deserialize commit: {:?}", e))
@@ -235,19 +193,29 @@ impl Client {
235193
pub body: String,
236194
}
237195
let body = body.into();
238-
let client = reqwest::Client::new();
239-
let req = client
196+
let req = self
197+
.inner
240198
.post(&format!("{}/issues/{}/comments", self.repository_url, pr))
241199
.json(&PostComment {
242200
body: body.to_owned(),
243-
})
244-
.header(USER_AGENT, "perf-rust-lang-org-server")
245-
.basic_auth("rust-timer", Some(&self.token));
201+
});
202+
let resp = self.send(req).await;
246203

247-
if let Err(e) = req.send().await {
204+
if let Err(e) = resp {
248205
eprintln!("failed to post comment: {:?}", e);
249206
}
250207
}
208+
209+
async fn send(
210+
&self,
211+
request: reqwest::RequestBuilder,
212+
) -> Result<reqwest::Response, reqwest::Error> {
213+
request
214+
.header(USER_AGENT, "perf-rust-lang-org-server")
215+
.basic_auth("rust-timer", Some(&self.token))
216+
.send()
217+
.await
218+
}
251219
}
252220

253221
#[derive(Debug, serde::Deserialize)]

0 commit comments

Comments
 (0)