Initial schema for webhook.
This commit is contained in:
		
							parent
							
								
									ab5db8aded
								
							
						
					
					
						commit
						14373c21dd
					
				
							
								
								
									
										1
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -831,6 +831,7 @@ version = "0.0.1" | |||||||
| dependencies = [ | dependencies = [ | ||||||
|  "axum", |  "axum", | ||||||
|  "serde", |  "serde", | ||||||
|  |  "serde_json", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tower-http", |  "tower-http", | ||||||
|  "tracing", |  "tracing", | ||||||
|  | |||||||
| @ -21,6 +21,8 @@ include = [ | |||||||
| # default form, http1, json, matched-path, original-uri, query, tokio, tower-log, tracing | # default form, http1, json, matched-path, original-uri, query, tokio, tower-log, tracing | ||||||
| axum = { version = "0.7.5", default-features = false, features = ["tokio", "http1", "http2", "json"] } | axum = { version = "0.7.5", default-features = false, features = ["tokio", "http1", "http2", "json"] } | ||||||
| serde = { version = "1.0.204", features = ["derive"] } | serde = { version = "1.0.204", features = ["derive"] } | ||||||
|  | # default std | ||||||
|  | serde_json = { version = "1.0.120", default-features = false, features = ["std"] } | ||||||
| tokio = { version = "1.38.0", default-features = false, features = ["macros", "process", "rt", "rt-multi-thread"] } | tokio = { version = "1.38.0", default-features = false, features = ["macros", "process", "rt", "rt-multi-thread"] } | ||||||
| tower-http = { version = "0.5.2", default-features = false, features = ["trace"] } | tower-http = { version = "0.5.2", default-features = false, features = ["trace"] } | ||||||
| # default attributes, std, tracing-attributes | # default attributes, std, tracing-attributes | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | #![forbid(unsafe_code)] | ||||||
| use axum::http::StatusCode; | use axum::http::StatusCode; | ||||||
| use axum::routing::get; | use axum::routing::get; | ||||||
| use axum::routing::post; | use axum::routing::post; | ||||||
|  | |||||||
| @ -1,11 +1,32 @@ | |||||||
|  | use axum::http::HeaderMap; | ||||||
| use axum::http::StatusCode; | use axum::http::StatusCode; | ||||||
| use axum::Json; | use axum::Json; | ||||||
|  | use serde::Deserialize; | ||||||
| use serde::Serialize; | use serde::Serialize; | ||||||
|  | use serde_json::Value; | ||||||
| 
 | 
 | ||||||
| pub(crate) async fn hook() -> (StatusCode, Json<HookResponse>) { | pub(crate) async fn hook( | ||||||
|  |     headers: HeaderMap, | ||||||
|  |     Json(payload): Json<HookRequest>, | ||||||
|  | ) -> (StatusCode, Json<HookResponse>) { | ||||||
|     (StatusCode::OK, Json(HookResponse { ok: true })) |     (StatusCode::OK, Json(HookResponse { ok: true })) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #[allow(dead_code)] | ||||||
|  | #[derive(Deserialize)] | ||||||
|  | pub(crate) struct HookRequest { | ||||||
|  |     #[serde(rename = "ref")] | ||||||
|  |     ref_field: String, | ||||||
|  |     before: String, | ||||||
|  |     compare_url: String, | ||||||
|  |     commits: Value, | ||||||
|  |     total_commits: u64, | ||||||
|  |     head_commit: Value, | ||||||
|  |     repository: Value, | ||||||
|  |     pusher: Value, | ||||||
|  |     sender: Value, | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #[derive(Serialize)] | #[derive(Serialize)] | ||||||
| pub(crate) struct HookResponse { | pub(crate) struct HookResponse { | ||||||
|     ok: bool, |     ok: bool, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander