teams-api-azure-devops-pipeline-integration

Sub-skill of teams-api: Azure DevOps Pipeline Integration (+1).

5 stars

Best use case

teams-api-azure-devops-pipeline-integration is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Sub-skill of teams-api: Azure DevOps Pipeline Integration (+1).

Teams using teams-api-azure-devops-pipeline-integration should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/azure-devops-pipeline-integration/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/_archive/business/communication/teams-api/azure-devops-pipeline-integration/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/azure-devops-pipeline-integration/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How teams-api-azure-devops-pipeline-integration Compares

Feature / Agentteams-api-azure-devops-pipeline-integrationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Sub-skill of teams-api: Azure DevOps Pipeline Integration (+1).

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Azure DevOps Pipeline Integration (+1)

## Azure DevOps Pipeline Integration


```yaml
# azure-pipelines.yml
trigger:
  - main

pool:
  vmImage: 'ubuntu-latest'

stages:
  - stage: Build
    jobs:
      - job: BuildJob
        steps:
          - script: echo "Building..."

          - task: PowerShell@2
            displayName: 'Notify Teams - Build Started'
            inputs:
              targetType: 'inline'
              script: |
                $webhook = "$(TEAMS_WEBHOOK_URL)"
                $body = @{
                  "@type" = "MessageCard"
                  "@context" = "http://schema.org/extensions"
                  "themeColor" = "FFCC00"
                  "summary" = "Build Started"
                  "sections" = @(
                    @{
                      "activityTitle" = "Build Started: $(Build.DefinitionName)"
                      "facts" = @(
                        @{ "name" = "Branch"; "value" = "$(Build.SourceBranchName)" }
                        @{ "name" = "Commit"; "value" = "$(Build.SourceVersion)" }
                        @{ "name" = "Build ID"; "value" = "$(Build.BuildId)" }
                      )
                    }
                  )
                } | ConvertTo-Json -Depth 10
                Invoke-RestMethod -Uri $webhook -Method Post -Body $body -ContentType 'application/json'

  - stage: Deploy
    dependsOn: Build
    jobs:
      - deployment: DeployJob
        environment: 'production'
        strategy:
          runOnce:
            deploy:
              steps:
                - script: echo "Deploying..."

                - task: PowerShell@2
                  displayName: 'Notify Teams - Deployment Complete'
                  inputs:
                    targetType: 'inline'
                    script: |
                      $webhook = "$(TEAMS_WEBHOOK_URL)"
                      $body = @{
                        "@type" = "MessageCard"
                        "themeColor" = "00FF00"
                        "summary" = "Deployment Complete"
                        "sections" = @(
                          @{
                            "activityTitle" = "Deployment Complete"
                            "facts" = @(
                              @{ "name" = "Environment"; "value" = "Production" }
                              @{ "name" = "Version"; "value" = "$(Build.BuildNumber)" }
                            )
                            "potentialAction" = @(
                              @{
                                "@type" = "OpenUri"
                                "name" = "View Release"
                                "targets" = @(@{ "os" = "default"; "uri" = "$(System.TeamFoundationCollectionUri)/$(System.TeamProject)/_release?releaseId=$(Release.ReleaseId)" })
                              }
                            )
                          }
                        )
                      } | ConvertTo-Json -Depth 10
                      Invoke-RestMethod -Uri $webhook -Method Post -Body $body -ContentType 'application/json'
```


## FastAPI Bot Endpoint


