Lab: route GitHub and Azure DevOps notifications to Teams

Outcome

Install the supported GitHub and Azure DevOps apps in a non-production Teams channel, route only the events the channel owns, prove one notification from each platform, mute a noisy subscription, and remove the training integrations. A notification is a collaboration signal, not evidence that a deployment succeeded or an incident was resolved.

Before you begin

Use a disposable Teams channel, GitHub repository, and Azure DevOps project. Confirm you can install Teams apps and manage the relevant repository/project subscriptions. Choose an owner, escalation route, and a small event set before enabling anything. Do not use legacy Office 365 connectors for a new design: Microsoft documents their retirement and recommends supported apps or Workflows where applicable.

Do: GitHub in Teams

  1. In Teams, install the GitHub app in the training workspace. In the training channel, run:

    @GitHub Notifications signin
    @GitHub Notifications subscribe <owner>/<training-repository> issues,pulls,workflows
    @GitHub Notifications subscribe list features
  2. Create a training issue, open a pull request, and run a harmless GitHub Actions workflow. Record the resulting Teams thread, event type, repository, timestamp, and channel owner.

  3. Decide which notifications the channel does not own. Remove one, for example workflow noise, without unsubscribing the whole repository:

    @GitHub Notifications unsubscribe <owner>/<training-repository> workflows
    @GitHub Notifications subscribe list features
  4. Rerun the training workflow. Confirm that its notification no longer appears while an issue or pull-request notification still does. Restore the feature only if the stated owner needs it.

Do: Azure DevOps in Teams

  1. In the same or a separate training Teams channel, install the Azure DevOps app. Select the training organization and project, then add a Dashboard or Kanban board tab. Record the linked organization, project, and channel.
  2. Use the Azure Boards app to add a narrow subscription for one event, such as a work item created in a specific area path. In the channel, use the app’s Add subscription flow or @azure boards subscriptions; document its event and filters.
  3. Create a training work item that matches the filter. Verify that Teams receives the expected card. Then create one outside the area path and verify that it does not notify the channel.
  4. If you need pipeline or repository events, install the supported Azure Pipelines or Azure Repos Teams app and subscribe only to the training build, approval, or pull-request event. Record the subscription owner and delivery boundary.

Verify

Capture each app’s installation/scope, its complete subscription list, one expected GitHub notification, one expected Azure DevOps notification, one deliberately absent notification, and the named channel owner. You should now understand: a GitHub subscription is repository/event scoped; an Azure DevOps subscription is project/event/filter scoped; a Teams channel should receive actionable signals, not every platform event.

Break and fix

  1. Subscribe the GitHub channel to all default repository events, then observe the excess volume during the training exercise. Remove unowned features individually and record the final list.
  2. Configure an Azure Boards subscription with the wrong area path. Create the intended work item, confirm that it does not notify, correct the filter, and retest. Do not add a global subscription merely to hide the configuration error.
  3. Remove the training channel’s app access or sign out the GitHub integration. Trigger an event, inspect the missing-delivery/authentication state, restore only the required app authorization, and retest.

Scenario practice

  1. Configure: A release channel needs deployment approval and failed-build notifications but not every commit. Which Azure DevOps app/subscriptions and owners do you choose?
  2. Diagnose: A GitHub pull request card arrives but workflow events do not. Which subscription feature, workflow event, channel scope, and app authorization do you inspect?
  3. Distinguish: Contrast a Teams app subscription, an Azure DevOps project notification, a service-hook connector, and a Workflows automation. Which one is appropriate for a new Teams notification design after connector retirement?

Clean up

Unsubscribe the GitHub repository and Azure Boards/Pipelines/Repos events, remove the Azure DevOps tab and apps from the training channel, sign out the GitHub app, then delete the disposable repository/project/channel if they serve no other lab. Confirm no production channel remains subscribed to training events.

Sources and re-audit

Re-audit when Teams app permissions, notification commands, Azure DevOps subscriptions, or connector-retirement guidance changes.

Webhooks · DevOps collaboration integration · GitHub · Azure Boards · Process path · All labs