gitdataai/lib/api/src/git/mod.rs

236 lines
8.2 KiB
Rust

pub mod archive;
pub mod blame;
pub mod blob;
pub mod branch;
pub mod commit;
pub mod commit_status;
pub mod compare;
pub mod contents;
pub mod contributor;
pub mod diff;
pub mod dto;
pub mod fork;
pub mod init;
pub mod language;
pub mod protect;
pub mod readme;
pub mod refs;
pub mod release;
pub mod repo;
pub mod star;
pub mod tag;
pub mod tree;
pub mod watch;
pub mod webhook;
use actix_web::{web, web::ServiceConfig};
pub fn configure(cfg: &mut ServiceConfig) {
cfg.service(
web::resource("")
.route(web::post().to(init::create_repo))
.route(web::get().to(repo::list_repos)),
);
cfg.service(
web::resource("/clone").route(web::post().to(init::clone_repo)),
);
cfg.service(
web::resource("/{repo}")
.route(web::get().to(repo::get_repo))
.route(web::put().to(repo::update_repo))
.route(web::delete().to(repo::delete_repo)),
);
cfg.service(
web::resource("/{repo}/archive")
.route(web::post().to(repo::archive_repo)),
);
cfg.service(
web::resource("/{repo}/transfer")
.route(web::post().to(repo::transfer_repo)),
);
cfg.service(
web::resource("/{repo}/topics")
.route(web::get().to(repo::get_topics))
.route(web::put().to(repo::update_topics)),
);
cfg.service(
web::resource("/{repo}/forks")
.route(web::get().to(fork::list_forks))
.route(web::post().to(fork::create_fork)),
);
cfg.service(
web::resource("/{repo}/protect")
.route(web::get().to(protect::list_protects))
.route(web::post().to(protect::create_protect)),
);
cfg.service(
web::resource("/{repo}/protect/{protect_id}")
.route(web::put().to(protect::update_protect))
.route(web::delete().to(protect::delete_protect)),
);
cfg.service(
web::resource("/{repo}/webhooks")
.route(web::get().to(webhook::list_webhooks))
.route(web::post().to(webhook::create_webhook)),
);
cfg.service(
web::resource("/{repo}/webhooks/{webhook_id}")
.route(web::put().to(webhook::update_webhook))
.route(web::delete().to(webhook::delete_webhook)),
);
cfg.service(
web::resource("/{repo}/webhooks/{webhook_id}/deliveries")
.route(web::get().to(webhook::list_deliveries)),
);
cfg.service(
web::scope("/{repo}/git")
.service(
web::resource("/branches")
.route(web::get().to(branch::list_branches))
.route(web::post().to(branch::fork_branch)),
)
.service(
web::resource("/branches/{name}")
.route(web::get().to(branch::branch_info))
.route(web::patch().to(branch::rename_branch))
.route(web::delete().to(branch::delete_branch)),
)
.service(
web::resource("/branches/{name}/ahead-behind")
.route(web::get().to(branch::ahead_behind)),
)
.service(
web::resource("/branches/{name}/upstream")
.route(web::get().to(branch::branch_upstream)),
)
.service(
web::resource("/commits")
.route(web::get().to(commit::list_commits)),
)
.service(
web::resource("/commits/history")
.route(web::get().to(commit::commit_history)),
)
.service(
web::resource("/commits/{oid}")
.route(web::get().to(commit::commit_info)),
)
.service(
web::resource("/commits/walk")
.route(web::post().to(commit::commit_walk)),
)
.service(
web::resource("/commits/cherry-pick")
.route(web::post().to(commit::cherry_pick)),
)
.service(
web::resource("/blobs")
.route(web::post().to(blob::blob_upload)),
)
.service(
web::resource("/blobs/{oid}")
.route(web::get().to(blob::blob_info)),
)
.service(
web::resource("/blame").route(web::get().to(blame::blame_file)),
)
.service(
web::resource("/trees/{oid}")
.route(web::get().to(tree::tree_entries)),
)
.service(
web::resource("/trees/{tree_oid}/entries")
.route(web::get().to(tree::tree_entry_by_path)),
)
.service(
web::resource("/commits/{oid}/tree")
.route(web::get().to(tree::tree_entry_by_path_from_commit)),
)
.service(web::resource("/diff").route(web::get().to(diff::diff)))
.service(
web::resource("/diff/branches")
.route(web::get().to(readme::diff_branches)),
)
.service(
web::resource("/tags")
.route(web::get().to(tag::list_tags))
.route(web::post().to(tag::init_tag)),
)
.service(
web::resource("/tags/{name}")
.route(web::get().to(tag::tag_info))
.route(web::patch().to(tag::update_tag))
.route(web::delete().to(tag::delete_tag)),
)
.service(
web::resource("/archive")
.route(web::get().to(archive::archive)),
)
.service(
web::resource("/star")
.route(web::get().to(star::star_status))
.route(web::post().to(star::star_repo))
.route(web::delete().to(star::unstar_repo)),
)
.service(
web::resource("/watch")
.route(web::get().to(watch::watch_status))
.route(web::post().to(watch::watch_repo))
.route(web::delete().to(watch::unwatch_repo)),
)
.service(
web::resource("/contributors")
.route(web::get().to(contributor::list_contributors)),
)
.service(
web::resource("/languages")
.route(web::get().to(language::get_languages)),
)
.service(
web::resource("/readme")
.route(web::get().to(readme::get_readme)),
)
.service(
web::resource("/refs").route(web::get().to(refs::list_refs)),
),
);
cfg.service(
web::resource("/{repo}/releases")
.route(web::get().to(release::list_releases))
.route(web::post().to(release::create_release)),
)
.service(
web::resource("/{repo}/releases/{id}")
.route(web::get().to(release::get_release))
.route(web::patch().to(release::update_release))
.route(web::delete().to(release::delete_release)),
)
.service(
web::resource("/{repo}/releases/tags/{tag}")
.route(web::get().to(release::get_release_by_tag))
.route(web::delete().to(release::delete_release_by_tag)),
)
.service(
web::resource("/{repo}/statuses/{sha}")
.route(web::post().to(commit_status::create_status)),
)
.service(
web::resource("/{repo}/commits/{sha}/status")
.route(web::get().to(commit_status::combined_status)),
)
.service(
web::resource("/{repo}/commits/{sha}/statuses")
.route(web::get().to(commit_status::list_statuses)),
)
.service(
web::resource("/{repo}/compare/{basehead}")
.route(web::get().to(compare::compare)),
)
.service(
web::resource("/{repo}/contents/{path:.*}")
.route(web::get().to(contents::get_contents))
.route(web::post().to(contents::create_contents))
.route(web::put().to(contents::update_contents))
.route(web::delete().to(contents::delete_contents)),
);
}