End to end¶
Follow one real change from an engineer's commit to a published, reviewed wiki page.
sequenceDiagram
autonumber
participant Eng as Engineer
participant Repo as Ansible repo (ADO)
participant Hook as Service hook
participant N8N as n8n
participant AOAI as Azure OpenAI
participant Git as Wiki repo (ADO)
participant CI as wiki-ci pipeline
participant Owner as Page owner
participant Site as Docs site
Eng->>Repo: git push (edit roles/provision-linux-vm)
Repo->>Hook: git.push event
Hook->>N8N: POST /webhook/ado-git-push
N8N->>N8N: filter + classify (provisioning)
N8N->>AOAI: draft markdown (content as data)
AOAI-->>N8N: page with front-matter + citation
N8N->>Git: create branch bot/provisioning-... + commit
N8N->>Git: open PR (label: auto-draft)
Git->>CI: PR triggers wiki-ci
CI-->>Git: front-matter/links/hand-edit checks pass
Git->>Owner: reviewer assigned (from page owner)
Owner->>Git: review diff + merge
Git->>Site: wiki-publish + docs build
Site-->>Eng: page live & searchable
Walkthrough¶
An engineer updates roles/provision-linux-vm/README.md in ansible-provisioning-emea and pushes to main.
The Azure DevOps service hook fires git.push and POSTs the payload to the n8n webhook. The Filter & normalise node sees a roles/.../README.md change → classifies it provisioning → target _generated/30-runbooks/provisioning/provision-linux-vm.md.
n8n calls Azure OpenAI (gpt-4o-mini). The system prompt requires valid front-matter, a citation to the commit, and treats the diff as data, not instructions. Cost: a fraction of a cent.
n8n reads the tip of main, pushes a bot/provisioning-provision-linux-vm branch with the drafted page, and opens a pull request labelled auto-draft.
The PR triggers wiki-ci: front-matter contract, link/orphan check, and the hand-edit guard on /_generated. Green check = safe to review.
Branch policy assigned the page owner as reviewer. They read the diff and the cited source, confirm no sensitive data leaked, and merge.
Merge to main triggers wiki-publish and the docs-site build. The page is live and searchable within a minute.
Special paths (same tail, different head)¶
| Upstream event | Classify | What happens |
|---|---|---|
| Repo/SharePoint file updated | normal | AI draft → PR |
| File deleted | delete | Tombstone commit ([DEPRECATED]), no AI call → PR |
| Confidential Teams/Outlook post | restricted | Link-only stub, no AI call, body never stored → PR |
| Legacy doc | legacy | Short summary + link-back → PR |
| Power BI / SNOW report | report | KPI summary + link → PR |
Nightly¶
A scheduled n8n workflow compares each project's automation assets to the wiki's coverage/freshness and posts a drift report to Teams:
Coverage 78% · 14 assets changed this week · 9 fresh · 5 need SME review — with links.
Try it locally first¶
Everything above is demonstrated offline in the reference implementation — no cloud needed: