generated from PlexSheep/rs-base
Merge branch 'devel'
cargo devel CI / cargo CI (push) Successful in 3m4s
Details
cargo devel CI / cargo CI (push) Successful in 3m4s
Details
This commit is contained in:
commit
e80b68f1c4
|
@ -19,3 +19,4 @@ Cargo.lock
|
||||||
# Added by cargo
|
# Added by cargo
|
||||||
|
|
||||||
/target
|
/target
|
||||||
|
.env
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "autocrate"
|
name = "autocrate"
|
||||||
version = "0.1.0-prealpha.4"
|
version = "0.1.0-prealpha.5"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
publish = true
|
publish = true
|
||||||
authors = ["Christoph J. Scherr <software@cscherr.de>"]
|
authors = ["Christoph J. Scherr <software@cscherr.de>"]
|
||||||
|
@ -28,7 +28,8 @@ clap-verbosity-flag = "2.1.2"
|
||||||
forgejo-api = "0.1.0"
|
forgejo-api = "0.1.0"
|
||||||
futures = "0.3.30"
|
futures = "0.3.30"
|
||||||
git2 = "0.18.1"
|
git2 = "0.18.1"
|
||||||
libpt = { version = "0.3.11", features = ["log"] }
|
libpt = { version = "0.4.2", features = ["log"] }
|
||||||
|
octocrab = "0.38.0"
|
||||||
reqwest = "0.11.24"
|
reqwest = "0.11.24"
|
||||||
serde = { version = "1.0.195", features = ["derive"] }
|
serde = { version = "1.0.195", features = ["derive"] }
|
||||||
serde_json = "1.0.116"
|
serde_json = "1.0.116"
|
||||||
|
|
|
@ -110,10 +110,10 @@ impl Cli {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if cli.meta {
|
if cli.meta {
|
||||||
Logger::init(None, Some(ll), true).expect("could not initialize Logger");
|
Logger::build(None, Some(ll), true).expect("could not initialize Logger");
|
||||||
} else {
|
} else {
|
||||||
// less verbose version
|
// less verbose version
|
||||||
Logger::init_mini(Some(ll)).expect("could not initialize Logger");
|
Logger::build_mini(Some(ll)).expect("could not initialize Logger");
|
||||||
}
|
}
|
||||||
cli
|
cli
|
||||||
}
|
}
|
||||||
|
|
|
@ -208,8 +208,7 @@ impl Version {
|
||||||
panic!("{err:?}");
|
panic!("{err:?}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,9 @@ pub enum ServerApiError {
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
ReqwestErr(#[from] reqwest::Error),
|
ReqwestErr(#[from] reqwest::Error),
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
ForgejoApiError(#[from] forgejo_api::ForgejoError)
|
ForgejoApiError(#[from] forgejo_api::ForgejoError),
|
||||||
|
#[error(transparent)]
|
||||||
|
GithubApiError(#[from] octocrab::Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Error, Debug)]
|
#[derive(Error, Debug)]
|
||||||
|
@ -66,5 +68,5 @@ pub enum ConfigError {
|
||||||
#[error("An endpoint was set for an ApiType that does not require one")]
|
#[error("An endpoint was set for an ApiType that does not require one")]
|
||||||
EndpointSetButNotNeeded,
|
EndpointSetButNotNeeded,
|
||||||
#[error("No endpoint was set for an ApiType that requires one")]
|
#[error("No endpoint was set for an ApiType that requires one")]
|
||||||
NoEndpointSet
|
NoEndpointSet,
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ pub async fn release(cfg: &Config, apis: &mut ApiCollection) -> Result<()> {
|
||||||
.expect("no auth but trying to publish")
|
.expect("no auth but trying to publish")
|
||||||
.user,
|
.user,
|
||||||
repository: api.get_cfg().repository.clone(),
|
repository: api.get_cfg().repository.clone(),
|
||||||
text: changelog.clone(),
|
text: crate::changelog::Changelog::build(cfg)?.to_string(),
|
||||||
tag: tag.clone(),
|
tag: tag.clone(),
|
||||||
commit_sig: commit_sig.clone(),
|
commit_sig: commit_sig.clone(),
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
use std::str::FromStr;
|
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
config::{Api, Config},
|
config::{Api, Config},
|
||||||
error::*,
|
error::*,
|
||||||
|
@ -7,15 +5,9 @@ use crate::{
|
||||||
};
|
};
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use forgejo_api;
|
use forgejo_api;
|
||||||
use libpt::log::debug;
|
|
||||||
use reqwest::{
|
|
||||||
header::{HeaderMap, HeaderValue},
|
|
||||||
Client, Url,
|
|
||||||
};
|
|
||||||
use serde_json;
|
|
||||||
|
|
||||||
pub struct Forgejo {
|
pub struct Forgejo {
|
||||||
cfg: Api,
|
api: Api,
|
||||||
api_wrapper: forgejo_api::Forgejo,
|
api_wrapper: forgejo_api::Forgejo,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +19,7 @@ impl Forgejo {
|
||||||
)
|
)
|
||||||
.map_err(ServerApiError::from)?;
|
.map_err(ServerApiError::from)?;
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
cfg: api.clone(),
|
api: api.clone(),
|
||||||
api_wrapper,
|
api_wrapper,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -61,6 +53,6 @@ impl ServerApi for Forgejo {
|
||||||
todo!()
|
todo!()
|
||||||
}
|
}
|
||||||
fn get_cfg(&self) -> &Api {
|
fn get_cfg(&self) -> &Api {
|
||||||
&self.cfg
|
&self.api
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
|
use octocrab;
|
||||||
|
|
||||||
use super::{PublishContext, ReleaseContext, ServerApi};
|
use super::{PublishContext, ReleaseContext, ServerApi};
|
||||||
use crate::{
|
use crate::{
|
||||||
|
@ -6,16 +7,36 @@ use crate::{
|
||||||
error::*,
|
error::*,
|
||||||
};
|
};
|
||||||
pub struct Github {
|
pub struct Github {
|
||||||
cfg: Api,
|
api: Api,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Github {
|
||||||
|
pub async fn build(api: &Api) -> Result<Self> {
|
||||||
|
Ok(Self {
|
||||||
|
api: api.to_owned(),
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl ServerApi for Github {
|
impl ServerApi for Github {
|
||||||
async fn init(&mut self, _cfg: &Config) -> Result<()> {
|
async fn init(&mut self, _cfg: &Config) -> Result<()> {
|
||||||
todo!()
|
Ok(())
|
||||||
}
|
}
|
||||||
async fn push_release(&mut self, _rc: ReleaseContext) -> Result<()> {
|
async fn push_release(&mut self, rc: ReleaseContext) -> Result<()> {
|
||||||
todo!()
|
let response = octocrab::instance()
|
||||||
|
.repos(rc.username, rc.repository)
|
||||||
|
.releases()
|
||||||
|
.create(&rc.tag)
|
||||||
|
.target_commitish(&rc.commit_sig)
|
||||||
|
.name(&rc.tag)
|
||||||
|
.body(&rc.text)
|
||||||
|
.draft(rc.draft)
|
||||||
|
.prerelease(rc.prerelease)
|
||||||
|
.send()
|
||||||
|
.await
|
||||||
|
.map_err(ServerApiError::from)?;
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
async fn push_release_artifact(&mut self, _rc: ReleaseContext) -> Result<()> {
|
async fn push_release_artifact(&mut self, _rc: ReleaseContext) -> Result<()> {
|
||||||
todo!()
|
todo!()
|
||||||
|
@ -24,12 +45,6 @@ impl ServerApi for Github {
|
||||||
todo!()
|
todo!()
|
||||||
}
|
}
|
||||||
fn get_cfg(&self) -> &Api {
|
fn get_cfg(&self) -> &Api {
|
||||||
&self.cfg
|
&self.api
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Github {
|
|
||||||
pub async fn build(api: &Api) -> Result<Self> {
|
|
||||||
Ok(Self { cfg: api.clone() })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue