Skip to main content

ephemeris_forge_forgejo/api/http/
deploy_keys.rs

1use 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}