1pub mod actions;
2pub mod build_watch;
3pub mod builders;
4pub mod columns;
5pub mod config;
6pub mod defaults;
7pub mod delegate;
8pub mod error;
9pub mod health;
10pub mod history;
11pub mod http;
12#[cfg(feature = "kubernetes")]
13pub mod kubernetes;
14pub mod logs;
15pub mod metadata;
16pub mod pagination;
17pub mod plugin;
18pub mod presentation;
19pub mod registry;
20pub mod schema;
21pub mod sign_in;
22pub mod support;
23#[cfg(test)]
24mod testing;
25pub mod types;
26pub mod utils;
27
28pub use actions::{
29 ActionAvailability,
30 ActionIcon,
31 PipelineActionState,
32 RerunStrategy,
33 RunActionState,
34 TriggerResult,
35};
36pub use error::{
37 PluginError,
38 PluginResult,
39};
40pub use health::{
41 collect_controller_health,
42 custom_status_source,
43 status_page_field,
44 ClientOptions,
45 ComponentFilter,
46 ComponentHealth,
47 FeedFormat,
48 HealthLevel,
49 StatusSource,
50 CONTROLLER_HEALTH_FEATURE,
51 STATUS_PAGE_URL_KEY,
52};
53pub use history::{
54 RunHistoryOrder,
55 RunHistoryPolicy,
56};
57pub use http::{
58 body_preview,
59 check_response,
60 from_status,
61 map_send_error,
62 read_prefix,
63 redact_url,
64 require_client,
65 retry_after,
66 truncate_chars,
67};
68pub use logs::{
69 content_hash,
70 extend_content_hash,
71 next_log_chunk,
72 ContentRange,
73 LineMarker,
74 LogAvailability,
75 LogCursor,
76 LogDialect,
77 LogNode,
78 LogNodeKind,
79 LogRead,
80 LogReadMode,
81 LogSink,
82 ParsedLine,
83 PlainDialect,
84 RunRef,
85 CONTENT_HASH_SEED,
86 LOG_CHUNK_STALL_TIMEOUT,
87};
88pub use metadata::{
89 PluginCapabilities,
90 PluginManifest,
91 PluginMetadata,
92};
93pub use plugin::Plugin;
94pub use presentation::{
95 ActionCopy,
96 DisplayField,
97 Notice,
98 PipelineFacts,
99 PipelineTerminology,
100 PluginPresentation,
101 RunDisplay,
102 RunFacts,
103 StatusOption,
104 ViewCopy,
105 WizardCopy,
106};
107pub use registry::PluginRegistry;
108pub use schema::{
109 is_no_auth,
110 AuthMode,
111 ConfigField,
112 ConfigSchema,
113 ConfigSection,
114 AUTH_MODE_KEY,
115};
116pub use sign_in::{
117 SignInClient,
118 SignInRefreshRejection,
119 SignInToken,
120};
121pub use types::{
122 AvailablePipeline,
123 Feature,
124 FeatureAvailability,
125 Organization,
126 PaginatedAvailablePipelines,
127 PaginatedResponse,
128 PaginationParams,
129 Permission,
130 PermissionCheck,
131 PermissionStatus,
132 Pipeline,
133 PipelineCatalog,
134 PipelineRun,
135 PipelineStatus,
136 RateLimit,
137 ResourceState,
138 ReviewDecision,
139 TriggerParams,
140 WorkflowParameter,
141 WorkflowParameterType,
142 READ_ONLY_METADATA_KEY,
143};
144pub use utils::{
145 retain_with_ci,
146 selected_items,
147 RetryPolicy,
148};
149
150#[macro_export]
151macro_rules! register_plugin {
152 ($plugin_type:ty) => {
153 pub fn register(registry: &mut $crate::PluginRegistry) {
154 registry.register(
155 || Box::new(<$plugin_type>::default()),
156 $crate::PluginManifest {
157 package_name: env!("CARGO_PKG_NAME"),
158 version: env!("CARGO_PKG_VERSION"),
159 description: env!("CARGO_PKG_DESCRIPTION"),
160 authors: env!("CARGO_PKG_AUTHORS"),
161 icon_svg: include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/assets/icon.svg")),
162 },
163 );
164 }
165 };
166}