StigGenerateDiagramAppendixTask

@CacheableTask
abstract class StigGenerateDiagramAppendixTask : DefaultTask, StigProblemProducerTask

Emits a supplementary markdown file (diagrams.md) listing every diagram produced by com.stigway.gradle.tasks.analysis.StigAnalysisP7GenerateDiagramsTask, with headings that mirror the 5-axis directory structure 1-to-1 (analysis_type / depth / merge_mode / diagram_type / summary_type).

SVG or Cytoscape is embedded as the primary view. Summarized previews prefer SVG; detailed views follow primaryDiagram. When Sigma output is enabled, detailed-per-IR cells also offer an "Open in Sigma viewer" link that launches sigma-viewer.html with the JSON's flat filename in ?src=. A top-level Element-level complexity section sums per-function metrics from function_metrics.json.

Asset path convention

Diagram files are copied into the per-element analysis viewpoint directory (sibling of diagrams.md). The recursive svg + sigma fileTree configured in com.stigway.gradle.config.stigGeneratedDocsAssets then picks them up as Dokka custom assets and flattens them into the publication's images/ directory. From a package-level HTML page, the path back to that flat dir is IMAGES_PREFIX_FROM_PACKAGE (../../images in module-preview mode).

Filenames are flattened to a single segment so the flat copy doesn't collide across cells: <activity-leaf>--<analysis_type>--<depth>--<merge_mode>--<diagram_type>--<summary_type>--<slug>.<ext>. Complete P7 Cytoscape .cyjson remains under its task output; the publication asset is a lossless .cyjson.gz produced inside docsOutputDir.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override var actions: List<Action<in Task?>?>?
Link copied to clipboard
@get:InputDirectory
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val analyzerOutputDir: DirectoryProperty

The stigAnalysisP6RunAnalyzer analyzer-output dir — holds one <slug>/analysis-<slug>.json per analysis. Read per cell to build the per-sink tables (leaked / tainting sources / instruction list, and per-sink complexity). Optional — tables are omitted when absent.

Link copied to clipboard
open override val ant: AntBuilder?
Link copied to clipboard
@get:InputFile
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val appliedTransformationsFile: RegularFileProperty

applied_transformations.json from stigAnalysisP7GenerateAppliedTransformations. Drives the top-level Analyzer IR scope table. Optional — the section is omitted when the file is absent or empty.

Link copied to clipboard
@get:Internal
open val asDynamicObject: DynamicObject
Link copied to clipboard
@get:InputDirectory
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val cfgDir: DirectoryProperty

P5 run-plan endpoint sidecars supply exact logical-sink symbols and field labels.

Link copied to clipboard
@get:OutputFile
@get:Optional
abstract val complexitySummaryFile: RegularFileProperty

Per-module element-complexity summary consumed by the root project complexity overview.

Link copied to clipboard
@get:Input
@get:Optional
abstract val cytoscapeInitialLayout: Property<String>

Initial Cytoscape layout id for inline and standalone Cytoscape viewers. preset keeps the deterministic positions baked into the cyjson; other toolbar layouts are optional client-side relayouts.

Link copied to clipboard
open override val dependsOn: Set<Any?>?
Link copied to clipboard
open override var description: @Nullable String?
Link copied to clipboard
open override val destroyables: TaskDestroyables?
Link copied to clipboard
@get:Input
abstract val diagramOutputsSigma: Property<Boolean>

Whether opt-in Sigma assets may be copied and linked from the appendix.

Link copied to clipboard
@get:InputDirectory
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val diagramsRoot: DirectoryProperty
Link copied to clipboard
open override var didWork: Boolean
Link copied to clipboard
@get:OutputDirectory
abstract val docsOutputDir: DirectoryProperty

The same Dokka output root that StigGenerateMarkdownTask writes to. The appendix writes its diagrams.md into the <package-path>/analysis/ subdirectory of this root.

Link copied to clipboard
@get:InputFiles
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val dokkaSourceRoots: ConfigurableFileCollection

Activity's Kotlin source roots — used to derive the element's package path (e.g. app/activities/example_activity) so the appendix lands next to the other per-element markdown.

Link copied to clipboard
open override var enabled: Boolean
Link copied to clipboard
open override val extensions: ExtensionContainer?
Link copied to clipboard
@get:Input
@get:Optional
abstract val failAt: Property<ProblemSeverity>

