31 lines
921 B
Rust
31 lines
921 B
Rust
|
//
|
||
|
use git_next_config as config;
|
||
|
use git_next_git as git;
|
||
|
|
||
|
use kxio::network;
|
||
|
|
||
|
pub async fn unregister(
|
||
|
webhook_id: &config::WebhookId,
|
||
|
repo_details: &git::RepoDetails,
|
||
|
net: &network::Network,
|
||
|
) -> git::forge::webhook::Result<()> {
|
||
|
let hostname = &repo_details.forge.hostname();
|
||
|
let repo_path = &repo_details.repo_path;
|
||
|
use secrecy::ExposeSecret;
|
||
|
let token = repo_details.forge.token().expose_secret();
|
||
|
let url = network::NetUrl::new(format!(
|
||
|
"https://{hostname}/api/v1/repos/{repo_path}/hooks/{webhook_id}?token={token}"
|
||
|
));
|
||
|
let request = network::NetRequest::new(
|
||
|
network::RequestMethod::Delete,
|
||
|
url,
|
||
|
network::NetRequestHeaders::new(),
|
||
|
network::RequestBody::None,
|
||
|
network::ResponseType::None,
|
||
|
None,
|
||
|
network::NetRequestLogging::None,
|
||
|
);
|
||
|
let result = net.delete(request).await;
|
||
|
Ok(result.map(|_| ())?)
|
||
|
}
|