diff --git a/src/issue.rs b/src/issue.rs index bfd5355..e284794 100644 --- a/src/issue.rs +++ b/src/issue.rs @@ -4,6 +4,10 @@ impl Forgejo { pub async fn get_repo_issues(&mut self, owner: &str, repo: &str, query: IssueQuery) -> Result, ForgejoError> { self.get(&query.to_string(owner, repo)).await } + + pub async fn create_issue(&mut self, owner: &str, repo: &str, opts: CreateIssueOption) -> Result { + self.post(&format!("/repos/{owner}/{repo}/issues"), &opts).await + } } #[derive(serde::Deserialize, Debug, PartialEq)] @@ -126,3 +130,16 @@ impl IssueQueryType { } } } + +#[derive(serde::Serialize, Debug, PartialEq, Default)] +pub struct CreateIssueOption { + pub assignees: Vec, + pub body: Option, + pub closed: Option, + #[serde(with = "time::serde::rfc3339::option")] + pub due_date: Option, + pub labels: Vec, + pub milestone: Option, + pub _ref: Option, + pub title: String, +}