GitLab · Arazzo Workflow

GitLab Rotate the Active Broadcast Message

Version 1.0.0

Retire the current broadcast message and publish a replacement.

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

Provider

gitlab

Workflows

rotate-broadcast-message
Delete the current broadcast message and create a replacement.
Lists broadcast messages, deletes the first returned message, then creates a new broadcast message.
3 steps inputs: broadcastType, messageId, newMessage, privateToken outputs: newMessageId, retiredId
1
listMessages
getApiV4BroadcastMessages
List broadcast messages for visibility before rotating.
2
deleteMessage
deleteApiV4BroadcastMessagesId
Delete the broadcast message being retired.
3
createMessage
postApiV4BroadcastMessages
Create the replacement broadcast message.

Source API Descriptions

Arazzo Workflow Specification

gitlab-rotate-broadcast-message-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: GitLab Rotate the Active Broadcast Message
  summary: Retire the current broadcast message and publish a replacement.
  description: >-
    A broadcast rollover flow. The workflow lists existing broadcast messages,
    deletes the most recent one to retire it, and then creates a fresh broadcast
    message in its place so only the current announcement remains. 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: gitlabAdminApi
  url: ../openapi/gitlab-openapi-original.yml
  type: openapi
workflows:
- workflowId: rotate-broadcast-message
  summary: Delete the current broadcast message and create a replacement.
  description: >-
    Lists broadcast messages, deletes the first returned message, then creates a
    new broadcast message.
  inputs:
    type: object
    required:
    - privateToken
    - messageId
    - newMessage
    properties:
      privateToken:
        type: string
        description: GitLab Private-Token used to authenticate the API calls.
      messageId:
        type: integer
        description: The broadcast message ID to retire.
      newMessage:
        type: string
        description: The replacement message text.
      broadcastType:
        type: string
        description: Broadcast type, banner or notification.
        default: banner
  steps:
  - stepId: listMessages
    description: List broadcast messages for visibility before rotating.
    operationId: getApiV4BroadcastMessages
    parameters:
    - name: Private-Token
      in: header
      value: $inputs.privateToken
    - name: per_page
      in: query
      value: 20
    successCriteria:
    - condition: $statusCode == 200
  - stepId: deleteMessage
    description: Delete the broadcast message being retired.
    operationId: deleteApiV4BroadcastMessagesId
    parameters:
    - name: Private-Token
      in: header
      value: $inputs.privateToken
    - name: id
      in: path
      value: $inputs.messageId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      retiredId: $response.body#/id
  - stepId: createMessage
    description: Create the replacement broadcast message.
    operationId: postApiV4BroadcastMessages
    parameters:
    - name: Private-Token
      in: header
      value: $inputs.privateToken
    requestBody:
      contentType: application/json
      payload:
        message: $inputs.newMessage
        broadcast_type: $inputs.broadcastType
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      newId: $response.body#/id
      newMessage: $response.body#/message
  outputs:
    retiredId: $steps.deleteMessage.outputs.retiredId
    newMessageId: $steps.createMessage.outputs.newId