Package io.jenkins.plugins.finitestate
Class BaseFiniteStateRecorder
java.lang.Object
hudson.tasks.BuildStepCompatibilityLayer
hudson.tasks.Publisher
hudson.tasks.Recorder
io.jenkins.plugins.finitestate.BaseFiniteStateRecorder
- All Implemented Interfaces:
ExtensionPoint,Describable<Publisher>,BuildStep,SimpleBuildStep
- Direct Known Subclasses:
FiniteStateAnalyzeBinaryRecorder,FiniteStateSBOMImportRecorder,FiniteStateThirdPartyImportRecorder
Abstract base class for all Finite State recorders.
Contains common functionality shared across different analysis types.
All analysis runs through the public v0 REST API, described per analysis type via
configureRequest(FiniteStateScanRequest) and driven by
FiniteStateExecutionFramework. Binary uploads use the mb-api upload façade
(POST /scans/upload), a single contract served by both the legacy backend (natively) and
the current backend (as a façade), so one published plugin works against either backend with no
job configuration change. See HELIX-422.
-
Nested Class Summary
Nested classes/interfaces inherited from class hudson.tasks.Publisher
Publisher.DescriptorExtensionListImplNested classes/interfaces inherited from interface hudson.tasks.BuildStep
BuildStep.PublisherListNested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudsonNested classes/interfaces inherited from interface jenkins.tasks.SimpleBuildStep
SimpleBuildStep.LastBuildAction, SimpleBuildStep.LastBuildActionFactory -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringstatic final intDefault poll timeout (minutes) when waiting for scan completion (FR-7).protected Booleanprotected Integerprotected Booleanprotected Stringprotected Stringprotected Stringprotected BooleanFields inherited from interface hudson.tasks.BuildStep
BUILDERS, PUBLISHERS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddConsolidatedResult(Run<?, ?> run, String analysisType, String projectName, String consoleOutput, String status, String url) Add a minimal result (error/validation paths that have no scan metadata yet).protected voidaddConsolidatedResult(Run<?, ?> run, String analysisType, String projectName, String consoleOutput, String status, String url, String scanIds, String scanStatus) Add a successful/structured result (with scan metadata) to the consolidated results action.protected abstract voidconfigureRequest(FiniteStateScanRequest request) Populate the type-specific portion of the scan request (kind + per-analysis fields) for the public v0 REST transport.protected abstract StringGet the analysis type name for logging and resultsbooleanprotected FilePathgetFileFromWorkspace(FilePath workspace, String relativeFilePath, TaskListener listener) Get file from workspace - common utility method (pipeline and freestyle)protected abstract StringGet the file path field name for validationprotected abstract StringGet the file path valueintbooleanprotected StringgetSecretTextValue(Run<?, ?> run, String credentialId) Get secret values from credentials - common utility method (pipeline and freestyle)booleanprotected voidlogCommonInfo(Run<?, ?> run, TaskListener listener, String filePath) Log common informationprotected StringparseVersion(Run<?, ?> run, String projectVersion) Parse version based on externalizableId settingvoidPreferred entry point including environment variables.voidsetApiTokenCredentialsId(String apiTokenCredentialsId) Setter to allow Pipeline usage like: apiTokenCredentialsId: 'my-secret-text-id'voidsetExternalizableId(boolean externalizableId) voidsetPollTimeoutMinutes(int pollTimeoutMinutes) voidsetPreRelease(boolean preRelease) voidsetProjectName(String projectName) voidsetProjectVersion(String projectVersion) voidsetSubdomain(String subdomain) voidsetWaitForCompletion(boolean waitForCompletion) protected booleanvalidateCommonFields(TaskListener listener) Validate common required fieldsMethods inherited from class hudson.tasks.Recorder
getDescriptorMethods inherited from class hudson.tasks.Publisher
all, getProjectAction, needsToRunAfterFinalized, prebuildMethods inherited from class hudson.tasks.BuildStepCompatibilityLayer
getProjectAction, getProjectActions, perform, perform, prebuildMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface hudson.tasks.BuildStep
getProjectAction, getProjectActions, getRequiredMonitorService, perform, prebuildMethods inherited from interface jenkins.tasks.SimpleBuildStep
perform, perform, requiresWorkspace
-
Field Details
-
DEFAULT_POLL_TIMEOUT_MINUTES
public static final int DEFAULT_POLL_TIMEOUT_MINUTESDefault poll timeout (minutes) when waiting for scan completion (FR-7).- See Also:
-
subdomain
-
apiTokenCredentialsId
-
projectName
-
projectVersion
-
externalizableId
-
preRelease
-
waitForCompletion
-
pollTimeoutMinutes
-
-
Constructor Details
-
BaseFiniteStateRecorder
protected BaseFiniteStateRecorder()
-
-
Method Details
-
getSubdomain
-
getApiTokenCredentialsId
-
getProjectName
-
getProjectVersion
-
getExternalizableId
public boolean getExternalizableId() -
getPreRelease
public boolean getPreRelease() -
getWaitForCompletion
public boolean getWaitForCompletion() -
getPollTimeoutMinutes
public int getPollTimeoutMinutes() -
setSubdomain
-
setApiTokenCredentialsId
Setter to allow Pipeline usage like: apiTokenCredentialsId: 'my-secret-text-id' -
setProjectName
-
setProjectVersion
-
setExternalizableId
@DataBoundSetter public void setExternalizableId(boolean externalizableId) -
setPreRelease
@DataBoundSetter public void setPreRelease(boolean preRelease) -
setWaitForCompletion
@DataBoundSetter public void setWaitForCompletion(boolean waitForCompletion) -
setPollTimeoutMinutes
@DataBoundSetter public void setPollTimeoutMinutes(int pollTimeoutMinutes) -
getFileFromWorkspace
protected FilePath getFileFromWorkspace(FilePath workspace, String relativeFilePath, TaskListener listener) throws IOException, InterruptedException Get file from workspace - common utility method (pipeline and freestyle)- Throws:
IOExceptionInterruptedException
-
getSecretTextValue
Get secret values from credentials - common utility method (pipeline and freestyle) -
parseVersion
Parse version based on externalizableId setting -
validateCommonFields
Validate common required fields -
logCommonInfo
Log common information -
addConsolidatedResult
protected void addConsolidatedResult(Run<?, ?> run, String analysisType, String projectName, String consoleOutput, String status, String url, String scanIds, String scanStatus) Add a successful/structured result (with scan metadata) to the consolidated results action. -
addConsolidatedResult
protected void addConsolidatedResult(Run<?, ?> run, String analysisType, String projectName, String consoleOutput, String status, String url) Add a minimal result (error/validation paths that have no scan metadata yet). -
configureRequest
Populate the type-specific portion of the scan request (kind + per-analysis fields) for the public v0 REST transport. The framework fills the common fields (subdomain, token, project, version, polling, etc.). -
getAnalysisType
Get the analysis type name for logging and results -
getFilePathFieldName
Get the file path field name for validation -
getFilePathValue
Get the file path value -
perform
public void perform(Run<?, ?> run, FilePath workspace, EnvVars env, Launcher launcher, TaskListener listener) throws InterruptedException, IOExceptionPreferred entry point including environment variables. Marks build as failed on error.- Specified by:
performin interfaceSimpleBuildStep- Throws:
InterruptedExceptionIOException
-