gets latest commit sha from github to use for printing permalinks instead of hardcoded value (#6494)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
Arya 2023-04-13 18:23:52 -04:00 committed by GitHub
parent 166526a088
commit 3948449fa4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 3 deletions

View File

@ -94,9 +94,9 @@ fn github_remote_file_ref(file_path: &str, line: usize) -> String {
format!("https://github.com/ZcashFoundation/zebra/blob/main/{file_path}")
}
fn github_permalink(file_path: &str, line: usize) -> String {
fn github_permalink(sha: &str, file_path: &str, line: usize) -> String {
let file_path = &crate_mod_path(file_path, line);
format!("https://github.com/ZcashFoundation/zebra/blob/5db2243c25cdde03d9cdccd72a137ccc6f2370a5/{file_path}")
format!("https://github.com/ZcashFoundation/zebra/blob/{sha}/{file_path}")
}
fn crate_mod_path(file_path: &str, line: usize) -> String {
@ -108,6 +108,10 @@ fn github_issue_api_url(issue_id: &str) -> String {
format!("https://api.github.com/repos/ZcashFoundation/zebra/issues/{issue_id}")
}
fn github_ref_api_url(reference: &str) -> String {
format!("https://api.github.com/repos/ZcashFoundation/zebra/git/ref/{reference}")
}
#[derive(Debug)]
struct PossibleIssueRef {
file_path: String,
@ -255,6 +259,22 @@ to create a github token."
let client = ClientBuilder::new().default_headers(headers).build()?;
// get latest commit sha on main
let latest_commit_json: serde_json::Value = serde_json::from_str::<serde_json::Value>(
&client
.get(github_ref_api_url("heads/main"))
.send()
.await?
.text()
.await?,
)
.expect("response text should be json");
let latest_commit_sha = latest_commit_json["object"]["sha"]
.as_str()
.expect("response.object.sha should be a string");
let mut github_api_requests = JoinSet::new();
for (id, issue_refs) in possible_issue_refs {
@ -311,7 +331,7 @@ to create a github token."
{
num_closed_issue_refs += 1;
let github_permalink = github_permalink(&file_path, line_number);
let github_permalink = github_permalink(latest_commit_sha, &file_path, line_number);
println!("{github_permalink}");
}