ephemeris_forge_forgejo/api/http/
deploy_keys.rs1use ephemeris_forge::{RepoRef, encode};
2use reqwest::Method;
3
4use crate::api::HttpApi;
5use crate::api::error::ForgeError;
6use crate::api::model::DeployKey;
7use crate::api::operations::DeployKeysApi;
8use crate::api::request::CreateKeyOption;
9
10impl DeployKeysApi for HttpApi {
11 async fn deploy_keys(&self, repo: &RepoRef) -> Result<Vec<DeployKey>, ForgeError> {
12 self.paged(&repo.path("keys")).await
13 }
14
15 async fn create_deploy_key(
16 &self,
17 repo: &RepoRef,
18 body: &CreateKeyOption,
19 ) -> Result<(), ForgeError> {
20 let path = repo.path("keys");
21 let body = encode(body);
22 self.send_write(Method::POST, &path, Some(&body)).await
23 }
24
25 async fn delete_deploy_key(&self, repo: &RepoRef, id: i64) -> Result<(), ForgeError> {
26 let path = repo.path(&format!("keys/{id}"));
27 self.send_write(Method::DELETE, &path, None).await
28 }
29}