1
Fork 0

fix(deps): update rust crate serde to v1.0.209 - abandoned #41

Closed
renovate-bot wants to merge 5 commits from renovate/serde-monorepo into master
5 changed files with 135 additions and 121 deletions
Showing only changes of commit 43b974361e - Show all commits

151
images/gitea/Cargo.lock generated
View file

@ -159,6 +159,29 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1"
[[package]]
name = "cli-table"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d"
dependencies = [
"cli-table-derive",
"csv",
"termcolor",
"unicode-width",
]
[[package]]
name = "cli-table-derive"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2af3bfb9da627b0a6c467624fb7963921433774ed435493b5c08a3053e829ad4"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "color-eyre" name = "color-eyre"
version = "0.6.2" version = "0.6.2"
@ -217,6 +240,27 @@ version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
[[package]]
name = "csv"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad"
dependencies = [
"csv-core",
"itoa",
"ryu",
"serde",
]
[[package]]
name = "csv-core"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "encoding_rs" name = "encoding_rs"
version = "0.8.32" version = "0.8.32"
@ -331,14 +375,12 @@ name = "gitea"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"clap", "clap",
"cli-table",
"color-eyre", "color-eyre",
"reqwest", "reqwest",
"serde", "serde",
"serde_json", "serde_json",
"time", "time",
"tracing",
"tracing-error",
"tracing-subscriber",
"url", "url",
] ]
@ -556,15 +598,6 @@ dependencies = [
"cfg-if", "cfg-if",
] ]
[[package]]
name = "matchers"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
dependencies = [
"regex-automata",
]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.5.0" version = "2.5.0"
@ -598,16 +631,6 @@ dependencies = [
"windows-sys 0.45.0", "windows-sys 0.45.0",
] ]
[[package]]
name = "nu-ansi-term"
version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
dependencies = [
"overload",
"winapi",
]
[[package]] [[package]]
name = "num_cpus" name = "num_cpus"
version = "1.15.0" version = "1.15.0"
@ -639,12 +662,6 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "overload"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]] [[package]]
name = "owo-colors" name = "owo-colors"
version = "3.5.0" version = "3.5.0"
@ -687,30 +704,6 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "regex"
version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
dependencies = [
"regex-syntax",
]
[[package]]
name = "regex-automata"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
dependencies = [
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.6.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]] [[package]]
name = "reqwest" name = "reqwest"
version = "0.11.16" version = "0.11.16"
@ -927,12 +920,6 @@ dependencies = [
"autocfg", "autocfg",
] ]
[[package]]
name = "smallvec"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
[[package]] [[package]]
name = "socket2" name = "socket2"
version = "0.4.9" version = "0.4.9"
@ -977,6 +964,15 @@ dependencies = [
"unicode-ident", "unicode-ident",
] ]
[[package]]
name = "termcolor"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
dependencies = [
"winapi-util",
]
[[package]] [[package]]
name = "thread_local" name = "thread_local"
version = "1.1.7" version = "1.1.7"
@ -1084,21 +1080,9 @@ checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"pin-project-lite", "pin-project-lite",
"tracing-attributes",
"tracing-core", "tracing-core",
] ]
[[package]]
name = "tracing-attributes"
version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "tracing-core" name = "tracing-core"
version = "0.1.30" version = "0.1.30"
@ -1119,33 +1103,15 @@ dependencies = [
"tracing-subscriber", "tracing-subscriber",
] ]
[[package]]
name = "tracing-log"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
dependencies = [
"lazy_static",
"log",
"tracing-core",
]
[[package]] [[package]]
name = "tracing-subscriber" name = "tracing-subscriber"
version = "0.3.16" version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
dependencies = [ dependencies = [
"matchers",
"nu-ansi-term",
"once_cell",
"regex",
"sharded-slab", "sharded-slab",
"smallvec",
"thread_local", "thread_local",
"tracing",
"tracing-core", "tracing-core",
"tracing-log",
] ]
[[package]] [[package]]
@ -1344,6 +1310,15 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
"winapi",
]
[[package]] [[package]]
name = "winapi-x86_64-pc-windows-gnu" name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"

View file

