changelog: obtain maintainer infomation
This commit is contained in:
@@ -70,7 +70,8 @@ pub fn generate_entry(changelog_file: &str, cwd: Option<&Path>, user_version: Op
|
||||
compute_new_version(&old_version, false, false, false)
|
||||
};
|
||||
|
||||
let new_entry = format_entry(&package, &new_version, &series, &commits, "Test Test", "test@test");
|
||||
let (maintainer_name, maintainer_email) = get_maintainer_info()?;
|
||||
let new_entry = format_entry(&package, &new_version, &series, &commits, &maintainer_name, &maintainer_email);
|
||||
|
||||
prepend_to_file(&changelog_path, &new_entry)?;
|
||||
|
||||
@@ -251,6 +252,19 @@ fn prepend_to_file(path: &Path, content: &str) -> Result<(), Box<dyn std::error:
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn get_maintainer_info() -> Result<(String, String), Box<dyn std::error::Error>> {
|
||||
// From environment variables
|
||||
if let (Ok(name), Ok(email)) = (std::env::var("DEBFULLNAME"), std::env::var("DEBEMAIL")) {
|
||||
return Ok((name, email));
|
||||
}
|
||||
|
||||
// From git config
|
||||
let config = git2::Config::open_default()?;
|
||||
let name = config.get_string("user.name")?;
|
||||
let email = config.get_string("user.email")?;
|
||||
Ok((name, email))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
@@ -340,4 +354,18 @@ mod tests {
|
||||
assert_eq!(compute_new_version("1.0.5", false, false, false), "1.0.6");
|
||||
assert_eq!(compute_new_version("20241126", false, false, false), "20241127");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_get_maintainer_info() {
|
||||
// Test with env vars
|
||||
std::env::set_var("DEBFULLNAME", "Env Name");
|
||||
std::env::set_var("DEBEMAIL", "env@example.com");
|
||||
|
||||
let (name, email) = get_maintainer_info().unwrap();
|
||||
assert_eq!(name, "Env Name");
|
||||
assert_eq!(email, "env@example.com");
|
||||
|
||||
std::env::remove_var("DEBFULLNAME");
|
||||
std::env::remove_var("DEBEMAIL");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user