diff options
author | Cyborus <cyborus@noreply.codeberg.org> | 2024-08-11 17:26:18 +0200 |
---|---|---|
committer | Cyborus <cyborus@noreply.codeberg.org> | 2024-08-11 17:26:18 +0200 |
commit | b7120d23f4e295d44ab451c342f04b9b72bc8f1c (patch) | |
tree | fc4bf9fab8a374a400083c5bf67b5a1e872bbdd8 | |
parent | Merge pull request 'application settings page url should only be `https`' (#1... (diff) | |
parent | Clippy Fixes (diff) | |
download | forgejo-cli-b7120d23f4e295d44ab451c342f04b9b72bc8f1c.tar.xz forgejo-cli-b7120d23f4e295d44ab451c342f04b9b72bc8f1c.zip |
Merge pull request 'Squish clippy and audit errors/warnings' (#120) from Pi-Cla/forgejo-cli:fixes into main
Reviewed-on: https://codeberg.org/Cyborus/forgejo-cli/pulls/120
Reviewed-by: Cyborus <cyborus@noreply.codeberg.org>
-rw-r--r-- | Cargo.lock | 169 | ||||
-rw-r--r-- | src/auth.rs | 2 | ||||
-rw-r--r-- | src/issues.rs | 26 | ||||
-rw-r--r-- | src/main.rs | 6 | ||||
-rw-r--r-- | src/prs.rs | 46 | ||||
-rw-r--r-- | src/release.rs | 22 | ||||
-rw-r--r-- | src/repo.rs | 45 | ||||
-rw-r--r-- | src/user.rs | 10 | ||||
-rw-r--r-- | src/wiki.rs | 8 |
9 files changed, 185 insertions, 149 deletions
@@ -28,9 +28,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", @@ -43,33 +43,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -194,10 +194,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] name = "bytes" -version = "1.6.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "caseless" @@ -211,9 +217,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.6" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292" dependencies = [ "jobserver", "libc", @@ -227,9 +233,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.11" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" dependencies = [ "clap_builder", "clap_derive", @@ -237,9 +243,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -250,9 +256,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck", "proc-macro2", @@ -262,15 +268,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "comrak" @@ -305,9 +311,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" @@ -543,9 +549,9 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" dependencies = [ "crc32fast", "miniz_oxide", @@ -936,9 +942,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" dependencies = [ "bytes", "futures-util", @@ -973,9 +979,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown", @@ -1008,9 +1014,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" @@ -1020,9 +1026,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -1209,9 +1215,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.1" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -1257,9 +1263,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.65" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2823eb4c6453ed64055057ea8bd416eda38c71018723869dd043a3b1186115e" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -1379,9 +1385,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "proc-macro2" @@ -1462,9 +1471,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -1619,18 +1628,18 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" dependencies = [ "proc-macro2", "quote", @@ -1639,11 +1648,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -1702,9 +1712,9 @@ dependencies = [ [[package]] name = "signal-hook-mio" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" dependencies = [ "libc", "mio 0.8.11", @@ -1769,9 +1779,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.71" +version = "2.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" +checksum = "837a7e8026c6ce912ff01cefbe8cafc2f8010ac49682e2a3d9decc3bce1ecaaf" dependencies = [ "proc-macro2", "quote", @@ -1830,14 +1840,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1930,9 +1941,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.1" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", @@ -2094,9 +2105,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -2217,11 +2228,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2249,6 +2260,15 @@ dependencies = [ ] [[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] name = "windows-targets" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2395,6 +2415,27 @@ dependencies = [ ] [[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/src/auth.rs b/src/auth.rs index 44cb20c..c0bd467 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -58,7 +58,7 @@ impl AuthCommand { Some(key) => key, None => crate::readline("new key: ").await?.trim().to_string(), }; - if keys.hosts.get(&user).is_none() { + if !keys.hosts.contains_key(&user) { keys.hosts.insert( host, crate::keys::LoginInfo::Application { diff --git a/src/issues.rs b/src/issues.rs index a65e3d4..de8822a 100644 --- a/src/issues.rs +++ b/src/issues.rs @@ -176,11 +176,11 @@ impl IssueCommand { repo: _, title, body, - } => create_issue(&repo, &api, title, body).await?, + } => create_issue(repo, &api, title, body).await?, View { id, command } => match command.unwrap_or(ViewCommand::Body) { - ViewCommand::Body => view_issue(&repo, &api, id.number).await?, - ViewCommand::Comment { idx } => view_comment(&repo, &api, id.number, idx).await?, - ViewCommand::Comments => view_comments(&repo, &api, id.number).await?, + ViewCommand::Body => view_issue(repo, &api, id.number).await?, + ViewCommand::Comment { idx } => view_comment(repo, &api, id.number, idx).await?, + ViewCommand::Comments => view_comments(repo, &api, id.number).await?, }, Search { repo: _, @@ -189,21 +189,21 @@ impl IssueCommand { creator, assignee, state, - } => view_issues(&repo, &api, query, labels, creator, assignee, state).await?, + } => view_issues(repo, &api, query, labels, creator, assignee, state).await?, Edit { issue, command } => match command { EditCommand::Title { new_title } => { - edit_title(&repo, &api, issue.number, new_title).await? + edit_title(repo, &api, issue.number, new_title).await? } EditCommand::Body { new_body } => { - edit_body(&repo, &api, issue.number, new_body).await? + edit_body(repo, &api, issue.number, new_body).await? } EditCommand::Comment { idx, new_body } => { - edit_comment(&repo, &api, issue.number, idx, new_body).await? + edit_comment(repo, &api, issue.number, idx, new_body).await? } }, - Close { issue, with_msg } => close_issue(&repo, &api, issue.number, with_msg).await?, - Browse { id } => browse_issue(&repo, &api, id.number).await?, - Comment { issue, body } => add_comment(&repo, &api, issue.number, body).await?, + Close { issue, with_msg } => close_issue(repo, &api, issue.number, with_msg).await?, + Browse { id } => browse_issue(repo, &api, id.number).await?, + Comment { issue, body } => add_comment(repo, &api, issue.number, body).await?, } Ok(()) } @@ -408,7 +408,7 @@ pub async fn view_comment(repo: &RepoName, api: &Forgejo, id: u64, idx: usize) - let comment = comments .get(idx) .ok_or_else(|| eyre!("comment {idx} doesn't exist"))?; - print_comment(&comment)?; + print_comment(comment)?; Ok(()) } @@ -440,7 +440,7 @@ fn print_comment(comment: &Comment) -> eyre::Result<()> { .as_ref() .ok_or_else(|| eyre::eyre!("user does not have login"))?; println!("{} said:", username); - println!("{}", crate::markdown(&body)); + println!("{}", crate::markdown(body)); let assets = comment .assets .as_ref() diff --git a/src/main.rs b/src/main.rs index c26081f..8e7ff0e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -159,9 +159,9 @@ async fn editor(contents: &mut String, ext: Option<&str>) -> eyre::Result<()> { file.write_all(contents.as_bytes()).await?; drop(file); - // Closure acting as a try/catch block so that the temp file is deleted even + // Async block acting as a try/catch block so that the temp file is deleted even // on errors - let res = (|| async { + let res = async { eprint!("waiting on editor\r"); let flags = get_editor_flags(&editor); let status = tokio::process::Command::new(editor) @@ -177,7 +177,7 @@ async fn editor(contents: &mut String, ext: Option<&str>) -> eyre::Result<()> { eprint!(" \r"); Ok(()) - })() + } .await; tokio::fs::remove_file(path).await?; @@ -274,7 +274,7 @@ impl PrCommand { head, body, repo: _, - } => create_pr(&repo, &api, title, base, head, body).await?, + } => create_pr(repo, &api, title, base, head, body).await?, Merge { pr, method, @@ -283,7 +283,7 @@ impl PrCommand { message, } => { merge_pr( - &repo, + repo, &api, pr.map(|id| id.number), method, @@ -296,26 +296,26 @@ impl PrCommand { View { id, command } => { let id = id.map(|id| id.number); match command.unwrap_or(ViewCommand::Body) { - ViewCommand::Body => view_pr(&repo, &api, id).await?, + ViewCommand::Body => view_pr(repo, &api, id).await?, ViewCommand::Comment { idx } => { - let (repo, id) = try_get_pr_number(&repo, &api, id).await?; + let (repo, id) = try_get_pr_number(repo, &api, id).await?; crate::issues::view_comment(&repo, &api, id, idx).await? } ViewCommand::Comments => { - let (repo, id) = try_get_pr_number(&repo, &api, id).await?; + let (repo, id) = try_get_pr_number(repo, &api, id).await?; crate::issues::view_comments(&repo, &api, id).await? } - ViewCommand::Labels => view_pr_labels(&repo, &api, id).await?, + ViewCommand::Labels => view_pr_labels(repo, &api, id).await?, ViewCommand::Diff { patch, editor } => { - view_diff(&repo, &api, id, patch, editor).await? + view_diff(repo, &api, id, patch, editor).await? } - ViewCommand::Files => view_pr_files(&repo, &api, id).await?, + ViewCommand::Files => view_pr_files(repo, &api, id).await?, ViewCommand::Commits { oneline } => { - view_pr_commits(&repo, &api, id, oneline).await? + view_pr_commits(repo, &api, id, oneline).await? } } } - Status { id } => view_pr_status(&repo, &api, id.map(|id| id.number)).await?, + Status { id } => view_pr_status(repo, &api, id.map(|id| id.number)).await?, Search { query, labels, @@ -323,38 +323,38 @@ impl PrCommand { assignee, state, repo: _, - } => view_prs(&repo, &api, query, labels, creator, assignee, state).await?, + } => view_prs(repo, &api, query, labels, creator, assignee, state).await?, Edit { pr, command } => { let pr = pr.map(|pr| pr.number); match command { EditCommand::Title { new_title } => { - let (repo, id) = try_get_pr_number(&repo, &api, pr).await?; + let (repo, id) = try_get_pr_number(repo, &api, pr).await?; crate::issues::edit_title(&repo, &api, id, new_title).await? } EditCommand::Body { new_body } => { - let (repo, id) = try_get_pr_number(&repo, &api, pr).await?; + let (repo, id) = try_get_pr_number(repo, &api, pr).await?; crate::issues::edit_body(&repo, &api, id, new_body).await? } EditCommand::Comment { idx, new_body } => { - let (repo, id) = try_get_pr_number(&repo, &api, pr).await?; + let (repo, id) = try_get_pr_number(repo, &api, pr).await?; crate::issues::edit_comment(&repo, &api, id, idx, new_body).await? } EditCommand::Labels { add, rm } => { - edit_pr_labels(&repo, &api, pr, add, rm).await? + edit_pr_labels(repo, &api, pr, add, rm).await? } } } Close { pr, with_msg } => { - let (repo, pr) = try_get_pr_number(&repo, &api, pr.map(|pr| pr.number)).await?; + let (repo, pr) = try_get_pr_number(repo, &api, pr.map(|pr| pr.number)).await?; crate::issues::close_issue(&repo, &api, pr, with_msg).await? } - Checkout { pr, branch_name } => checkout_pr(&repo, &api, pr, branch_name).await?, + Checkout { pr, branch_name } => checkout_pr(repo, &api, pr, branch_name).await?, Browse { id } => { - let (repo, id) = try_get_pr_number(&repo, &api, id.map(|pr| pr.number)).await?; + let (repo, id) = try_get_pr_number(repo, &api, id.map(|pr| pr.number)).await?; browse_pr(&repo, &api, id).await? } Comment { pr, body } => { - let (repo, pr) = try_get_pr_number(&repo, &api, pr.map(|pr| pr.number)).await?; + let (repo, pr) = try_get_pr_number(repo, &api, pr.map(|pr| pr.number)).await?; crate::issues::add_comment(&repo, &api, pr, body).await? } } @@ -747,7 +747,7 @@ async fn edit_pr_labels( for label_name in &add { let maybe_label = labels .iter() - .find(|label| label.name.as_ref() == Some(&label_name)); + .find(|label| label.name.as_ref() == Some(label_name)); if let Some(label) = maybe_label { add_ids.push(serde_json::Value::Number( label.id.ok_or_eyre("label does not have id")?.into(), @@ -761,7 +761,7 @@ async fn edit_pr_labels( for label_name in &rm { let maybe_label = labels .iter() - .find(|label| label.name.as_ref() == Some(&label_name)); + .find(|label| label.name.as_ref() == Some(label_name)); if let Some(label) = maybe_label { rm_ids.push(label.id.ok_or_eyre("label does not have id")?); } else { @@ -865,7 +865,7 @@ async fn create_pr( let (base, base_is_parent) = match base { Some(base) => match base.strip_prefix("^") { - Some(stripped) if stripped.is_empty() => (None, true), + Some("") => (None, true), Some(stripped) => (Some(stripped.to_owned()), true), None => (Some(base), false), }, @@ -1291,7 +1291,7 @@ async fn view_pr_commits( .ok_or_eyre("commit does not have commit?")?; let message = repo_commit.message.as_deref().unwrap_or("[no msg]"); - let name = message.lines().next().unwrap_or(&message); + let name = message.lines().next().unwrap_or(message); let sha = commit .sha diff --git a/src/release.rs b/src/release.rs index fa9d7d7..49dd5b5 100644 --- a/src/release.rs +++ b/src/release.rs @@ -127,7 +127,7 @@ pub enum AssetCommand { impl ReleaseCommand { pub async fn run(self, keys: &mut KeyInfo, remote_name: Option<&str>) -> eyre::Result<()> { let repo = RepoInfo::get_current(remote_name, self.repo.as_ref(), self.remote.as_deref())?; - let api = keys.get_api(&repo.host_url()).await?; + let api = keys.get_api(repo.host_url()).await?; let repo = repo .name() .ok_or_eyre("couldn't get repo name, try specifying with --repo")?; @@ -143,7 +143,7 @@ impl ReleaseCommand { prerelease, } => { create_release( - &repo, &api, name, create_tag, tag, attach, body, branch, draft, prerelease, + repo, &api, name, create_tag, tag, attach, body, branch, draft, prerelease, ) .await? } @@ -154,32 +154,32 @@ impl ReleaseCommand { body, draft, prerelease, - } => edit_release(&repo, &api, name, rename, tag, body, draft, prerelease).await?, + } => edit_release(repo, &api, name, rename, tag, body, draft, prerelease).await?, ReleaseSubcommand::Delete { name, by_tag } => { - delete_release(&repo, &api, name, by_tag).await? + delete_release(repo, &api, name, by_tag).await? } ReleaseSubcommand::List { include_prerelease, include_draft, - } => list_releases(&repo, &api, include_prerelease, include_draft).await?, + } => list_releases(repo, &api, include_prerelease, include_draft).await?, ReleaseSubcommand::View { name, by_tag } => { - view_release(&repo, &api, name, by_tag).await? + view_release(repo, &api, name, by_tag).await? } - ReleaseSubcommand::Browse { name } => browse_release(&repo, &api, name).await?, + ReleaseSubcommand::Browse { name } => browse_release(repo, &api, name).await?, ReleaseSubcommand::Asset(subcommand) => match subcommand { AssetCommand::Create { release, path, name, - } => create_asset(&repo, &api, release, path, name).await?, + } => create_asset(repo, &api, release, path, name).await?, AssetCommand::Delete { release, asset } => { - delete_asset(&repo, &api, release, asset).await? + delete_asset(repo, &api, release, asset).await? } AssetCommand::Download { release, asset, output, - } => download_asset(&repo, &api, release, asset, output).await?, + } => download_asset(repo, &api, release, asset, output).await?, }, } Ok(()) @@ -394,7 +394,7 @@ async fn view_release( .ok_or_else(|| eyre::eyre!("release does not have body"))?; if !body.is_empty() { println!(); - println!("{}", crate::markdown(&body)); + println!("{}", crate::markdown(body)); println!(); } let assets = release diff --git a/src/repo.rs b/src/repo.rs index dce5487..07370d3 100644 --- a/src/repo.rs +++ b/src/repo.rs @@ -95,7 +95,7 @@ impl RepoInfo { remote_name.as_str().ok_or_eyre("remote name invalid")?; if let Some(host_url) = &host_url { - let remote = local_repo.find_remote(&remote_name_s)?; + let remote = local_repo.find_remote(remote_name_s)?; let url_s = std::str::from_utf8(remote.url_bytes())?; let url = Url::parse(url_s)?; @@ -154,14 +154,12 @@ impl RepoInfo { (repo_url, repo_name) } else if repo_name.is_some() { (host_url.or(remote_url), repo_name) + } else if remote.is_some() { + (remote_url, remote_repo_name) + } else if host_url.is_none() || remote_url == host_url { + (remote_url, remote_repo_name) } else { - if remote.is_some() { - (remote_url, remote_repo_name) - } else if host_url.is_none() || remote_url == host_url { - (remote_url, remote_repo_name) - } else { - (host_url, None) - } + (host_url, None) }; let url = url.or_else(fallback_host); @@ -377,17 +375,14 @@ impl RepoCommand { let no_trailing_slash = no_scheme.strip_suffix("/").unwrap_or(no_scheme); no_trailing_slash } - match (repo.host.as_deref(), host_name) { - (Some(a), Some(b)) => { - if strip(a) != strip(b) { - eyre::bail!("conflicting hosts {a} and {b}. please only specify one"); - } + if let (Some(a), Some(b)) = (repo.host.as_deref(), host_name) { + if strip(a) != strip(b) { + eyre::bail!("conflicting hosts {a} and {b}. please only specify one"); } - _ => (), } let repo_info = RepoInfo::get_current(host_name, Some(&repo), remote.as_deref())?; - let api = keys.get_api(&repo_info.host_url()).await?; + let api = keys.get_api(repo_info.host_url()).await?; let repo = repo_info .name() .ok_or_eyre("couldn't get repo name, please specify")?; @@ -395,28 +390,28 @@ impl RepoCommand { } RepoCommand::View { name, remote } => { let repo = RepoInfo::get_current(host_name, name.as_ref(), remote.as_deref())?; - let api = keys.get_api(&repo.host_url()).await?; + let api = keys.get_api(repo.host_url()).await?; let repo = repo .name() .ok_or_eyre("couldn't get repo name, please specify")?; - view_repo(&api, &repo).await? + view_repo(&api, repo).await? } RepoCommand::Clone { repo, path } => { let repo = RepoInfo::get_current(host_name, Some(&repo), None)?; - let api = keys.get_api(&repo.host_url()).await?; + let api = keys.get_api(repo.host_url()).await?; let name = repo.name().unwrap(); - cmd_clone_repo(&api, &name, path).await?; + cmd_clone_repo(&api, name, path).await?; } RepoCommand::Star { repo } => { let repo = RepoInfo::get_current(host_name, Some(&repo), None)?; - let api = keys.get_api(&repo.host_url()).await?; + let api = keys.get_api(repo.host_url()).await?; let name = repo.name().unwrap(); api.user_current_put_star(name.owner(), name.name()).await?; println!("Starred {}/{}!", name.owner(), name.name()); } RepoCommand::Unstar { repo } => { let repo = RepoInfo::get_current(host_name, Some(&repo), None)?; - let api = keys.get_api(&repo.host_url()).await?; + let api = keys.get_api(repo.host_url()).await?; let name = repo.name().unwrap(); api.user_current_delete_star(name.owner(), name.name()) .await?; @@ -424,9 +419,9 @@ impl RepoCommand { } RepoCommand::Delete { repo } => { let repo = RepoInfo::get_current(host_name, Some(&repo), None)?; - let api = keys.get_api(&repo.host_url()).await?; + let api = keys.get_api(repo.host_url()).await?; let name = repo.name().unwrap(); - delete_repo(&api, &name).await?; + delete_repo(&api, name).await?; } RepoCommand::Browse { name, remote } => { let repo = RepoInfo::get_current(host_name, name.as_ref(), remote.as_deref())?; @@ -668,7 +663,7 @@ async fn cmd_clone_repo( let path = path.unwrap_or_else(|| PathBuf::from(format!("./{repo_name}"))); - let local_repo = clone_repo(&repo_full_name, &clone_url, &path)?; + let local_repo = clone_repo(repo_full_name, clone_url, &path)?; if let Some(parent) = repo_data.parent.as_deref() { let parent_clone_url = parent @@ -740,7 +735,7 @@ pub fn clone_repo( let local_repo = git2::build::RepoBuilder::new() .fetch_options(options) - .clone(url.as_str(), &path)?; + .clone(url.as_str(), path)?; if fancy { print!("{clear_line}{show_cursor}\r"); } diff --git a/src/user.rs b/src/user.rs index d38d8b5..6f7de40 100644 --- a/src/user.rs +++ b/src/user.rs @@ -685,12 +685,12 @@ async fn list_activity(api: &Forgejo, user: Option<&str>) -> eyre::Result<()> { .as_deref() .ok_or_eyre("parent repo does not have full name")?; println!("{bold}{actor_name}{reset} forked repository {bold}{yellow}{parent_full_name}{reset} to {bold}{yellow}{full_name}{reset}"); + } else if repo.mirror.is_some_and(|b| b) { + println!( + "{bold}{actor_name}{reset} created mirror {bold}{yellow}{full_name}{reset}" + ); } else { - if repo.mirror.is_some_and(|b| b) { - println!("{bold}{actor_name}{reset} created mirror {bold}{yellow}{full_name}{reset}"); - } else { - println!("{bold}{actor_name}{reset} created repository {bold}{yellow}{full_name}{reset}"); - } + println!("{bold}{actor_name}{reset} created repository {bold}{yellow}{full_name}{reset}"); } } ActivityOpType::RenameRepo => { diff --git a/src/wiki.rs b/src/wiki.rs index 63d344f..616789d 100644 --- a/src/wiki.rs +++ b/src/wiki.rs @@ -52,10 +52,10 @@ impl WikiCommand { .ok_or_else(|| eyre::eyre!("couldn't guess repo"))?; match self.command { - Contents { repo: _ } => wiki_contents(&repo, &api).await?, - View { repo: _, page } => view_wiki_page(&repo, &api, &*page).await?, - Clone { repo: _, path } => clone_wiki(&repo, &api, path).await?, - Browse { repo: _, page } => browse_wiki_page(&repo, &api, &*page).await?, + Contents { repo: _ } => wiki_contents(repo, &api).await?, + View { repo: _, page } => view_wiki_page(repo, &api, &page).await?, + Clone { repo: _, path } => clone_wiki(repo, &api, path).await?, + Browse { repo: _, page } => browse_wiki_page(repo, &api, &page).await?, } Ok(()) } |