Class BuildInvestigationEvidence

java.lang.Object
io.jenkins.plugins.changeinvestigator.evidence.BuildInvestigationEvidence
All Implemented Interfaces:
Serializable

public final class BuildInvestigationEvidence extends Object implements Serializable
The complete, deterministic evidence bundle collected from Jenkins for one investigation.

Every field here is either a directly observed Jenkins fact, or an explicit "not available" marker recorded in getWarnings(). Nothing in this class is inferred or guessed - that is the job of the (optional) AI assessment layer, which is kept in a separate object so observed evidence and AI interpretation are never conflated.

See Also:
  • Method Details

    • forChangeWindow

      public BuildInvestigationEvidence forChangeWindow(List<ChangeEntry> entries, int end)
      Projects saved changes without changing the original evidence or reading SCM.
    • getChangeWindowEnd

      public int getChangeWindowEnd()
    • getAiScope

      public String getAiScope()
    • getJobFullName

      public String getJobFullName()
    • getJobUrl

      public String getJobUrl()
    • getFailedBuildNumber

      public int getFailedBuildNumber()
    • getFailedBuildResult

      public String getFailedBuildResult()
    • getFailedBuildUrl

      public String getFailedBuildUrl()
    • getFailedBuildStartTimeMillis

      public long getFailedBuildStartTimeMillis()
    • getFailedBuildDurationMillis

      public long getFailedBuildDurationMillis()
    • getFailedBuildDurationString

      public String getFailedBuildDurationString()
    • isPreviousSuccessfulBuildFound

      public boolean isPreviousSuccessfulBuildFound()
    • getPreviousSuccessfulBuildNumber

      public int getPreviousSuccessfulBuildNumber()
    • getPreviousSuccessfulBuildUrl

      public String getPreviousSuccessfulBuildUrl()
    • isNodeInfoAvailable

      public boolean isNodeInfoAvailable()
    • getNodeName

      public String getNodeName()
    • isChangeDataAvailable

      public boolean isChangeDataAvailable()
    • getChangeEntries

      public List<ChangeEntry> getChangeEntries()
    • hasLastKnownRevision

      public boolean hasLastKnownRevision()
    • getLastKnownRevision

      public String getLastKnownRevision()
    • isLogAvailable

      public boolean isLogAvailable()
    • getLogExcerpt

      public List<String> getLogExcerpt()
    • getLogExcerptText

      public String getLogExcerptText()
      The log excerpt as a single newline-joined string, for display. Views should prefer this over iterating getLogExcerpt() line-by-line in a template: a Jelly <j:forEach> that tries to emit a literal newline between iterations is at the mercy of the Jelly/XML parser's whitespace handling and can silently collapse those newlines, running every line together in the rendered page.
    • isLogExcerptTruncated

      public boolean isLogExcerptTruncated()
    • getLogLinesScanned

      public int getLogLinesScanned()
    • getWarnings

      public List<String> getWarnings()
    • getCollectedAtMillis

      public long getCollectedAtMillis()
    • builder

      public static BuildInvestigationEvidence.Builder builder()