Sub-crate: forgejo-hooks

Supports commit push for the moment

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
Maxime “pep” Buquet 2024-04-23 17:19:47 +02:00
parent 991474e4ad
commit b9b0303e88
Signed by: pep
GPG key ID: DEDA74AEECA9D0F2
2 changed files with 70 additions and 0 deletions

7
forgejo-hooks/Cargo.toml Normal file
View file

@ -0,0 +1,7 @@
[package]
name = "forgejo-hooks"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0", features = ["derive"] }

63
forgejo-hooks/src/lib.rs Normal file
View file

@ -0,0 +1,63 @@
use serde::Deserialize;
#[derive(Deserialize, Debug)]
pub struct CommitAuthor {
pub name: String,
pub email: String,
pub username: String,
}
#[derive(Deserialize, Debug)]
pub struct User {
pub id: u32,
pub login: String,
pub full_name: String,
pub email: String,
pub avatar_url: String,
pub username: String,
}
#[derive(Deserialize, Debug)]
pub struct Commit {
pub id: String,
pub message: String,
pub url: String,
pub author: CommitAuthor,
pub committer: CommitAuthor,
pub timestamp: String,
}
#[derive(Deserialize, Debug)]
pub struct Repository {
pub id: u32,
pub owner: User,
pub name: String,
pub full_name: String,
pub description: String,
pub private: bool,
pub fork: bool,
pub html_url: String,
pub ssh_url: String,
pub clone_url: String,
pub website: String,
pub stars_count: u32,
pub forks_count: u32,
pub watchers_count: u32,
pub open_issues_count: u32,
pub default_branch: String,
pub created_at: String,
pub updated_at: String,
}
#[derive(Deserialize, Debug)]
pub struct Hook {
#[serde(rename(deserialize = "ref"))]
pub ref_: String,
pub before: String,
pub compare_url: String,
pub commits: Vec<Commit>,
pub repository: Repository,
pub pusher: User,
pub sender: User,
}