Severity threshold at which reported metric postconditions fail the task.

Link copied to clipboard
open override val finalizedBy: TaskDependency?
Link copied to clipboard
@get:InputFile
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val functionMetricsFile: RegularFileProperty

function_metrics.json from stigAnalysisP7CollectMetrics. Drives the top-level Element-level complexity table. Optional — the section is omitted when the file is absent.

Link copied to clipboard
open override var group: @Nullable String?
Link copied to clipboard
open val identityPath: Path?
Link copied to clipboard
@get:Input
@get:Optional
abstract val imagesPrefix: Property<String>

Relative path from a package-level HTML page back to Dokka's flat images/ directory. Defaults to IMAGES_PREFIX_FROM_PACKAGE (../../images, correct for module-preview). Callers targeting the aggregate layout should set this via com.stigway.gradle.config.dokkaAggregateImagesPrefix.

Link copied to clipboard
Link copied to clipboard
@get:Internal
abstract val includedInDefaultProblemAggregate: Property<Boolean>
Link copied to clipboard
open override val inputs: TaskInputsInternal?
Link copied to clipboard
@get:InputFile
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val irDiagnosticsFile: RegularFileProperty

LLVM IR metrics produced from the final P5 module.

Link copied to clipboard
@get:Internal
open var isEnabled: Boolean
Link copied to clipboard
Link copied to clipboard
@get:Internal
open val lifecycleDependencies: TaskDependencyInternal?
Link copied to clipboard
open override val localState: TaskLocalState?
Link copied to clipboard
open override val logger: Logger?
Link copied to clipboard
open override val logging: LoggingManager?
Link copied to clipboard
open val loggingManager: @Nullable LoggingManagerInternal?
Link copied to clipboard
@get:Input
@get:Optional
abstract val maxArtifactSizeMiB: Property<Int>

Maximum size of one asset copied into publication docs in MiB; absent means unlimited.

Link copied to clipboard
open override val mustRunAfter: TaskDependency?
Link copied to clipboard
open override val name: String?
Link copied to clipboard
open val onlyIf: Spec<in TaskInternal?>?
Link copied to clipboard
open override val outputs: TaskOutputsInternal?
Link copied to clipboard
open override val path: String?
Link copied to clipboard
@get:Input
@get:Optional
abstract val primaryDiagram: Property<String>

Which renderer is the PRIMARY (inlined next to the text on the page): "svg" or "cytoscape". Sigma is never primary and, when enabled, is offered as a detailed-per-IR viewer link. Default: SVG.

Link copied to clipboard
@get:OutputFile
abstract override val problemsFile: RegularFileProperty

HIGH metric-invariant problems emitted while assembling the report.

Link copied to clipboard
open override val project: Project?
Link copied to clipboard
@get:Input
abstract val projectPath: Property<String>

Gradle project path captured during configuration for canonical problem provenance.

Link copied to clipboard
@get:InputFile
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val provisionalAnalysisFile: RegularFileProperty

P6 evidence-mode/provisional-boundary report used for the non-evidence banner.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@get:Input
@get:Optional
abstract val repoCodeBrowsers: ListProperty<String>
Link copied to clipboard
@get:Input
@get:Optional
abstract val repoCommits: ListProperty<String>
Link copied to clipboard
@get:Input
@get:Optional
abstract val repoGitRoots: ListProperty<String>

Repo source-link inputs (aligned lists, same as P7GenerateDiagrams): git-root basename → remote URL → commit. Used to turn an analyzer CFG node's sourceRepo + repo-relative sourceFile + line into a provider-correct source link below each function name in the per-function table. Empty → no links (graceful).

Link copied to clipboard
@get:Input
@get:Optional
abstract val repoRemotePaths: ListProperty<String>
Link copied to clipboard
@get:Input
@get:Optional
abstract val repoRemoteUrls: ListProperty<String>
Link copied to clipboard
open val requiredServices: TaskRequiredServices?
Link copied to clipboard
open val sharedResources: List<ResourceLock?>?
Link copied to clipboard
open override val shouldRunAfter: TaskDependency?
Link copied to clipboard
@get:Input
abstract val sourceBrowserMode: Property<SourceBrowserMode>

Whether source-browser files are absent, local-only, or publishable.

