Cross-Provider Workflow

GitHub Release to Microsoft Teams Announcement

Version 1.0.0

Cut a GitHub release and announce it in a Microsoft Teams channel.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

github microsoft-teams

Workflows

release-to-teams-announce
Create a GitHub release and announce it in Microsoft Teams.
Creates a tagged GitHub release and posts a Microsoft Teams channel message announcing the new version with a link to the release page.
2 steps inputs: channelId, owner, releaseName, releaseNotes, repo, tagName, teamId outputs: messageId, releaseId, releaseUrl
1
create-release
$sourceDescriptions.githubRepos.createRelease
Create a tagged release in the GitHub repository.
2
announce-teams
$sourceDescriptions.microsoftTeams.sendChannelMessage
Announce the new release in a Microsoft Teams channel.

Source API Descriptions

Arazzo Workflow Specification

dev-github-release-to-teams-announce.yml Raw ↑
arazzo: 1.0.1
info:
  title: GitHub Release to Microsoft Teams Announcement
  summary: Cut a GitHub release and announce it in a Microsoft Teams channel.
  description: >-
    A release-management workflow that creates a new GitHub release for a
    repository and announces it in a Microsoft Teams channel so stakeholders are
    informed of the new version. Demonstrates chaining a source-control provider
    and a collaboration provider in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: githubRepos
    url: https://raw.githubusercontent.com/api-evangelist/github/refs/heads/main/openapi/github-repos-api-openapi.yml
    type: openapi
  - name: microsoftTeams
    url: https://raw.githubusercontent.com/api-evangelist/microsoft-teams/refs/heads/main/openapi/microsoft-teams-graph-api.yaml
    type: openapi
workflows:
  - workflowId: release-to-teams-announce
    summary: Create a GitHub release and announce it in Microsoft Teams.
    description: >-
      Creates a tagged GitHub release and posts a Microsoft Teams channel
      message announcing the new version with a link to the release page.
    inputs:
      type: object
      properties:
        owner:
          type: string
        repo:
          type: string
        tagName:
          type: string
        releaseName:
          type: string
        releaseNotes:
          type: string
        teamId:
          type: string
        channelId:
          type: string
    steps:
      - stepId: create-release
        description: Create a tagged release in the GitHub repository.
        operationId: $sourceDescriptions.githubRepos.createRelease
        requestBody:
          contentType: application/json
          payload:
            tag_name: $inputs.tagName
            name: $inputs.releaseName
            body: $inputs.releaseNotes
            draft: false
            prerelease: false
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          releaseId: $response.body#/id
          releaseUrl: $response.body#/html_url
      - stepId: announce-teams
        description: Announce the new release in a Microsoft Teams channel.
        operationId: $sourceDescriptions.microsoftTeams.sendChannelMessage
        requestBody:
          contentType: application/json
          payload:
            body:
              contentType: html
              content: $steps.create-release.outputs.releaseUrl
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          messageId: $response.body#/id
    outputs:
      releaseId: $steps.create-release.outputs.releaseId
      releaseUrl: $steps.create-release.outputs.releaseUrl
      messageId: $steps.announce-teams.outputs.messageId