```python
# main.py
# ABOUTME: FastAPI endpoint for Teams bot
# ABOUTME: Handles bot messages and card actions

from fastapi import FastAPI, Request, Response
from botbuilder.core import TurnContext
from botbuilder.integration.aiohttp import CloudAdapter, ConfigurationBotFrameworkAuthentication
from botbuilder.schema import Activity
from bot import TeamsBot
import os

# Configuration
class DefaultConfig:
    PORT = 3978
    APP_ID = os.environ.get("MICROSOFT_APP_ID", "")
    APP_PASSWORD = os.environ.get("MICROSOFT_APP_PASSWORD", "")

CONFIG = DefaultConfig()

# Create adapter
SETTINGS = ConfigurationBotFrameworkAuthentication(CONFIG)
ADAPTER = CloudAdapter(SETTINGS)

# Create bot
CONVERSATION_REFERENCES = {}
BOT = TeamsBot(CONVERSATION_REFERENCES)

# Error handler
async def on_error(context: TurnContext, error: Exception):
    print(f"Bot error: {error}")
    await context.send_activity("Sorry, an error occurred.")

ADAPTER.on_turn_error = on_error

# FastAPI app
app = FastAPI()

@app.post("/api/messages")
async def messages(request: Request) -> Response:
    """Main bot messaging endpoint"""

    if "application/json" not in request.headers.get("Content-Type", ""):
        return Response(status_code=415)

    body = await request.json()
    activity = Activity().deserialize(body)

    auth_header = request.headers.get("Authorization", "")

    response = await ADAPTER.process_activity(auth_header, activity, BOT.on_turn)

    if response:
        return Response(
            content=response.body,
            status_code=response.status
        )
    return Response(status_code=201)

@app.get("/api/health")
async def health():
    return {"status": "healthy"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=CONFIG.PORT)
```

Related Skills

teams-meeting-pipeline

5
from vamseeachanta/workspace-hub

Operate the Teams meeting summary pipeline via Hermes CLI — summarize meetings, inspect pipeline status, replay jobs, manage Microsoft Graph subscriptions.

solidworks-to-blender-pipeline

5
from vamseeachanta/workspace-hub

Use when converting SolidWorks .sldprt/.sldasm geometry to Blender for rendering, animation, or visualization, including questions about STEP export settings, FreeCAD as a bridge, or which mesh format (STL/OBJ/GLTF) to choose.

library-evaluation-integration

5
from vamseeachanta/workspace-hub

Create evaluation scripts and integration tests for Python scientific libraries in the digitalmodel package. Follows the established pattern from fluids, ht, meshio, sectionproperties, and pygmt evaluations.

multi-role-agent-contract-review-pipeline

5
from vamseeachanta/workspace-hub

Execute a 4-role agent team (Planner/Architect/Reviewer/Integrator) pipeline for self-reviewing knowledge artifacts before delivery

clean-worktree-integration-from-dirty-main

5
from vamseeachanta/workspace-hub

Land validated issue work from isolated worktrees when the main checkout is dirty by creating a fresh integration worktree, cherry-picking only implementation commits, re-running combined validation, and preparing push/closeout artifacts.

gtm-prospect-pipeline-phased-execution

5
from vamseeachanta/workspace-hub

Phased execution pattern for

nextflow-pipelines

5
from vamseeachanta/workspace-hub

Run nf-core bioinformatics pipelines (rnaseq, sarek, atacseq) on sequencing data for gene expression, variant calling, and chromatin accessibility analyses.

hermes-ecosystem-integration

5
from vamseeachanta/workspace-hub

Wire Hermes into workspace-hub ecosystem — multi-repo skills, config sync, session export to learning pipeline, memory cross-pollination, skill patch tracking, and cross-machine health checks.

data-pipeline-processor

5
from vamseeachanta/workspace-hub

Process data files through transformation pipelines with validation, cleaning, and export. Use for CSV/Excel/JSON data processing, encoding handling, batch operations, and data transformation workflows.

api-integration

5
from vamseeachanta/workspace-hub

Integrate offshore engineering software APIs with mock testing for OrcaFlex, AQWA, and WAMIT

knowledge-pipeline

5
from vamseeachanta/workspace-hub

Workflow for maintaining workspace-hub knowledge and learning pipelines across scripts/knowledge, scripts/learning, and docs/superpowers, including indexing, archive synthesis, issue updates, and pipeline troubleshooting.

document-rag-pipeline

5
from vamseeachanta/workspace-hub

Build complete document knowledge bases with PDF text extraction, OCR for scanned documents, vector embeddings, and semantic search. Use this for creating searchable document libraries from folders of PDFs, technical standards, or any document collection.