semver_common/tools/git/auth/
github.rs1use r_log::Logger;
2use std::collections::HashMap;
3
4use crate::{Alert, run_command};
5
6pub fn set_remote(env: &HashMap<String, String>, logger: &Logger) -> Result<(), Alert> {
8 logger.info("Authenticating with Github");
9 let actor = env
10 .get("GITHUB_ACTOR")
11 .ok_or("GITHUB_ACTOR not in environment variables.")?;
12 let token = env
13 .get("GITHUB_TOKEN")
14 .ok_or("GITHUB_TOKEN not in environment variables.")?;
15 let repo = env
16 .get("GITHUB_REPOSITORY")
17 .ok_or("GITHUB_REPOSITORY not in environment variables.")?;
18 run_command(
19 "git",
20 [
21 "remote",
22 "set-url",
23 "origin",
24 &format!("https://${}:${}@github.com/{}.git", actor, token, repo),
25 ],
26 Some(logger),
27 )?;
28 run_command(
29 "git",
30 ["config", "--global", "user.name", actor],
31 Some(logger),
32 )?;
33 Ok(())
34}