From 3c2afc1164c58a47ffe5a72b3cb308151226e2fd Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Mon, 26 Aug 2019 10:41:28 +0200 Subject: add-person: include github-id --- src/github.rs | 1 + src/main.rs | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/github.rs b/src/github.rs index 3810947..1d465f9 100644 --- a/src/github.rs +++ b/src/github.rs @@ -9,6 +9,7 @@ static TOKEN_VAR: &str = "GITHUB_TOKEN"; #[derive(serde::Deserialize)] pub(crate) struct User { + pub(crate) id: usize, pub(crate) login: String, pub(crate) name: Option, pub(crate) email: Option, diff --git a/src/main.rs b/src/main.rs index d8669bf..f4016db 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,9 +73,11 @@ fn run() -> Result<(), Error> { } Cli::AddPerson { ref github_name } => { #[derive(serde::Serialize)] + #[serde(rename_all = "kebab-case")] struct PersonToAdd<'a> { name: &'a str, github: &'a str, + github_id: usize, #[serde(skip_serializing_if = "Option::is_none")] email: Option<&'a str>, } @@ -83,6 +85,7 @@ fn run() -> Result<(), Error> { let github = github::GitHubApi::new(); let user = github.user(github_name)?; let github_name = user.login; + let github_id = user.id; if data.person(&github_name).is_some() { failure::bail!("person already in the repo: {}", github_name); @@ -99,6 +102,7 @@ fn run() -> Result<(), Error> { github_name.as_str() }), github: &github_name, + github_id, email: user.email.as_ref().map(|e| e.as_str()).or_else(|| { warn!("the person is missing the email on GitHub, leaving the field empty"); None -- cgit v1.2.3