From 8c5a91a7a3c946ce5314816ca050043c5a603f94 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Mon, 27 May 2024 11:28:51 +0200 Subject: feat: add PR link to response (#2) This also displays the response as an embed. Signed-off-by: Sefa Eyeoglu Co-authored-by: seth --- src/command/track.rs | 10 ++++++++-- src/http/github.rs | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/command/track.rs b/src/command/track.rs index 6217043..45715f4 100644 --- a/src/command/track.rs +++ b/src/command/track.rs @@ -1,7 +1,8 @@ -use crate::http::{Client, GithubClientExt}; +use crate::http::{Client, GithubClientExt, GITHUB_URL}; use eyre::Result; use futures::future::try_join_all; +use serenity::all::CreateEmbed; use serenity::builder::{CreateCommand, CreateCommandOption, CreateInteractionResponseFollowup}; use serenity::model::application::{ CommandInteraction, CommandOptionType, InstallationContext, ResolvedOption, ResolvedValue, @@ -111,7 +112,12 @@ pub async fn respond(ctx: &Context, http: &Client, command: &CommandInteraction) })) .await?; - CreateInteractionResponseFollowup::new().content(statuses.join("\n")) + let embed = CreateEmbed::new() + .title(format!("Nixpkgs PR #{} Status", *pr)) + .url(format!("{GITHUB_URL}/{REPO_OWNER}/{REPO_NAME}/pull/{}", pr)) + .description(statuses.join("\n")); + + CreateInteractionResponseFollowup::new().embed(embed) } } else { CreateInteractionResponseFollowup::new().content("Please provide a valid commit!") diff --git a/src/http/github.rs b/src/http/github.rs index bdb363e..8d4f18a 100644 --- a/src/http/github.rs +++ b/src/http/github.rs @@ -2,7 +2,8 @@ use super::{Error, HttpClientExt}; use serde::Deserialize; -const GITHUB_API: &str = "https://api.github.com"; +pub const GITHUB_URL: &str = "https://github.com"; +pub const GITHUB_API: &str = "https://api.github.com"; /// Bad version of `/repos/{owner}/{repo}/{compare}/{ref}...{ref}` #[derive(Deserialize)] -- cgit v1.2.3