semver_common/tools/git/auth/
github.rs1use r_log::Logger;
2use std::{collections::HashMap, fs::File, io::Write};
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 run_command(
16 "git",
17 ["config", "--global", "credential.helper", "store"],
18 Some(logger),
19 )?;
20 println!("Creating file...");
21 let mut github_credentials = File::create("~/.git-credentials")?;
22 println!("Writing file...");
23 github_credentials.write_all(format!("https://${}:${}@github.com", actor, token).as_bytes())?;
24 Ok(())
25}