@ -11,11 +11,9 @@ color-eyre = "0.6.2"
reqwest = { version = "0.11.16", default-features = false, features = ["blocking", "json", "rustls-tls-native-roots"] } reqwest = { version = "0.11.16", default-features = false, features = ["blocking", "json", "rustls-tls-native-roots"] }
serde_json = "1.0.95" serde_json = "1.0.95"
serde = { version = "1.0.159", features = ["derive"] } serde = { version = "1.0.159", features = ["derive"] }
time = { version = "0.3.20", features = ["formatting", "macros", "serde"] } time = { version = "0.3.20", features = ["formatting", "parsing", "serde"] }
tracing = "0.1.37"
tracing-subscriber = { version = "0.3.16", features = ["env-filter"] }
url = { version = "2.3.1", features = ["serde"] } url = { version = "2.3.1", features = ["serde"] }
tracing-error = "0.2.0" cli-table = "0.4.7"
[profile.release] [profile.release]
strip = "debuginfo" strip = "debuginfo"

View file

@ -2,11 +2,14 @@ use std::fs;
use std::io::{self, Read}; use std::io::{self, Read};
use std::path::Path; use std::path::Path;
use cli_table::format::Justify;
use cli_table::{print_stderr, Cell, Style, Table};
use color_eyre::eyre::{self, Context}; use color_eyre::eyre::{self, Context};
use color_eyre::Result; use color_eyre::Result;
use reqwest::blocking::{Client, Response}; use reqwest::blocking::{Client, Response};
use reqwest::header::HeaderMap; use reqwest::header::HeaderMap;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::json;
use time::OffsetDateTime; use time::OffsetDateTime;
use url::Url; use url::Url;
@ -25,11 +28,26 @@ struct Source {
#[derive(Deserialize, Serialize, Debug)] #[derive(Deserialize, Serialize, Debug)]
struct Version { struct Version {
prs: Vec<String>, prs: String,
#[serde(with = "time::serde::timestamp")] #[serde(with = "time::serde::iso8601")]
timestamp: OffsetDateTime, timestamp: OffsetDateTime,
} }
impl<'a, I: Iterator<Item = &'a PullRequest>> From<I> for Version {
fn from(prs: I) -> Self {
Self {
prs: prs.fold(String::new(), |mut s, pr| {
if !s.is_empty() {
s.push(',');
}
s.push_str(&pr.number.to_string());
s
}),
timestamp: OffsetDateTime::now_utc(),
}
}
}
#[derive(Deserialize, Serialize, Debug)] #[derive(Deserialize, Serialize, Debug)]
struct Config { struct Config {
/// Resource configuration. /// Resource configuration.
@ -43,7 +61,6 @@ struct Config {
version: Option<Version>, version: Option<Version>,
} }
#[tracing::instrument(skip_all)]
fn make_client(src: &Source) -> Result<Client> { fn make_client(src: &Source) -> Result<Client> {
let mut headers = HeaderMap::new(); let mut headers = HeaderMap::new();
headers.insert( headers.insert(
@ -58,7 +75,6 @@ fn make_client(src: &Source) -> Result<Client> {
.map_err(From::from) .map_err(From::from)
} }
#[tracing::instrument(skip_all)]
fn fetch(src: &Source) -> Result<Response> { fn fetch(src: &Source) -> Result<Response> {
let client = make_client(&src).wrap_err("Failed to create HTTP client")?; let client = make_client(&src).wrap_err("Failed to create HTTP client")?;
let url = src let url = src
@ -73,14 +89,9 @@ fn fetch(src: &Source) -> Result<Response> {
.map_err(From::from) .map_err(From::from)
} }
#[tracing::instrument(skip_all)]
fn action_check(conf: Config) -> Result<()> { fn action_check(conf: Config) -> Result<()> {
let prs: Vec<PullRequest> = fetch(&conf.source)?.json()?; let prs: Vec<PullRequest> = fetch(&conf.source)?.json()?;
let mut version = Version { let version = Version::from(prs.iter());
prs: prs.iter().map(|pr| pr.number.to_string()).collect(),
timestamp: OffsetDateTime::now_utc(),
};
version.prs.sort_unstable();
let out = if let Some(prev) = conf.version { let out = if let Some(prev) = conf.version {
if prev.prs == version.prs { if prev.prs == version.prs {
@ -92,15 +103,40 @@ fn action_check(conf: Config) -> Result<()> {
vec![version] vec![version]
}; };
let table: Vec<_> = prs
.iter()
.map(|pr| {
vec![
pr.number.cell().justify(Justify::Center),
pr.title.clone().cell(),
pr.user.login.clone().cell(),
pr.base.r#ref.clone().cell(),
pr.head.r#ref.clone().cell(),
]
})
.collect();
let table = table
.table()
.title(vec![
"#".cell().bold(true),
"Title".cell().bold(true),
"User".cell().bold(true),
"Base".cell().bold(true),
"Head".cell().bold(true),
])
.bold(true);
let _ = print_stderr(table);
serde_json::to_writer_pretty(io::stdout(), &out) serde_json::to_writer_pretty(io::stdout(), &out)
.wrap_err("Failed to write result to stdout")?; .wrap_err("Failed to write result to stdout")?;
Ok(()) Ok(())
} }
#[tracing::instrument(skip_all)]
fn action_in(conf: Config, dest: impl AsRef<Path>) -> Result<()> { fn action_in(conf: Config, dest: impl AsRef<Path>) -> Result<()> {
let version = if let Some(version) = conf.version { let old_version = if let Some(version) = conf.version {
version version
} else { } else {
eyre::bail!("Version missing in 'in' action."); eyre::bail!("Version missing in 'in' action.");
@ -108,11 +144,10 @@ fn action_in(conf: Config, dest: impl AsRef<Path>) -> Result<()> {
let bytes = fetch(&conf.source)?.bytes()?; let bytes = fetch(&conf.source)?.bytes()?;
let prs: Vec<PullRequest> = serde_json::from_slice(&bytes)?; let prs: Vec<PullRequest> = serde_json::from_slice(&bytes)?;
let version = Version::from(prs.iter());
{ {
let mut prs: Vec<_> = prs.iter().map(|pr| pr.number.to_string()).collect(); if version.prs != old_version.prs {
prs.sort_unstable();
if version.prs != prs {
eyre::bail!("Version to fetch does not match current resource."); eyre::bail!("Version to fetch does not match current resource.");
} }
} }
@ -121,10 +156,15 @@ fn action_in(conf: Config, dest: impl AsRef<Path>) -> Result<()> {
let _ = fs::create_dir_all(dest); let _ = fs::create_dir_all(dest);
fs::write(&path, &bytes)?; fs::write(&path, &bytes)?;
let out = json!({
"version": version,
});
serde_json::to_writer_pretty(io::stdout(), &out)?;
Ok(()) Ok(())
} }
#[tracing::instrument(skip_all)]
pub(crate) fn run(action: &Action) -> Result<()> { pub(crate) fn run(action: &Action) -> Result<()> {
let config: Config = { let config: Config = {
let mut buf = String::new(); let mut buf = String::new();

View file

@ -2,10 +2,6 @@ use std::path::PathBuf;
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
use color_eyre::Result; use color_eyre::Result;
use tracing_error::ErrorLayer;
use tracing_subscriber::fmt;
use tracing_subscriber::prelude::*;
use tracing_subscriber::EnvFilter;
#[derive(Debug, Parser)] #[derive(Debug, Parser)]
#[command(author, version, about, long_about = None)] #[command(author, version, about, long_about = None)]
@ -37,15 +33,6 @@ mod cmd {
// #[tracing::instrument] // #[tracing::instrument]
fn main() -> Result<()> { fn main() -> Result<()> {
let filter_layer = EnvFilter::try_from_default_env()
.or_else(|_| EnvFilter::try_new("info"))
.unwrap();
tracing_subscriber::registry()
.with(filter_layer)
.with(ErrorLayer::new(fmt::format::Pretty::default()))
.init();
let cli = Cli::parse(); let cli = Cli::parse();
match &cli.command { match &cli.command {

View file

@ -1,6 +1,20 @@
use serde::Deserialize; use serde::Deserialize;
#[derive(Clone, Debug, Deserialize)]
pub struct Ref {
pub r#ref: String,
}
#[derive(Clone, Debug, Deserialize)]
pub struct User {
pub login: String,
}
#[derive(Clone, Debug, Deserialize)] #[derive(Clone, Debug, Deserialize)]
pub struct PullRequest { pub struct PullRequest {
pub number: u64, pub number: u64,
pub title: String,
pub user: User,
pub base: Ref,
pub head: Ref,
} }