1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! GitHub CLI (gh) integration
//!
//! Uses `gh` CLI to query PR information and perform GitHub operations.
//!
//! # Architecture
//!
//! This module uses a trait-based design for testability:
//!
//! - [`CommandExecutor`] - Trait for executing shell commands
//! - [`GitHubClient`] - Main client that uses a CommandExecutor
//! - [`MockCommandExecutor`] - Mock implementation for testing
//!
//! # Example: Using in tests
//!
//! ```ignore
//! use gw::github::{GitHubClient, MockScenarioBuilder, fixtures};
//!
//! let executor = MockScenarioBuilder::new()
//! .gh_available()
//! .with_pr("feature/test", &fixtures::open_pr(42, "feature/test"))
//! .build();
//!
//! let client = GitHubClient::with_executor(executor);
//! let pr = client.get_pr_for_branch("feature/test").unwrap().unwrap();
//! assert!(pr.state.is_open());
//! ```
// Re-export types
pub use ;
// Re-export client
pub use ;
// Re-export mock (for testing in other modules)
pub use ;