Manage FireHydrant incidents
Send this guide to your coding agent.
Prerequisite: Install Port MCP
Open plan mode if your tool supports it; otherwise present the plan below filled in and wait for my approval. Implement this Port guide in my org via MCP: https://docs.port.io/guides/all/manage-firehydrant-incidents Read the raw markdown version at https://docs.port.io/guides/all/manage-firehydrant-incidents.md - it contains every tab and code block without page markup. Goal: get the guide's core flow working end-to-end in my org; adapting it to fit my existing setup takes priority over matching the guide 1:1. Plan: 1. Confirm MCP is connected, in the right org, with sufficient permissions. 2. If the guide offers alternative implementation paths (tabs), pick the one matching my installed integrations and tools, confirm it with me, and implement only that path. 3. Diff the guide's data model (blueprints, properties, relations, workflows, actions, agents, automations, integrations, webhook data sources, secrets) against mine. 4. Propose adaptations for gaps, reusing existing blueprints/relations over guide-named duplicates. 5. Flag what needs a UI click, credential, or secret from me, testing MCP capability empirically before ruling anything out. If the guide has a "Set up via API" section, use it for anything MCP can't do before treating a step as UI-only. 6. Stop on any blocker and give me options. Approving this plan authorizes the writes it lists; pause only for writes beyond what's listed. Build: - Extend blueprint schema additively when upserting; don't remove or overwrite existing properties, and treat type conflicts as a blocker, not an auto-fix. - Never print secret values into the chat or logs; ask me to set them in Port, or write them via the secrets API without echoing them back. - List any mock data in the plan, minimal and labeled mock; once approved, seed it without re-asking, and tell me what you seeded. - For anything the guide writes downstream (e.g. a webhook target), use a real entity, not a mock. - For pages/widgets, use the real page identifier from the app URL, not a guessed slug. - When you hit a UI step confirmed (not assumed) unsupported via MCP and not covered by the guide's API sections, pause, give exact clicks, then resume via MCP. - Validate and give links after each meaningful step (only a tool-returned URL, no guessed paths); don't proceed if the last run wasn't a success. Done: - Run the guide's "Let's test it" steps where possible (e.g. execute a workflow test run) and confirm the expected output exists in Port. - Summarize adaptations, seeded data, what was mocked or skipped, remaining UI steps, and how to verify.
This guide demonstrates how to implement self-service actions that create new FireHydrant incidents or trigger incidents on services directly from Port using synced webhooks or GitHub workflows.
Use cases
- Create FireHydrant incidents from Port with name, priority, and description.
- Trigger incidents against FireHydrant services with a chosen condition (Unavailable, Degraded, Bug, Operational).
- Keep your Port catalog in sync by automatically upserting the created incident or updating related service data after execution.
Prerequisites
-
Complete the onboarding process.
-
Access to your FireHydrant organization with permissions to manage incidents.
-
Optional – Install Port's FireHydrant integration.
-
For GitHub workflow implementation, install Port's GitHub integration:
The GitHub Ocean integration needs to be installed.
Set up data model
If you haven't installed the FireHydrant integration, you will need to manually create blueprints for FireHydrant incidents and services. We highly recommend installing the integration to have these resources automatically set up for you.
Create the FireHydrant incident blueprint
-
Go to your Builder page.
-
Click on
+ Blueprint. -
Click on the
{...}button in the top right corner, and choose "Edit JSON". -
Add this JSON schema:
FireHydrant Incident Blueprint (Click to expand)
{"identifier": "firehydrantIncident","description": "This blueprint represents a firehydrant incident","title": "FireHydrant Incident","icon": "FireHydrant","schema": {"properties": {"url": {"type": "string","title": "Incident URL","format": "url","description": "the link to the incident"},"priority": {"title": "Priority","type": "string","enum": ["P1", "P2", "P3", "P4"],"enumColors": {"P1": "red","P2": "red","P3": "orange","P4": "orange"}},"severity": {"title": "Severity","type": "string"},"tags": {"title": "Tags","items": { "type": "string" },"type": "array"},"currentMilestone": {"type": "string","title": "Current Milestone","default": "started","enum": ["started","detected","acknowledged","investigating","identified","mitigated","resolved","postmortem_started","postmortem_completed","closed"],"enumColors": {"started": "red","detected": "red","acknowledged": "orange","investigating": "yellow","identified": "yellow","mitigated": "green","resolved": "green","postmortem_started": "purple","postmortem_completed": "blue","closed": "green"}},"functionalities": {"title": "Functionalities Impacted","items": { "type": "string" },"type": "array"},"customerImpact": {"title": "Customers Impacted","type": "string"},"createdBy": {"title": "Created By","type": "string"},"createdAt": {"title": "Created At","type": "string","format": "date-time"},"description": {"title": "Description","type": "string"}},"required": []},"mirrorProperties": {},"calculationProperties": {},"aggregationProperties": {},"relations": {}} -
Click "Save" to create the blueprint.
Create the FireHydrant service blueprint
-
Go to your Builder page.
-
Click on
+ Blueprint. -
Click on the
{...}button in the top right corner, and choose "Edit JSON". -
Add this JSON schema:
FireHydrant Service Blueprint (Click to expand)
{"identifier": "firehydrantService","description": "This blueprint represents a FireHydrant service in our context lake","title": "FireHydrant Service","icon": "FireHydrant","schema": {"properties": {"name": {"title": "Name","description": "The name of the service in FireHydrant","type": "string"},"description": {"title": "Description","description": "Description of the service","type": "string"},"status": {"title": "Status","description": "Current status of the service","type": "string"}}},"calculationProperties": {},"relations": {}} -
Click "Save" to create the blueprint.
Update the service blueprint
Add a relation to your service blueprint to link it with FireHydrant services:
-
Go to your Builder page.
-
Find your service blueprint and click on it.
-
Click on the
{...}button in the top right corner, and choose "Edit JSON". -
Add the following relation to the
relationsobject:{"relations": {"fh_service": {"title": "FireHydrant Service","target": "firehydrantService","required": false,"many": false}}} -
Click "Save" to update the blueprint.
Get FireHydrant Condition IDs
If you plan to trigger incidents on services, you will need the condition IDs that are specific to your FireHydrant organization. Retrieve them with the FireHydrant API:
curl -X GET "https://api.firehydrant.io/v1/severity_matrix/conditions" \
-H "Authorization: YOUR_FIREHYDRANT_API_KEY" \
-H "accept: application/json"
Example response:
{
"data": [
{ "id": "b1fc9184-b3f3-4af1-a111-68abcad9bf34", "name": "Unavailable", "position": 0 },
{ "id": "465a5b4c-6f95-4707-a777-ab4bb8def27d", "name": "Degraded", "position": 1 },
{ "id": "c2bc11e8-7fcc-428d-9007-26f00700834a", "name": "Bug", "position": 2 },
{ "id": "9a2a8dbb-6b4e-4189-aca1-e2bb73b9c50b", "name": "Operational", "position": 3 }
]
}
Use your own IDs in the configurations below.
Implementation
- Synced webhook
- GitHub workflow
Configure two self-service actions using Port's synced webhooks and secrets to interact directly with FireHydrant's API.
Add Port secrets
If you have already installed Port's FireHydrant integration, these secrets should already exist in Port. To view your existing secrets:
- Open the Credentials modal.
- Click on the
Secretstab.
To add these secrets to Port:
-
Open the Credentials modal.
-
Click on the
Secretstab. -
Click on
+ Secretand add the following secrets:FIREHYDRANT_API_KEY: Your FireHydrant API key.
Set up self-service actions
Create a FireHydrant incident
-
Head to the self-service page.
-
Click on the
+ New Actionbutton. -
Click on the
{...} Edit JSONbutton. -
Copy and paste the following JSON configuration into the editor.
Create FireHydrant Incident (Webhook) (Click to expand)
{"identifier": "create_firehydrant_incident_webhook","title": "Create FireHydrant Incident (Webhook)","icon": "FireHydrant","description": "Create a new FireHydrant incident","trigger": {"type": "self-service","operation": "CREATE","userInputs": {"properties": {"name": {"type": "string","title": "Name","description": "The name or title of the incident"},"priority": {"icon": "DefaultProperty","title": "Priority","type": "string","enum": ["P1", "P2", "P3", "P4"],"enumColors": {"P1": "red","P2": "orange","P3": "blue","P4": "darkGray"}},"description": {"type": "string","title": "Description","description": "Detailed description about the incident"}},"required": [],"order": ["name", "description", "priority"]}},"invocationMethod": {"type": "WEBHOOK","url": "https://api.firehydrant.io/v1/incidents","agent": false,"synchronized": true,"method": "POST","headers": {"Authorization": "{{.secrets.FIREHYDRANT_API_KEY}}","Content-Type": "application/json"},"body": {"name": "{{.inputs.name}}","priority": "{{.inputs.priority}}","description": "{{.inputs.description}}"}},"requiredApproval": false} -
Click
Save.
Trigger a FireHydrant incident
-
Head to the self-service page.
-
Click on the
+ New Actionbutton. -
Click on the
{...} Edit JSONbutton. -
Copy and paste the following JSON configuration into the editor.
Trigger FireHydrant Incident (Webhook) (Click to expand)
{"identifier": "trigger_an_incident","title": "Trigger an incident","icon": "FireHydrant","description": "Trigger an incident to a FireHydrant service","trigger": {"type": "self-service","operation": "DAY-2","userInputs": {"properties": {"name": {"icon": "DefaultProperty","type": "string","title": "Incident name"},"condition": {"icon": "DefaultProperty","title": "Service status","type": "string","enum": ["Unavailable", "Degraded", "Bug", "Operational"],"enumColors": {"Unavailable": "lightGray","Degraded": "lightGray","Bug": "lightGray","Operational": "lightGray"}},"incident_description": {"type": "string","title": "Incident description"}},"required": ["name", "condition"],"order": ["name", "condition", "incident_description"]},"blueprintIdentifier": "service"},"invocationMethod": {"type": "WEBHOOK","url": "https://api.firehydrant.io/v1/incidents","agent": false,"synchronized": true,"method": "POST","headers": {"RUN_ID": "{{ .run.id }}","Authorization": "{{ .secrets.FIREHYDRANT_API_KEY }}","content-type": "application/json","accept": "application/json"},"body": {"impacts": [{"type": "service","id": "{{ .entity.relations.fh_service }}","condition_id": "{{ if .inputs.condition == \"Unavailable\" then \"b1fc9184-b3f3-4af1-a111-68abcad9bf34\" elif .inputs.condition == \"Degraded\" then \"465a5b4c-6f95-4707-a777-ab4bb8def27d\" elif .inputs.condition == \"Bug\" then \"c2bc11e8-7fcc-428d-9007-26f00700834a\" elif .inputs.condition == \"Operational\" then \"9a2a8dbb-6b4e-4189-aca1-e2bb73b9c50b\" else null end }}"}],"name": "{{ .inputs.name }}","description": "{{ .inputs.incident_description }}"}},"requiredApproval": false} -
Click
Save.
Set up automations
Sync FireHydrant incident after creation
-
Head to the Automations page.
-
Click on the
+ New Automationbutton. -
Click on the
{...} Edit JSONbutton. -
Copy and paste the following JSON configuration into the editor.
Sync FireHydrant incident after creation (Click to expand)
{"identifier": "firehydrant_incident_sync_status","title": "Sync FireHydrant Incident Status","description": "Update FireHydrant incident data in Port after creation","trigger": {"type": "automation","event": { "type": "RUN_UPDATED", "actionIdentifier": "create_firehydrant_incident_webhook" },"condition": {"type": "JQ","expressions": [".diff.after.status == \"SUCCESS\""],"combinator": "and"}},"invocationMethod": {"type": "UPSERT_ENTITY","blueprintIdentifier": "firehydrantIncident","mapping": {"identifier": "{{.event.diff.after.response.id}}","title": "{{.event.diff.after.response.name}}","properties": {"url": "{{.event.diff.after.response.incident_url}}","priority": "{{.event.diff.after.response.priority}}","severity": "{{.event.diff.after.response.severity}}","tags": "{{.event.diff.after.response.tag_list}}","currentMilestone": "{{.event.diff.after.response.current_milestone}}","description": "{{.event.diff.after.response.description}}","customerImpact": "{{.event.diff.after.response.customers_impacted}}","createdBy": "{{.event.diff.after.response.created_by.name}}","createdAt": "{{.event.diff.after.response.created_at}}"},"relations": {}}},"publish": true} -
Click
Save.
Sync FireHydrant service after trigger
-
Head to the Automations page.
-
Click on the
+ New Automationbutton. -
Click on the
{...} Edit JSONbutton. -
Copy and paste the following JSON configuration into the editor.
Sync FireHydrant service after trigger (Click to expand)
{"identifier": "firehydrantIncident_sync_after_trigger","title": "Sync FireHydrant Incident After Trigger","description": "Update FireHydrant service data in Port after triggering an incident","trigger": {"type": "automation","event": { "type": "RUN_UPDATED", "actionIdentifier": "trigger_an_incident" },"condition": {"type": "JQ","expressions": [".diff.after.status == \"SUCCESS\""],"combinator": "and"}},"invocationMethod": {"type": "UPSERT_ENTITY","blueprintIdentifier": "firehydrantService","mapping": {"identifier": "{{.event.diff.after.response.id}}","title": "{{.event.diff.after.response.name}}","properties": {"name": "{{.event.diff.after.response.name}}","description": "{{.event.diff.after.response.description}}","status": "{{.event.diff.after.response.status}}"}}},"publish": true} -
Click
Save.
To implement this use-case using GitHub, configure two workflows and corresponding self-service actions.
Add GitHub secrets
In your GitHub repository, go to Settings → Secrets and add:
FIREHYDRANT_API_KEY– Your FireHydrant API key. See FireHydrant docs for generating an API key.PORT_CLIENT_ID– Your Port client id.PORT_CLIENT_SECRET– Your Port client secret.
Add GitHub workflows
We recommend creating a dedicated repository for the workflows that are used by Port actions.
Create FireHydrant Incident Workflow (Click to expand)
Create the file .github/workflows/create-firehydrant-incident.yaml:
name: Create FireHydrant Incident
on:
workflow_dispatch:
inputs:
name:
description: The name or title of the incident
required: true
type: string
priority:
description: New priority level for the incident (e.g., P1)
required: true
type: string
description:
description: The detailed description of the incident
required: false
type: string
port_context:
required: true
description: includes blueprint, run ID, and entity identifier from Port.
jobs:
trigger-incident:
runs-on: ubuntu-latest
steps:
- name: Inform execution of request to trigger incident
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: PATCH_RUN
runId: ${{ fromJson(inputs.port_context).run_id }}
logMessage: "About to trigger an incident in FireHydrant..."
- name: Trigger Incident in FireHydrant
id: trigger_incident
uses: fjogeleit/http-request-action@v1
with:
url: 'https://api.firehydrant.io/v1/incidents'
method: 'POST'
customHeaders: '{"Content-Type": "application/json", "Authorization": "${{ secrets.FIREHYDRANT_API_KEY }}"}'
data: >-
{
"name": "${{ github.event.inputs.name }}",
"description": "${{ github.event.inputs.description }}",
"priority": "${{ github.event.inputs.priority }}"
}
- name: Inform Port of FireHydrant failure request
if: failure()
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: PATCH_RUN
runId: ${{ fromJson(inputs.port_context).run_id }}
logMessage: "Request to trigger FireHydrant incident failed ..."
- name: Inform Port of successful FireHydrant incident creation
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: PATCH_RUN
runId: ${{ fromJson(inputs.port_context).run_id }}
logMessage: "Incident successfully created in FireHydrant. Upserting the response entity in Port..."
- name: Upsert FireHydrant entity to Port
id: upsert_entity
uses: port-labs/port-github-action@v1
with:
identifier: "${{ fromJson(steps.trigger_incident.outputs.response).id }}"
title: "${{ fromJson(steps.trigger_incident.outputs.response).name }}"
blueprint: "firehydrantIncident"
properties: |-
{
"url": "${{ fromJson(steps.trigger_incident.outputs.response).incident_url }}",
"priority": "${{ fromJson(steps.trigger_incident.outputs.response).priority }}",
"severity": "${{ fromJson(steps.trigger_incident.outputs.response).severity }}",
"tags": "${{ fromJson(steps.trigger_incident.outputs.response).tag_list}}",
"currentMilestone": "${{ fromJson(steps.trigger_incident.outputs.response).current_milestone }}",
"description": "${{ fromJson(steps.trigger_incident.outputs.response).description}}",
"customerImpact": "${{ fromJson(steps.trigger_incident.outputs.response).customers_impacted }}",
"createdBy": "${{ fromJson(steps.trigger_incident.outputs.response).created_by.name }}",
"createdAt": "${{ fromJson(steps.trigger_incident.outputs.response).created_at }}"
}
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: UPSERT
runId: ${{ fromJson(inputs.port_context).run_id }}
- name: Inform Entity upsert failure
if: steps.upsert_entity.outcome == 'failure'
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: PATCH_RUN
runId: ${{ fromJson(inputs.port_context).run_id }}
logMessage: "Failed to report the created incident back to Port ..."
- name: Inform completion of FireHydrant incident creation
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: PATCH_RUN
runId: ${{ fromJson(inputs.port_context).run_id }}
logMessage: "Incident creation process was successful ✅"
Self-service action: Create FireHydrant Incident (Click to expand)
<GITHUB_ORG>- your GitHub organization or user name.<GITHUB_REPO>- your GitHub repository name.<YOUR_GITHUB_OCEAN_INTEGRATION_ID>- your GitHub Ocean integration installation ID.
{
"identifier": "create_firehydrant_incident",
"title": "Create FireHydrant Incident",
"icon": "FireHydrant",
"description": "Create a new FireHydrant incident",
"trigger": {
"type": "self-service",
"operation": "CREATE",
"userInputs": {
"properties": {
"name": { "type": "string", "title": "Name", "description": "The name or title of the incident" },
"description": { "type": "string", "title": "Description", "description": "Detailed description of the incident" },
"priority": {
"type": "string",
"title": "Priority",
"enum": ["P1", "P2", "P3", "P4"],
"enumColors": { "P1": "red", "P2": "orange", "P3": "blue", "P4": "lightGray" }
}
},
"required": [],
"order": ["name", "description"]
}
},
"invocationMethod": {
"type": "INTEGRATION_ACTION",
"installationId": "<YOUR_GITHUB_OCEAN_INTEGRATION_ID>",
"integrationActionType": "dispatch_workflow",
"integrationActionExecutionProperties": {
"org": "<GITHUB_ORG>",
"repo": "<GITHUB_REPO>",
"workflow": "create-firehydrant-incident.yaml",
"workflowInputs": {
"{{ spreadValue() }}": "{{ .inputs }}",
"port_context": { "run_id": "{{ .run.id }}" }
},
"reportWorkflowStatus": true
}
},
"requiredApproval": false
}
Trigger FireHydrant Incident Workflow (Click to expand)
Create the file .github/workflows/trigger-firehydrant-incident.yml:
name: Trigger FireHydrant Incident
on:
workflow_dispatch:
inputs:
name:
description: The name of the incident
required: true
type: string
condition:
description: The service status
required: true
type: string
default: "Unavailable"
enum: [Unavailable, Degraded, Bug, Operational]
incident_description:
description: Description of the incident
required: false
type: string
port_context:
required: true
description: includes blueprint, run ID, and entity identifier from Port.
jobs:
trigger:
runs-on: ubuntu-latest
steps:
- name: Inform start of FireHydrant incident creation
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: PATCH_RUN
runId: ${{ fromJson(inputs.port_context).run_id }}
logMessage: Starting request to create FireHydrant incident
- name: Get condition ID
id: condition_id
run: |
case "${{ inputs.condition }}" in
"Unavailable")
echo "condition_id=b1fc9184-b3f3-4af1-a111-68abcad9bf34" >> $GITHUB_OUTPUT
;;
"Degraded")
echo "condition_id=465a5b4c-6f95-4707-a777-ab4bb8def27d" >> $GITHUB_OUTPUT
;;
"Bug")
echo "condition_id=c2bc11e8-7fcc-428d-9007-26f00700834a" >> $GITHUB_OUTPUT
;;
"Operational")
echo "condition_id=9a2a8dbb-6b4e-4189-aca1-e2bb73b9c50b" >> $GITHUB_OUTPUT
;;
esac
- name: Trigger FireHydrant Incident
id: trigger
uses: fjogeleit/http-request-action@v1
with:
url: 'https://api.firehydrant.io/v1/incidents'
method: 'POST'
customHeaders: '{"Content-Type": "application/json", "Authorization": "${{ secrets.FIREHYDRANT_API_KEY }}"}'
data: >-
{
"impacts": [
{
"type": "service",
"id": "${{ fromJson(inputs.port_context).entity.relations.fh_service }}",
"condition_id": "${{ steps.condition_id.outputs.condition_id }}"
}
],
"name": "${{ inputs.name }}",
"description": "${{ inputs.incident_description }}"
}
- name: Inform completion of FireHydrant incident creation
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: PATCH_RUN
runId: ${{ fromJson(inputs.port_context).run_id }}
logMessage: Finished request to create FireHydrant incident
- name: Update FireHydrant service in Port
uses: port-labs/port-github-action@v1
with:
clientId: ${{ secrets.PORT_CLIENT_ID }}
clientSecret: ${{ secrets.PORT_CLIENT_SECRET }}
baseUrl: https://api.port.io
operation: UPSERT
runId: ${{ fromJson(inputs.port_context).run_id }}
identifier: ${{ fromJson(steps.trigger.outputs.response).id }}
title: ${{ fromJson(steps.trigger.outputs.response).name }}
blueprint: firehydrantService
properties: |-
{
"name": "${{ fromJson(steps.trigger.outputs.response).name }}",
"description": "${{ fromJson(steps.trigger.outputs.response).description }}",
"status": "${{ fromJson(steps.trigger.outputs.response).status }}"
}
Self-service action: Trigger FireHydrant Incident (Click to expand)
<GITHUB_ORG>- your GitHub organization or user name.<GITHUB_REPO>- your GitHub repository name.<YOUR_GITHUB_OCEAN_INTEGRATION_ID>- your GitHub Ocean integration installation ID.
{
"identifier": "trigger_firehydrant_incident",
"title": "Trigger FireHydrant Incident",
"icon": "FireHydrant",
"description": "Trigger a new FireHydrant incident",
"trigger": {
"type": "self-service",
"operation": "DAY-2",
"userInputs": {
"properties": {
"name": { "icon": "DefaultProperty", "type": "string", "title": "Incident name" },
"condition": {
"icon": "DefaultProperty",
"title": "Service status",
"type": "string",
"enum": ["Unavailable", "Degraded", "Bug", "Operational"],
"enumColors": { "Unavailable": "lightGray", "Degraded": "lightGray", "Bug": "lightGray", "Operational": "lightGray" }
},
"incident_description": { "type": "string", "title": "Incident description" }
},
"required": ["name", "condition"],
"order": ["name", "condition", "incident_description"]
},
"blueprintIdentifier": "service"
},
"invocationMethod": {
"type": "INTEGRATION_ACTION",
"installationId": "<YOUR_GITHUB_OCEAN_INTEGRATION_ID>",
"integrationActionType": "dispatch_workflow",
"integrationActionExecutionProperties": {
"org": "<GITHUB_ORG>",
"repo": "<GITHUB_REPO>",
"workflow": "trigger-firehydrant-incident.yml",
"workflowInputs": {
"name": "{{.inputs.\"name\"}}",
"condition": "{{.inputs.\"condition\"}}",
"incident_description": "{{.inputs.\"incident_description\"}}",
"port_context": {
"blueprint": "{{.action.blueprint}}",
"entity": "{{.entity.identifier}}",
"run_id": "{{.run.id}}",
"relations": "{{.entity.relations}}"
}
},
"reportWorkflowStatus": true
}
},
"requiredApproval": false
}
Let's test it!
- Head to the self-service page in Port.
- Choose either implementation method and action:
- GitHub workflow:
Create FireHydrant IncidentorTrigger FireHydrant Incident. - Synced webhook:
Create FireHydrant Incident (Webhook)orTrigger an incident.
- GitHub workflow:
- For the trigger flow, select a service that has a
fh_servicerelation to a FireHydrant service. - Fill in the incident details as prompted.
- Click
Executeand wait for FireHydrant to create or trigger the incident.