gitforge/
lib.rs

1// Copyright 2021 Citrix
2// SPDX-License-Identifier: MIT OR Apache-2.0
3// There is NO WARRANTY.
4
5//! Uniform access to github and gitlab
6//!
7//! Currently, listing and creating merge requests is suppored.
8//!
9//! Example
10//!
11//! ```
12//! use gitforge::forge;
13//!
14//! let mut f = forge::Config {
15//!   kind: "github".parse().ok(),
16//!   host: "github.com".into(),
17//!   ..Default::default()
18//! }
19//!   .load_default_token().unwrap()
20//!   .forge().unwrap();
21//!
22//! let req = forge::Req::MergeRequests(forge::Req_MergeRequests{
23//!   target_repo: "CVEProject/cvelist".into(),
24//!   statuses: Some([forge::IssueMrStatus::Open].iter().cloned().collect()),
25//!   ..Default::default()
26//! });
27//!
28//! match f.request(&req).unwrap() {
29//!   forge::Resp::MergeRequests { mrs,.. } => {
30//!     for mr in mrs {
31//!       println!("{:?}", &mr);
32//!     }
33//!   },
34//!   x => panic!("unexpected response {:?}", &x),
35//! };
36//! ```
37
38mod prelude;
39
40pub mod forge;
41#[cfg(feature="gitlab")] pub mod lab;
42#[cfg(feature="github")] pub mod hub;
43
44mod util;