appsignal-regression-check
v1.0 activeAfter a fix PR merges, wait 3 days and check if the error recurred.
Start a new run
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
Wait 3-day grace period
wait-grace-periodwaitOutputswaited (boolean) -
2
Fetch current incident state
fetch-current-stateautomatedInputsincident_id ←process.inputs.incident_id merged_at ←process.inputs.merged_atOutputscurrent_last_seen (string) current_state (string) current_occurrences_count (number) days_since_merge (number) -
3
Evaluate regression verdict
evaluate-regressionautomatedInputsmerged_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_mergeOutputsverdict (enum) verdict_reason (string) -
4
Report regression outcome
report-outcomenotification if steps.evaluate-regression.outputs.verdict != 'deferred_grace'Inputsincident_number ←process.inputs.incident_number project ←process.inputs.project verdict ←steps.evaluate-regression.outputs.verdict verdict_reason ←steps.evaluate-regression.outputs.verdict_reasonOutputsnotified (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.