Public demo. Data resets daily at 3:00 UTC. Don't store anything sensitive.

appsignal-regression-check

v1.0 active

After a fix PR merges, wait 3 days and check if the error recurred.

View instances
Owner
opensop-worker
SLA
Trigger
api
Tags
appsignalregression-check

Inputs

incident_id
string · required
incident_number
number · required
app_id
string · required
repo
string · required
project
string · required
pr_number
number · required
merged_at
string · required

ISO 8601 timestamp when the fix PR merged

Outputs

verdict
string
verdict_reason
string

Steps

  1. 1

    Wait 3-day grace period

    wait-grace-period wait
    Outputs
    waited (boolean)
  2. 2

    Fetch current incident state

    fetch-current-state automated
    Inputs
    incident_id process.inputs.incident_id merged_at process.inputs.merged_at
    Outputs
    current_last_seen (string) current_state (string) current_occurrences_count (number) days_since_merge (number)
  3. 3

    Evaluate regression verdict

    evaluate-regression automated
    Inputs
    merged_at process.inputs.merged_at current_last_seen steps.fetch-current-state.outputs.current_last_seen days_since_merge steps.fetch-current-state.outputs.days_since_merge
    Outputs
    verdict (enum) verdict_reason (string)
  4. 4

    Report regression outcome

    report-outcome notification if steps.evaluate-regression.outputs.verdict != 'deferred_grace'
    Inputs
    incident_number process.inputs.incident_number project process.inputs.project verdict steps.evaluate-regression.outputs.verdict verdict_reason steps.evaluate-regression.outputs.verdict_reason
    Outputs
    notified (boolean)
Raw definition
---
opensop: '0.1'
process:
  name: appsignal-regression-check
  tags:
  - appsignal
  - regression-check
  owner: opensop-worker
  steps:
  - id: wait-grace-period
    name: Wait 3-day grace period
    type: wait
    wait:
      seconds: 259200
    outputs:
    - name: waited
      type: boolean
  - id: fetch-current-state
    name: Fetch current incident state
    type: automated
    inputs:
    - from: process.inputs.incident_id
      name: incident_id
    - from: process.inputs.merged_at
      name: merged_at
    outputs:
    - name: current_last_seen
      type: string
    - name: current_state
      type: string
    - name: current_occurrences_count
      type: number
    - name: days_since_merge
      type: number
    validation: lenient
  - id: evaluate-regression
    name: Evaluate regression verdict
    type: automated
    inputs:
    - from: process.inputs.merged_at
      name: merged_at
    - from: steps.fetch-current-state.outputs.current_last_seen
      name: current_last_seen
    - from: steps.fetch-current-state.outputs.days_since_merge
      name: days_since_merge
    outputs:
    - name: verdict
      type: enum
      values:
      - fix_verified
      - regression_detected
      - deferred_grace
    - name: verdict_reason
      type: string
    validation: lenient
  - id: report-outcome
    name: Report regression outcome
    type: notification
    inputs:
    - from: process.inputs.incident_number
      name: incident_number
    - from: process.inputs.project
      name: project
    - from: steps.evaluate-regression.outputs.verdict
      name: verdict
    - from: steps.evaluate-regression.outputs.verdict_reason
      name: verdict_reason
    outputs:
    - name: notified
      type: boolean
    condition: steps.evaluate-regression.outputs.verdict != 'deferred_grace'
  inputs:
  - name: incident_id
    type: string
    required: true
  - name: incident_number
    type: number
    required: true
  - name: app_id
    type: string
    required: true
  - name: repo
    type: string
    required: true
  - name: project
    type: string
    required: true
  - name: pr_number
    type: number
    required: true
  - name: merged_at
    type: string
    required: true
    description: ISO 8601 timestamp when the fix PR merged
  outputs:
  - from: steps.evaluate-regression.outputs.verdict
    name: verdict
    type: string
  - from: steps.evaluate-regression.outputs.verdict_reason
    name: verdict_reason
    type: string
  trigger:
    type: api
  version: '1.0'
  description: After a fix PR merges, wait 3 days and check if the error recurred.