Skip to main content

cuenv_github/
lib.rs

1//! GitHub provider implementations for cuenv.
2//!
3//! This crate provides GitHub-specific implementations of:
4//! - [`GitHubCodeOwnersProvider`] for CODEOWNERS file management (feature: `codeowners`)
5//! - [`GitHubCIProvider`] for GitHub Actions CI integration (feature: `ci`)
6//! - [`workflow::GitHubActionsEmitter`] for workflow file generation (feature: `workflow`)
7//! - [`GitHubReleaseBackend`] for GitHub Releases distribution (feature: `release`)
8//! - [`GitHubConfigExt`] for GitHub-specific configuration operations
9//!
10//! Stage contributors are now defined in CUE (see `contrib/stages/`).
11//!
12//! # Features
13//!
14//! - `codeowners` (default): CODEOWNERS file sync and check operations
15//! - `ci` (default): GitHub Actions CI provider with check runs and PR comments
16//! - `workflow` (default): GitHub Actions workflow file generation from IR
17//! - `release` (default): Upload artifacts to GitHub Releases
18
19#![warn(missing_docs)]
20
21pub mod config;
22
23#[cfg(feature = "codeowners")]
24pub mod codeowners;
25
26#[cfg(feature = "ci")]
27pub mod ci;
28
29#[cfg(feature = "workflow")]
30pub mod workflow;
31
32#[cfg(feature = "release")]
33pub mod release;
34
35// Re-exports for convenience
36pub use config::GitHubConfigExt;
37
38#[cfg(feature = "codeowners")]
39pub use codeowners::GitHubCodeOwnersProvider;
40
41#[cfg(feature = "ci")]
42pub use ci::GitHubCIProvider;
43
44#[cfg(feature = "workflow")]
45pub use workflow::GitHubActionsEmitter;
46
47#[cfg(feature = "release")]
48pub use release::{GitHubReleaseBackend, GitHubReleaseConfig};