Skip to content

Setup — how everything connects

This section is the build guide: stand up the whole pipeline end-to-end using only Azure DevOps, your existing n8n, and Azure OpenAI.

  •   Prerequisites


    Accounts, identities and access to line up first.

    Prerequisites

  •   n8n workflow


    The full importable workflow: push → draft → PR.

    n8n workflow

  •   Azure Pipelines


    CI validation, publish, and docs-site build YAML.

    Pipelines

  •   End to end


    Follow a single change from commit to published page.

    Walkthrough

The whole picture

flowchart TB
  subgraph ADO[Azure DevOps]
    REPO[Ansible repo]
    WIKI[(Code wiki repo)]
    PIPE[Pipelines]
  end

  REPO -->|1. git.push service hook| HOOK{{n8n webhook}}
  HOOK -->|2. filter doc-relevant paths| FILTER[Function node]
  FILTER -->|3. build prompt| AOAI[Azure OpenAI<br/>chat completion]
  AOAI -->|4. markdown draft| COMMIT[Create branch + commit<br/>ADO Git REST]
  COMMIT -->|5. open PR| PR[Pull Request<br/>reviewer = page owner]
  PR -->|6. triggers| PIPE
  PIPE -->|7. wiki-ci: validate| CHECK{Pass?}
  CHECK -->|yes| REVIEW[Human review + merge]
  REVIEW -->|8. merge to main| PUBLISH[wiki-publish + docs build]
  PUBLISH --> SITE[Published site]
  REPO -.nightly.-> DRIFT[Drift report → Teams]

  classDef ado fill:#0b3b52,stroke:#0891b2,color:#e0f2fe;
  classDef ai fill:#3b0764,stroke:#a855f7,color:#f3e8ff;
  class REPO,WIKI,PIPE,PR ado;
  class AOAI,FILTER ai;

What each hop is

# Hop Mechanism Auth
1 Repo → n8n Azure DevOps service hook (git.push) → n8n Webhook node HMAC / basic on the webhook
2 Filter n8n Function node keeps only doc-relevant paths
3 Prompt n8n builds the drafting prompt
4 Draft HTTP Request node → Azure OpenAI chat completions Managed Identity or Key Vault key
5 Commit + PR HTTP Request nodes → Azure DevOps Git REST API Workload identity / PAT in Key Vault
6–7 Validate Azure Pipeline wiki-ci runs on the PR Pipeline service connection
8 Publish wiki-publish + docs build on merge to main Pipeline service connection

Everything is reachable because n8n is the hub

n8n receives the event, calls Azure OpenAI, and calls the Azure DevOps API. You never expose the wiki or AOAI publicly — n8n makes outbound calls with managed identity, and the only inbound surface is the single webhook.