pipedash-plugin-api 0.13.0

Plugin API for Pipedash - CI/CD pipeline dashboard
Documentation
pub mod actions;
pub mod build_watch;
pub mod builders;
pub mod columns;
pub mod config;
pub mod defaults;
pub mod delegate;
pub mod error;
pub mod health;
pub mod history;
pub mod http;
#[cfg(feature = "kubernetes")]
pub mod kubernetes;
pub mod logs;
pub mod metadata;
pub mod pagination;
pub mod plugin;
pub mod presentation;
pub mod registry;
pub mod schema;
pub mod sign_in;
pub mod support;
#[cfg(test)]
mod testing;
pub mod types;
pub mod utils;

pub use actions::{
    ActionAvailability,
    ActionIcon,
    PipelineActionState,
    RerunStrategy,
    RunActionState,
    TriggerResult,
};
pub use error::{
    PluginError,
    PluginResult,
};
pub use health::{
    collect_controller_health,
    custom_status_source,
    status_page_field,
    ClientOptions,
    ComponentFilter,
    ComponentHealth,
    FeedFormat,
    HealthLevel,
    StatusSource,
    CONTROLLER_HEALTH_FEATURE,
    STATUS_PAGE_URL_KEY,
};
pub use history::{
    RunHistoryOrder,
    RunHistoryPolicy,
};
pub use http::{
    body_preview,
    check_response,
    from_status,
    map_send_error,
    read_prefix,
    redact_url,
    require_client,
    retry_after,
    truncate_chars,
};
pub use logs::{
    content_hash,
    extend_content_hash,
    next_log_chunk,
    ContentRange,
    LineMarker,
    LogAvailability,
    LogCursor,
    LogDialect,
    LogNode,
    LogNodeKind,
    LogRead,
    LogReadMode,
    LogSink,
    ParsedLine,
    PlainDialect,
    RunRef,
    CONTENT_HASH_SEED,
    LOG_CHUNK_STALL_TIMEOUT,
};
pub use metadata::{
    PluginCapabilities,
    PluginManifest,
    PluginMetadata,
};
pub use plugin::Plugin;
pub use presentation::{
    ActionCopy,
    DisplayField,
    Notice,
    PipelineFacts,
    PipelineTerminology,
    PluginPresentation,
    RunDisplay,
    RunFacts,
    StatusOption,
    ViewCopy,
    WizardCopy,
};
pub use registry::PluginRegistry;
pub use schema::{
    is_no_auth,
    AuthMode,
    ConfigField,
    ConfigSchema,
    ConfigSection,
    AUTH_MODE_KEY,
};
pub use sign_in::{
    SignInClient,
    SignInRefreshRejection,
    SignInToken,
};
pub use types::{
    AvailablePipeline,
    Feature,
    FeatureAvailability,
    Organization,
    PaginatedAvailablePipelines,
    PaginatedResponse,
    PaginationParams,
    Permission,
    PermissionCheck,
    PermissionStatus,
    Pipeline,
    PipelineCatalog,
    PipelineRun,
    PipelineStatus,
    RateLimit,
    ResourceState,
    ReviewDecision,
    TriggerParams,
    WorkflowParameter,
    WorkflowParameterType,
    READ_ONLY_METADATA_KEY,
};
pub use utils::{
    retain_with_ci,
    selected_items,
    RetryPolicy,
};

#[macro_export]
macro_rules! register_plugin {
    ($plugin_type:ty) => {
        pub fn register(registry: &mut $crate::PluginRegistry) {
            registry.register(
                || Box::new(<$plugin_type>::default()),
                $crate::PluginManifest {
                    package_name: env!("CARGO_PKG_NAME"),
                    version: env!("CARGO_PKG_VERSION"),
                    description: env!("CARGO_PKG_DESCRIPTION"),
                    authors: env!("CARGO_PKG_AUTHORS"),
                    icon_svg: include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/icon.svg")),
                },
            );
        }
    };
}