From 274804ed8c422a961e13e06ac7c128d52e7a0a5e Mon Sep 17 00:00:00 2001 From: trivernis Date: Fri, 16 Apr 2021 13:54:57 +0200 Subject: [PATCH 1/6] Change DJ role check to be a serenity check Signed-off-by: trivernis --- src/commands/music/clear_queue.rs | 8 ++------ src/commands/music/leave.rs | 7 ++----- src/commands/music/mod.rs | 28 ++++++++++++++++++++++++++-- src/commands/music/move_song.rs | 10 +++------- src/commands/music/pause.rs | 7 ++----- src/commands/music/play.rs | 2 +- src/commands/music/play_next.rs | 9 +++------ src/commands/music/remove_song.rs | 7 ++----- src/commands/music/save_playlist.rs | 7 ++----- src/commands/music/shuffle.rs | 7 ++----- src/commands/music/skip.rs | 7 ++----- 11 files changed, 47 insertions(+), 52 deletions(-) diff --git a/src/commands/music/clear_queue.rs b/src/commands/music/clear_queue.rs index da3b11f..cf315c0 100644 --- a/src/commands/music/clear_queue.rs +++ b/src/commands/music/clear_queue.rs @@ -4,7 +4,7 @@ use serenity::framework::standard::CommandResult; use serenity::model::channel::Message; use crate::commands::common::handle_autodelete; -use crate::commands::music::{get_queue_for_guild, is_dj}; +use crate::commands::music::{get_queue_for_guild, DJ_CHECK}; use bot_serenityutils::core::SHORT_TIMEOUT; use bot_serenityutils::ephemeral_message::EphemeralMessage; @@ -14,13 +14,9 @@ use bot_serenityutils::ephemeral_message::EphemeralMessage; #[usage("")] #[aliases("cq", "clear-queue", "clearqueue")] #[bucket("general")] +#[checks(DJ)] async fn clear_queue(ctx: &Context, msg: &Message) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); - - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } log::debug!("Clearing queue for guild {}", guild.id); let queue = forward_error!( diff --git a/src/commands/music/leave.rs b/src/commands/music/leave.rs index dbe61f5..59431c7 100644 --- a/src/commands/music/leave.rs +++ b/src/commands/music/leave.rs @@ -4,7 +4,7 @@ use serenity::framework::standard::CommandResult; use serenity::model::channel::Message; use crate::commands::common::handle_autodelete; -use crate::commands::music::{get_voice_manager, is_dj}; +use crate::commands::music::{get_voice_manager, DJ_CHECK}; use crate::utils::context_data::Store; use bot_serenityutils::core::SHORT_TIMEOUT; use bot_serenityutils::ephemeral_message::EphemeralMessage; @@ -15,13 +15,10 @@ use bot_serenityutils::ephemeral_message::EphemeralMessage; #[usage("")] #[aliases("stop")] #[bucket("general")] +#[checks(DJ)] async fn leave(ctx: &Context, msg: &Message) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); log::debug!("Leave request received for guild {}", guild.id); - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } let manager = get_voice_manager(ctx).await; let queue = { diff --git a/src/commands/music/mod.rs b/src/commands/music/mod.rs index f1839fa..9b1490f 100644 --- a/src/commands/music/mod.rs +++ b/src/commands/music/mod.rs @@ -3,10 +3,11 @@ use std::sync::atomic::{AtomicIsize, AtomicUsize, Ordering}; use std::sync::Arc; use std::time::Duration; +use aspotify::Track; use regex::Regex; use serenity::async_trait; use serenity::client::Context; -use serenity::framework::standard::macros::group; +use serenity::framework::standard::macros::{check, group}; use serenity::http::Http; use serenity::model::channel::Message; use serenity::model::guild::Guild; @@ -39,8 +40,8 @@ use crate::providers::music::{add_youtube_song_to_database, youtube_dl}; use crate::providers::settings::{get_setting, Setting}; use crate::utils::context_data::{DatabaseContainer, Store}; use crate::utils::error::{BotError, BotResult}; -use aspotify::Track; use bot_database::Database; +use serenity::framework::standard::{Args, CommandOptions, Reason}; mod clear_queue; mod current; @@ -415,6 +416,29 @@ async fn added_multiple_msg(ctx: &Context, msg: &Message, songs: &mut Vec) Ok(()) } +#[check] +#[name = "DJ"] +pub async fn check_dj( + ctx: &Context, + msg: &Message, + _: &mut Args, + _: &CommandOptions, +) -> Result<(), Reason> { + let guild = msg + .guild(&ctx.cache) + .await + .ok_or(Reason::Log("Not in a guild".to_string()))?; + + if is_dj(ctx, guild.id, &msg.author) + .await + .map_err(|e| Reason::Log(format!("{:?}", e)))? + { + Ok(()) + } else { + Err(Reason::User("Lacking DJ role".to_string())) + } +} + /// Returns if the given user is a dj in the given guild based on the /// setting for the name of the dj role pub async fn is_dj(ctx: &Context, guild: GuildId, user: &User) -> BotResult { diff --git a/src/commands/music/move_song.rs b/src/commands/music/move_song.rs index fe88e60..7472ec8 100644 --- a/src/commands/music/move_song.rs +++ b/src/commands/music/move_song.rs @@ -1,5 +1,5 @@ use crate::commands::common::handle_autodelete; -use crate::commands::music::{get_queue_for_guild, is_dj}; +use crate::commands::music::{get_queue_for_guild, DJ_CHECK}; use bot_serenityutils::core::SHORT_TIMEOUT; use bot_serenityutils::ephemeral_message::EphemeralMessage; use serenity::client::Context; @@ -11,11 +11,11 @@ use serenity::model::channel::Message; #[description("Moves a song in the queue from one position to a new one")] #[usage(" ")] #[example("102 2")] -#[min_args(2)] -#[max_args(2)] +#[num_args(2)] #[bucket("general")] #[only_in(guilds)] #[aliases("mvs", "movesong", "move-song")] +#[checks(DJ)] async fn move_song(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); log::debug!("Moving song for guild {}", guild.id); @@ -23,10 +23,6 @@ async fn move_song(ctx: &Context, msg: &Message, mut args: Args) -> CommandResul let pos1 = args.single::()?; let pos2 = args.single::()?; - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } { let queue = forward_error!( ctx, diff --git a/src/commands/music/pause.rs b/src/commands/music/pause.rs index 276bff3..3b0de63 100644 --- a/src/commands/music/pause.rs +++ b/src/commands/music/pause.rs @@ -4,7 +4,7 @@ use serenity::model::channel::Message; use serenity::prelude::*; use crate::commands::common::handle_autodelete; -use crate::commands::music::{get_queue_for_guild, is_dj}; +use crate::commands::music::{get_queue_for_guild, DJ_CHECK}; use crate::messages::music::now_playing::update_now_playing_msg; use bot_serenityutils::core::SHORT_TIMEOUT; use bot_serenityutils::ephemeral_message::EphemeralMessage; @@ -14,13 +14,10 @@ use bot_serenityutils::ephemeral_message::EphemeralMessage; #[description("Pauses playback")] #[usage("")] #[bucket("general")] +#[checks(DJ)] async fn pause(ctx: &Context, msg: &Message) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); log::debug!("Pausing playback for guild {}", guild.id); - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } let queue = forward_error!( ctx, diff --git a/src/commands/music/play.rs b/src/commands/music/play.rs index 70c96c6..99a6fa4 100644 --- a/src/commands/music/play.rs +++ b/src/commands/music/play.rs @@ -13,7 +13,7 @@ use crate::providers::settings::{get_setting, Setting}; #[command] #[only_in(guilds)] #[description("Plays a song in a voice channel")] -#[usage("()")] +#[usage("(|||pl:)")] #[min_args(1)] #[aliases("p")] #[bucket("music_api")] diff --git a/src/commands/music/play_next.rs b/src/commands/music/play_next.rs index bc8b72f..4beee09 100644 --- a/src/commands/music/play_next.rs +++ b/src/commands/music/play_next.rs @@ -5,8 +5,8 @@ use serenity::model::channel::Message; use crate::commands::common::handle_autodelete; use crate::commands::music::{ - get_channel_for_author, get_queue_for_guild, get_songs_for_query, get_voice_manager, is_dj, - join_channel, play_next_in_queue, + get_channel_for_author, get_queue_for_guild, get_songs_for_query, get_voice_manager, + join_channel, play_next_in_queue, DJ_CHECK, }; #[command] @@ -16,15 +16,12 @@ use crate::commands::music::{ #[min_args(1)] #[aliases("pn", "play-next", "playnext")] #[bucket("music_api")] +#[checks(DJ)] async fn play_next(ctx: &Context, msg: &Message, args: Args) -> CommandResult { let query = args.message(); let guild = msg.guild(&ctx.cache).await.unwrap(); log::debug!("Playing song as next song for guild {}", guild.id); - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } let manager = get_voice_manager(ctx).await; let mut handler = manager.get(guild.id); diff --git a/src/commands/music/remove_song.rs b/src/commands/music/remove_song.rs index 344ccf1..8bbee03 100644 --- a/src/commands/music/remove_song.rs +++ b/src/commands/music/remove_song.rs @@ -1,5 +1,5 @@ use crate::commands::common::handle_autodelete; -use crate::commands::music::{get_queue_for_guild, is_dj}; +use crate::commands::music::{get_queue_for_guild, DJ_CHECK}; use bot_serenityutils::core::SHORT_TIMEOUT; use bot_serenityutils::ephemeral_message::EphemeralMessage; use serenity::client::Context; @@ -16,16 +16,13 @@ use serenity::model::channel::Message; #[bucket("general")] #[only_in(guilds)] #[aliases("rms", "removesong", "remove-song")] +#[checks(DJ)] async fn remove_song(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); log::debug!("Moving song for guild {}", guild.id); let pos = args.single::()?; - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } { let queue = forward_error!( ctx, diff --git a/src/commands/music/save_playlist.rs b/src/commands/music/save_playlist.rs index 46f2b33..9063f05 100644 --- a/src/commands/music/save_playlist.rs +++ b/src/commands/music/save_playlist.rs @@ -3,7 +3,7 @@ use serenity::framework::standard::macros::command; use serenity::framework::standard::{Args, CommandResult}; use serenity::model::channel::Message; -use crate::commands::music::is_dj; +use crate::commands::music::DJ_CHECK; use crate::utils::context_data::get_database_from_context; #[command] @@ -14,13 +14,10 @@ use crate::utils::context_data::get_database_from_context; #[min_args(2)] #[aliases("add-playlist", "save-playlist")] #[bucket("general")] +#[checks(DJ)] async fn save_playlist(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } let name: String = args.single().unwrap(); let url: &str = args.remains().unwrap(); log::debug!( diff --git a/src/commands/music/shuffle.rs b/src/commands/music/shuffle.rs index 02c32c2..115e3ea 100644 --- a/src/commands/music/shuffle.rs +++ b/src/commands/music/shuffle.rs @@ -4,7 +4,7 @@ use serenity::framework::standard::CommandResult; use serenity::model::channel::Message; use crate::commands::common::handle_autodelete; -use crate::commands::music::{get_queue_for_guild, is_dj}; +use crate::commands::music::{get_queue_for_guild, DJ_CHECK}; use bot_serenityutils::core::SHORT_TIMEOUT; use bot_serenityutils::ephemeral_message::EphemeralMessage; @@ -14,14 +14,11 @@ use bot_serenityutils::ephemeral_message::EphemeralMessage; #[usage("")] #[aliases("sh")] #[bucket("general")] +#[checks(DJ)] async fn shuffle(ctx: &Context, msg: &Message) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); log::debug!("Shuffling queue for guild {}", guild.id); - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } let queue = forward_error!( ctx, msg.channel_id, diff --git a/src/commands/music/skip.rs b/src/commands/music/skip.rs index cf0d48f..596e136 100644 --- a/src/commands/music/skip.rs +++ b/src/commands/music/skip.rs @@ -4,7 +4,7 @@ use serenity::framework::standard::CommandResult; use serenity::model::channel::Message; use crate::commands::common::handle_autodelete; -use crate::commands::music::{get_queue_for_guild, is_dj}; +use crate::commands::music::{get_queue_for_guild, DJ_CHECK}; use bot_serenityutils::core::SHORT_TIMEOUT; use bot_serenityutils::ephemeral_message::EphemeralMessage; @@ -14,12 +14,9 @@ use bot_serenityutils::ephemeral_message::EphemeralMessage; #[usage("")] #[aliases("next")] #[bucket("general")] +#[checks(DJ)] async fn skip(ctx: &Context, msg: &Message) -> CommandResult { let guild = msg.guild(&ctx.cache).await.unwrap(); - if !is_dj(ctx, guild.id, &msg.author).await? { - msg.channel_id.say(ctx, "Requires DJ permissions").await?; - return Ok(()); - } log::debug!("Skipping song for guild {}", guild.id); let queue = forward_error!( ctx, From 3ff8371680beaa45994c071984839838aba4cc5f Mon Sep 17 00:00:00 2001 From: trivernis Date: Fri, 16 Apr 2021 14:00:07 +0200 Subject: [PATCH 2/6] Change command usage descriptions to be docopt compatible Signed-off-by: trivernis --- src/commands/misc/add_gif.rs | 2 +- src/commands/misc/shutdown.rs | 2 +- src/commands/misc/time.rs | 2 +- src/commands/music/play_next.rs | 2 +- src/commands/music/remove_song.rs | 3 +-- src/commands/music/save_playlist.rs | 4 ++-- src/commands/settings/get.rs | 2 +- src/commands/settings/set.rs | 2 +- src/commands/weeb/pekofy.rs | 2 +- 9 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/commands/misc/add_gif.rs b/src/commands/misc/add_gif.rs index 0b3ac71..f0a040c 100644 --- a/src/commands/misc/add_gif.rs +++ b/src/commands/misc/add_gif.rs @@ -9,7 +9,7 @@ use serenity::model::channel::Message; #[command] #[description("Simple ping test command")] -#[usage(" () ()")] +#[usage(" [] []")] #[bucket("general")] #[aliases("add-gif", "addgif")] #[min_args(1)] diff --git a/src/commands/misc/shutdown.rs b/src/commands/misc/shutdown.rs index 05625f0..7911348 100644 --- a/src/commands/misc/shutdown.rs +++ b/src/commands/misc/shutdown.rs @@ -11,7 +11,7 @@ use crate::commands::common::handle_autodelete; #[description("Shuts down the bot with the specified exit code")] #[min_args(0)] #[max_args(1)] -#[usage("()")] +#[usage("[]")] #[owners_only] async fn shutdown(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { let code = args.single::().unwrap_or(0); diff --git a/src/commands/misc/time.rs b/src/commands/misc/time.rs index 760d6ca..b2a8f36 100644 --- a/src/commands/misc/time.rs +++ b/src/commands/misc/time.rs @@ -9,7 +9,7 @@ use serenity::model::channel::Message; #[description("Converts a time into a different timezone")] #[min_args(1)] #[max_args(3)] -#[usage("<%H:%M/now> () ()")] +#[usage("(now | <%H:%M>) [] []")] #[bucket("general")] async fn time(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { let when = args.single::().unwrap_or("now".to_string()); diff --git a/src/commands/music/play_next.rs b/src/commands/music/play_next.rs index 4beee09..bfdcf64 100644 --- a/src/commands/music/play_next.rs +++ b/src/commands/music/play_next.rs @@ -12,7 +12,7 @@ use crate::commands::music::{ #[command] #[only_in(guilds)] #[description("Puts a song as the next to play in the queue")] -#[usage("")] +#[usage("(|||pl:)")] #[min_args(1)] #[aliases("pn", "play-next", "playnext")] #[bucket("music_api")] diff --git a/src/commands/music/remove_song.rs b/src/commands/music/remove_song.rs index 8bbee03..a244921 100644 --- a/src/commands/music/remove_song.rs +++ b/src/commands/music/remove_song.rs @@ -11,8 +11,7 @@ use serenity::model::channel::Message; #[description("Removes a song from the queue")] #[usage("")] #[example("102")] -#[min_args(1)] -#[max_args(1)] +#[num_args(1)] #[bucket("general")] #[only_in(guilds)] #[aliases("rms", "removesong", "remove-song")] diff --git a/src/commands/music/save_playlist.rs b/src/commands/music/save_playlist.rs index 9063f05..57685bd 100644 --- a/src/commands/music/save_playlist.rs +++ b/src/commands/music/save_playlist.rs @@ -9,10 +9,10 @@ use crate::utils::context_data::get_database_from_context; #[command] #[only_in(guilds)] #[description("Adds a playlist to the guilds saved playlists")] -#[usage(" ")] +#[usage(" (|")] #[example("anime https://www.youtube.com/playlist?list=PLqaM77H_o5hykROCe3uluvZEaPo6bZj-C")] #[min_args(2)] -#[aliases("add-playlist", "save-playlist")] +#[aliases("add-playlist", "save-playlist", "saveplaylist", "savepl")] #[bucket("general")] #[checks(DJ)] async fn save_playlist(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { diff --git a/src/commands/settings/get.rs b/src/commands/settings/get.rs index da4669c..280d485 100644 --- a/src/commands/settings/get.rs +++ b/src/commands/settings/get.rs @@ -9,7 +9,7 @@ use crate::utils::context_data::get_database_from_context; #[command] #[only_in(guilds)] #[description("Get a guild setting")] -#[usage("()")] +#[usage("[]")] #[example("music.autoshuffle")] #[min_args(0)] #[max_args(1)] diff --git a/src/commands/settings/set.rs b/src/commands/settings/set.rs index 62b38a0..b14e5d6 100644 --- a/src/commands/settings/set.rs +++ b/src/commands/settings/set.rs @@ -11,7 +11,7 @@ use crate::utils::context_data::get_database_from_context; #[description( "Set a guild setting. If no value is given the setting will be reset to the default value." )] -#[usage(" ()")] +#[usage(" []")] #[example("music.autoshuffle true")] #[min_args(1)] #[max_args(2)] diff --git a/src/commands/weeb/pekofy.rs b/src/commands/weeb/pekofy.rs index 752d3d3..5e1053d 100644 --- a/src/commands/weeb/pekofy.rs +++ b/src/commands/weeb/pekofy.rs @@ -22,7 +22,7 @@ static GIF_CATEGORY: &str = "pain-peko"; #[command] #[description("Pekofy messages")] -#[usage("()")] +#[usage("[...]")] #[example("Hello")] #[aliases("peko")] #[bucket("general")] From 91f01c9c51b994469f0391faba326859a249cf15 Mon Sep 17 00:00:00 2001 From: trivernis Date: Sat, 17 Apr 2021 11:38:58 +0200 Subject: [PATCH 3/6] Add gpg sign test to debug action Signed-off-by: trivernis --- .github/workflows/build.yml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d9809d2..f2b4f99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,4 +42,25 @@ jobs: run: cargo test --verbose --package bot-database - name: Test binary - run: cargo test --verbose \ No newline at end of file + run: cargo test --verbose + + - name: Move binaries + run: mv target/x86_64-unknown-linux-gnu/debug/tobi-rs target/tobi-rs-linux-x86_64_debug + + - name: Import GPG key + id: import_gpg + uses: crazy-max/ghaction-import-gpg@v3 + with: + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.PASSPHRASE }} + + - name: Sign artifact + run: gpg --detach-sign --sign --armor --default-key steps.import_gpg.outputs.keyid --output target/tobi-rs-linux-x86_64_debug.sig target/tobi-rs-linux-x86_64_debug + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: tobi-rs-linux_debug + path: | + target/tobi-rs-linux-x86_64_debug + target/tobi-rs-linux-x86_64_debug.sig \ No newline at end of file From d1e8f0f51f9efb15025532d959e81e3ecfdcd99e Mon Sep 17 00:00:00 2001 From: trivernis Date: Sat, 17 Apr 2021 11:43:35 +0200 Subject: [PATCH 4/6] Fix path in move binaries step Signed-off-by: trivernis --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f2b4f99..2a54b9c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,7 +45,7 @@ jobs: run: cargo test --verbose - name: Move binaries - run: mv target/x86_64-unknown-linux-gnu/debug/tobi-rs target/tobi-rs-linux-x86_64_debug + run: mv target/debug/tobi-rs target/tobi-rs-linux-x86_64_debug - name: Import GPG key id: import_gpg From b763371603b50b1751fcddaa030ce5a592705f81 Mon Sep 17 00:00:00 2001 From: trivernis Date: Sat, 17 Apr 2021 11:52:58 +0200 Subject: [PATCH 5/6] Add sign artifact task to release build task Signed-off-by: trivernis --- .github/workflows/build-and-release.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index f596ff4..ad01fd5 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -16,6 +16,12 @@ jobs: with: toolchain: stable override: true + - name: Import GPG key + id: import_gpg + uses: crazy-max/ghaction-import-gpg@v3 + with: + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.PASSPHRASE }} - name: Cache cargo builds uses: actions/cache@v2 with: @@ -34,11 +40,15 @@ jobs: run: strip target/x86_64-unknown-linux-gnu/release/tobi-rs - name: Move binaries run: mv target/x86_64-unknown-linux-gnu/release/tobi-rs target/tobi-rs-linux-x86_64 + - name: Sign artifact + run: gpg --detach-sign --sign --armor --default-key steps.import_gpg.outputs.keyid --output target/tobi-rs-linux-x86_64.sig target/tobi-rs-linux-x86_64 - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: tobi-rs-linux-x86_64 - path: target/tobi-rs-linux-x86_64 + path: | + target/tobi-rs-linux-x86_64 + target/tobi-rs-linux-x86_64.sig - name: publish release uses: "marvinpinto/action-automatic-releases@latest" with: @@ -46,4 +56,5 @@ jobs: prerelease: false files: | LICENSE - target/tobi-rs-linux-x86_64 \ No newline at end of file + target/tobi-rs-linux-x86_64 + target/tobi-rs-linux-x86_64.sig \ No newline at end of file From fc1366668f386d598484dba1299d9e14913a0d09 Mon Sep 17 00:00:00 2001 From: trivernis Date: Sat, 17 Apr 2021 11:53:47 +0200 Subject: [PATCH 6/6] Bump version Signed-off-by: trivernis --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 54def85..67403fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2318,7 +2318,7 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tobi-rs" -version = "0.6.1" +version = "0.6.2" dependencies = [ "aspotify", "bot-coreutils", diff --git a/Cargo.toml b/Cargo.toml index 1268bb7..9f2a3fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tobi-rs" -version = "0.6.1" +version = "0.6.2" authors = ["trivernis "] edition = "2018"