|
@@ -0,0 +1,47 @@
|
|
|
+Pipeline items
|
|
|
+==============
|
|
|
+
|
|
|
+### PipelineItem lifecycle
|
|
|
+
|
|
|
+```go
|
|
|
+type PipelineItem interface {
|
|
|
+ // Name returns the name of the analysis.
|
|
|
+ Name() string
|
|
|
+ // Provides returns the list of keys of reusable calculated entities.
|
|
|
+ // Other items may depend on them.
|
|
|
+ Provides() []string
|
|
|
+ // Requires returns the list of keys of needed entities which must be supplied in Consume().
|
|
|
+ Requires() []string
|
|
|
+ // ListConfigurationOptions returns the list of available options which can be consumed by Configure().
|
|
|
+ ListConfigurationOptions() []ConfigurationOption
|
|
|
+ // Configure performs the initial setup of the object by applying parameters from facts.
|
|
|
+ // It allows to create PipelineItems in a universal way.
|
|
|
+ Configure(facts map[string]interface{})
|
|
|
+ // Initialize prepares and resets the item. Consume() requires Initialize()
|
|
|
+ // to be called at least once beforehand.
|
|
|
+ Initialize(*git.Repository)
|
|
|
+ // Consume processes the next commit.
|
|
|
+ // deps contains the required entities which match Depends(). Besides, it always includes
|
|
|
+ // "commit" and "index".
|
|
|
+ // Returns the calculated entities which match Provides().
|
|
|
+ Consume(deps map[string]interface{}) (map[string]interface{}, error)
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### LeafPipelineItem lifecycle
|
|
|
+
|
|
|
+```go
|
|
|
+type LeafPipelineItem interface {
|
|
|
+ PipelineItem
|
|
|
+ // Flag returns the cmdline name of the item.
|
|
|
+ Flag() string
|
|
|
+ // Finalize returns the result of the analysis.
|
|
|
+ Finalize() interface{}
|
|
|
+ // Serialize encodes the object returned by Finalize() to Text or Protocol Buffers.
|
|
|
+ Serialize(result interface{}, binary bool, writer io.Writer) error
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+
|