git_http_backend/actix/
mod.rs1use crate::actix::get_text_file::get_text_file;
2use crate::actix::git_receive_pack::git_receive_pack;
3use crate::actix::git_upload_pack::git_upload_pack;
4use crate::actix::objects_info_packs::objects_info_packs;
5use crate::actix::objects_pack::objects_pack;
6use crate::actix::refs::info_refs;
7use crate::GitConfig;
8use actix_web::web::Data;
9use actix_web::{web, HttpRequest};
10
11pub mod handler;
13
14pub mod get_text_file;
16pub mod git_receive_pack;
18pub mod git_upload_pack;
20pub mod objects_info_packs;
22pub mod refs;
24
25pub mod objects_pack;
27
28pub fn router<T>(cfg: &mut web::ServiceConfig)
30where
31 T: GitConfig + 'static,
32{
33 cfg.service(
34 web::scope("/{namespace}/{repo}")
35 .route(
36 "/git-upload-pack",
37 web::to::<_, (HttpRequest, web::Payload, Data<T>)>(git_upload_pack),
38 )
39 .route(
40 "/git-receive-pack",
41 web::to::<_, (HttpRequest, web::Payload, Data<T>)>(git_receive_pack),
42 )
43 .route("info/refs", web::to::<_, (HttpRequest, Data<T>)>(info_refs))
44 .route("HEAD", web::to::<_, (HttpRequest, Data<T>)>(get_text_file))
45 .route(
46 "objects/info/alternates",
47 web::to::<_, (HttpRequest, Data<T>)>(get_text_file),
48 )
49 .route(
50 "objects/info/http-alternates",
51 web::to::<_, (HttpRequest, Data<T>)>(get_text_file),
52 )
53 .route(
54 "objects/info/packs",
55 web::to::<_, (HttpRequest, Data<T>)>(objects_info_packs),
56 )
57 .route(
58 "objects/info/{rest:.*}",
59 web::to::<_, (HttpRequest, Data<T>)>(get_text_file),
60 )
61 .route(
62 "objects/pack/{pack}",
63 web::to::<_, (HttpRequest, Data<T>)>(objects_pack),
64 ),
65 );
66}