Link copied to clipboard
open val standardOutputCapture: StandardOutputCapture?
Link copied to clipboard
open override val state: TaskStateInternal?
Link copied to clipboard
open val taskActions: List<InputChangesAwareTaskAction?>?
Link copied to clipboard
open override val taskDependencies: TaskDependencyInternal?
Link copied to clipboard
open val taskIdentity: TaskIdentity<*>?
Link copied to clipboard
open override val temporaryDir: File?
Link copied to clipboard
open val temporaryDirFactory: Factory<File?>?
Link copied to clipboard
open override val timeout: Property<Duration?>?
Link copied to clipboard
@get:Input
@get:Optional
abstract val title: Property<String>

Functions

Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec?>?)
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
open operator fun compareTo(otherTask: Task?): Int
Link copied to clipboard
open fun configure(closure: Closure<*>?): Task?
Link copied to clipboard
open fun dependsOn(vararg paths: Any?): Task?
Link copied to clipboard
open fun doFirst(action: Closure<*>?): Task?
open fun doFirst(action: Action<in Task?>?): Task?
open fun doFirst(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doLast(action: Closure<*>?): Task?
open fun doLast(action: Action<in Task?>?): Task?
open fun doLast(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doNotTrackState(reasonNotToTrackState: String?)
Link copied to clipboard
open fun doNotTrackStateIf(reason: String?, spec: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun finalizedBy(vararg paths: Any?): Task?
Link copied to clipboard
open fun getActions(): List<Action<in Task?>?>?
Link copied to clipboard
open fun getAnt(): AntBuilder?
Link copied to clipboard
open fun getDependsOn(): Set<Any?>?
Link copied to clipboard
open fun getDescription(): @Nullable String?
Link copied to clipboard
open fun getDestroyables(): TaskDestroyables?
Link copied to clipboard
open fun getDidWork(): Boolean
Link copied to clipboard
open fun getEnabled(): Boolean
Link copied to clipboard
open fun getExtensions(): ExtensionContainer?
Link copied to clipboard
open fun getFinalizedBy(): TaskDependency?
Link copied to clipboard
open fun getGroup(): @Nullable String?
Link copied to clipboard
open fun getInputs(): TaskInputsInternal?
Link copied to clipboard
open fun getLocalState(): TaskLocalState?
Link copied to clipboard
open fun getLogger(): Logger?
Link copied to clipboard
open fun getLogging(): LoggingManager?
Link copied to clipboard
open fun getMustRunAfter(): TaskDependency?
Link copied to clipboard
open fun getName(): String?
Link copied to clipboard
open fun getOutputs(): TaskOutputsInternal?
Link copied to clipboard
open fun getPath(): String?
Link copied to clipboard
open fun getProject(): Project?
Link copied to clipboard
open fun getShouldRunAfter(): TaskDependency?
Link copied to clipboard
open fun getState(): TaskStateInternal?
Link copied to clipboard
open fun getTaskDependencies(): TaskDependencyInternal?
Link copied to clipboard
open fun getTemporaryDir(): File?
Link copied to clipboard
open fun getTimeout(): Property<Duration?>?
Link copied to clipboard
open fun hasProperty(propertyName: String?): Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun mustRunAfter(vararg paths: Any?): Task?
Link copied to clipboard
open fun onlyIf(onlyIfClosure: Closure<*>?)
open fun onlyIf(spec: Spec<in Task?>?)
open fun onlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
open fun property(propertyName: String?): Any?
Link copied to clipboard
open fun restoreOnlyIf(onlyIf: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun restoreTaskActions(taskActions: List<InputChangesAwareTaskAction?>?)
Link copied to clipboard
fun run()
Link copied to clipboard
open fun setActions(replacements: List<Action<in Task?>?>?)
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<*>?)
Link copied to clipboard
open fun setDescription(description: @Nullable String?)
Link copied to clipboard
open fun setDidWork(didWork: Boolean)
Link copied to clipboard
open fun setEnabled(enabled: Boolean)
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<*>?)
Link copied to clipboard
open fun setGroup(group: @Nullable String?)
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun setOnlyIf(onlyIfClosure: Closure<*>?)
open fun setOnlyIf(spec: Spec<in Task?>?)
open fun setOnlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun setProperty(name: String?, value: Any?)
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun shouldRunAfter(vararg paths: Any?): TaskDependency?
Link copied to clipboard
open fun usesService(service: Provider<out BuildService<*>?>?)