GitLab · Arazzo Workflow

GitLab Attach a Metric Image to an Alert

Version 1.0.0

Authorize an upload, attach a metric image to an alert, then list images.

1 workflow 1 source API 1 provider
View Spec View on GitHub CodePlatformSoftware DevelopmentSource ControlArazzoWorkflows

Provider

gitlab

Workflows

attach-alert-metric-image
Authorize, upload, and confirm a metric image on an alert.
Authorizes the upload via Workhorse, uploads the metric image to the alert, then lists the alert's metric images to verify it was attached.
3 steps inputs: alertIid, file, privateToken, projectId, url, urlText outputs: metricImageId
1
authorizeUpload
postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesAuthorize
Ask Workhorse to authorize the metric image file upload.
2
uploadImage
postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
Upload the metric image to the alert.
3
listImages
getApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
List the alert's metric images to confirm the attachment.

Source API Descriptions

Arazzo Workflow Specification

gitlab-attach-alert-metric-image-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: GitLab Attach a Metric Image to an Alert
  summary: Authorize an upload, attach a metric image to an alert, then list images.
  description: >-
    An incident-enrichment flow. The workflow first asks GitLab Workhorse to
    authorize a metric image upload for an alert, uploads the image file with an
    optional reference URL, and then lists the alert's metric images to confirm
    the attachment. Every step spells out its request inline so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: gitlabProjectsApi
  url: ../openapi/gitlab-api-v4-projects-openapi-original.yml
  type: openapi
workflows:
- workflowId: attach-alert-metric-image
  summary: Authorize, upload, and confirm a metric image on an alert.
  description: >-
    Authorizes the upload via Workhorse, uploads the metric image to the alert,
    then lists the alert's metric images to verify it was attached.
  inputs:
    type: object
    required:
    - privateToken
    - projectId
    - alertIid
    - file
    properties:
      privateToken:
        type: string
        description: GitLab Private-Token used to authenticate the API calls.
      projectId:
        type: string
        description: The ID or URL-encoded path of the project.
      alertIid:
        type: integer
        description: The IID of the alert.
      file:
        type: string
        description: The metric image file to upload.
      url:
        type: string
        description: Optional URL to view more metric info.
        default: ''
      urlText:
        type: string
        description: Optional description of the image or URL.
        default: ''
  steps:
  - stepId: authorizeUpload
    description: Ask Workhorse to authorize the metric image file upload.
    operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesAuthorize
    parameters:
    - name: Private-Token
      in: header
      value: $inputs.privateToken
    - name: id
      in: path
      value: $inputs.projectId
    - name: alert_iid
      in: path
      value: $inputs.alertIid
    successCriteria:
    - condition: $statusCode == 200
  - stepId: uploadImage
    description: Upload the metric image to the alert.
    operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
    parameters:
    - name: Private-Token
      in: header
      value: $inputs.privateToken
    - name: id
      in: path
      value: $inputs.projectId
    - name: alert_iid
      in: path
      value: $inputs.alertIid
    requestBody:
      contentType: multipart/form-data
      payload:
        file: $inputs.file
        url: $inputs.url
        url_text: $inputs.urlText
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      metricImageId: $response.body#/id
  - stepId: listImages
    description: List the alert's metric images to confirm the attachment.
    operationId: getApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
    parameters:
    - name: Private-Token
      in: header
      value: $inputs.privateToken
    - name: id
      in: path
      value: $inputs.projectId
    - name: alert_iid
      in: path
      value: $inputs.alertIid
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstImageId: $response.body#/0/id
  outputs:
    metricImageId: $steps.uploadImage.outputs.metricImageId