Compare commits
6 Commits
8246337ae4
...
minimal-ve
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e557665c9 | |||
| faa5ce8549 | |||
| 136c051c82 | |||
| a0ba8e7ea8 | |||
| 88cafc096f | |||
| b200785e71 |
15
Cargo.toml
15
Cargo.toml
@@ -9,6 +9,21 @@ reqwest = { version = "0.11.13", features = ["json", "stream", "multipart"] }
|
|||||||
serde = { version = "1.0.152", features = ["derive"] }
|
serde = { version = "1.0.152", features = ["derive"] }
|
||||||
tokio = { version = "1.24.2", features = ["macros", "rt-multi-thread"] }
|
tokio = { version = "1.24.2", features = ["macros", "rt-multi-thread"] }
|
||||||
|
|
||||||
|
# Grand-dependency Pins ----
|
||||||
|
# Fixes: Reqwest uses too-old version of crate `log`
|
||||||
|
log = "0.4.6"
|
||||||
|
|
||||||
|
# Debian 12 uses OpenSSL 3.x and older libssl-sys crates are angry about that
|
||||||
|
|
||||||
|
# Fixes: native lib lookup.
|
||||||
|
# Causes: missing item in crate `ffi`
|
||||||
|
openssl-sys = "0.9.64"
|
||||||
|
|
||||||
|
# Fixes: missing item in crate `ffi` (from openssl-sys)
|
||||||
|
openssl = "0.10.35"
|
||||||
|
|
||||||
|
# End Grand-dependency Pins ----
|
||||||
|
|
||||||
# Packages available in Debian (Sid)
|
# Packages available in Debian (Sid)
|
||||||
# clap = "4.5.23"
|
# clap = "4.5.23"
|
||||||
# reqwest = "0.12.15"
|
# reqwest = "0.12.15"
|
||||||
|
|||||||
11
README.md
11
README.md
@@ -51,14 +51,3 @@ One of these, defaults to `help`:
|
|||||||
| upload-release | Uploads one-or-more files to an existing release, identified by it's tag name. |
|
| upload-release | Uploads one-or-more files to an existing release, identified by it's tag name. |
|
||||||
| help | prints the help text (the usage summary above). |
|
| help | prints the help text (the usage summary above). |
|
||||||
|
|
||||||
## Unit Testing
|
|
||||||
|
|
||||||
The unit test~~s~~ require a Gitea server to execute against. This information is supplied by environment variables rather than on the command line, but it is otherwise exactly the same usage.
|
|
||||||
|
|
||||||
| Variable | Description |
|
|
||||||
|-|-|
|
|
||||||
| TEST_GITEA_SERVER | Server URL, match `-u`, `--url` |
|
|
||||||
| TEST_GITEA_REPO | Owner + repo name, match `-u` `--repo` |
|
|
||||||
| TEST_GITEA_KEY | API key, match `RELEASE_KEY_GITEA`. The use of a new variable for the API token is to help avoid accidentally touching a production environment during test execution. |
|
|
||||||
| TEST_GITEA_RELEASE_TAG | Git tag used to identify the Release. Same as `upload-release`'s positional argument `<TAG_NAME>`. |
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
ApiError, Result,
|
Result,
|
||||||
structs::{
|
structs::{
|
||||||
release::{CreateReleaseOption, Release},
|
release::{CreateReleaseOption, Release},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use std::fs;
|
use std::{fs, path};
|
||||||
|
|
||||||
use crate::structs::Attachment;
|
use crate::structs::Attachment;
|
||||||
|
|
||||||
@@ -16,7 +16,8 @@ pub async fn create_release_attachment(
|
|||||||
) -> crate::Result<Attachment> {
|
) -> crate::Result<Attachment> {
|
||||||
let request_url = format!("{gitea_url}/api/v1/repos/{repo}/releases/{release_id}/assets");
|
let request_url = format!("{gitea_url}/api/v1/repos/{repo}/releases/{release_id}/assets");
|
||||||
|
|
||||||
match fs::exists(&file) {
|
let path = path::Path::new(&file);
|
||||||
|
match path.try_exists() {
|
||||||
Ok(true) => (),
|
Ok(true) => (),
|
||||||
Ok(false) => return Err(crate::Error::NoSuchFile),
|
Ok(false) => return Err(crate::Error::NoSuchFile),
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use std::fs;
|
|
||||||
|
use std::path;
|
||||||
|
|
||||||
use gt_tool::cli::Args;
|
use gt_tool::cli::Args;
|
||||||
use gt_tool::structs::release::{CreateReleaseOption, Release};
|
use gt_tool::structs::release::{CreateReleaseOption, Release};
|
||||||
@@ -81,7 +82,8 @@ async fn main() -> Result<(), gt_tool::Error> {
|
|||||||
|
|
||||||
if let Some(release) = match_release_by_tag(&tag_name, release_candidates) {
|
if let Some(release) = match_release_by_tag(&tag_name, release_candidates) {
|
||||||
for file in &files {
|
for file in &files {
|
||||||
match fs::exists(file) {
|
let path = path::Path::new(&file);
|
||||||
|
match path.try_exists() {
|
||||||
Ok(true) => continue,
|
Ok(true) => continue,
|
||||||
Ok(false) => return Err(gt_tool::Error::NoSuchFile),
|
Ok(false) => return Err(gt_tool::Error::NoSuchFile),
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ pub struct Attachment {
|
|||||||
name: String,
|
name: String,
|
||||||
size: i64,
|
size: i64,
|
||||||
download_count: i64,
|
download_count: i64,
|
||||||
created: String, // TODO: Date-time struct
|
created_at: String, // TODO: Date-time struct
|
||||||
uuid: String,
|
uuid: String,
|
||||||
download_url: String,
|
browser_download_url: String,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user