Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .github/workflows/onboarding-welcome.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Onboarding Issue Welcome

# Posts a welcome comment on Azure MCP onboarding requests, pointing new
# contributors to the contribution guide and the @onboarding Copilot agent.
# Onboarding issues are created from the "Azure MCP - Service Onboarding
# Request" template, which applies the labels below.

on:
issues:
types: [opened, labeled]

permissions:
issues: write
jobs:
welcome:
runs-on: ubuntu-latest
concurrency:
group: onboarding-welcome-${{ github.event.issue.number }}
cancel-in-progress: true
# Run only for Azure MCP onboarding requests. The Azure MCP onboarding
# template applies the labels: onboarding, needs-triage, Azure.Mcp.Server.
# Other onboarding templates (e.g. the generic "New Microsoft MCP Server
# Onboarding Request") also use the "onboarding" label but NOT
# "Azure.Mcp.Server", so we require both to scope this to Azure MCP.
if: >-
contains(github.event.issue.labels.*.name, 'onboarding') &&
contains(github.event.issue.labels.*.name, 'Azure.Mcp.Server')
steps:
- name: Comment with onboarding guidance
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
with:
script: |
const marker = '<!-- onboarding-welcome-comment -->';
const { owner, repo } = context.repo;
const issue_number = context.issue.number;

// Avoid posting duplicate comments. The template applies multiple
// labels, so several "labeled" events can fire for one issue.
const comments = await github.paginate(
github.rest.issues.listComments,
{ owner, repo, issue_number, per_page: 100 }
);
if (comments.some(c => c.body && c.body.includes(marker))) {
core.info('Onboarding welcome comment already present. Skipping.');
return;
}

const body = [
marker,
'👋 Thanks for filing an onboarding request for the Azure MCP Server!',
'',
'While the team triages your issue, here are two things that will help you get started quickly:',
'',
'- 📖 **Read the contribution guide:** [CONTRIBUTING.md](https://github.com/microsoft/mcp/blob/main/CONTRIBUTING.md) walks you through environment setup, adding a new command, testing, and the PR checklist.',
'- 🤖 **Try the `@onboarding` agent:** Open the [microsoft/mcp](https://github.com/microsoft/mcp) repo in VS Code with GitHub Copilot Chat and type `@onboarding` for interactive, step-by-step help with setup, finding your first issue, adding commands, and avoiding common pitfalls.',
'',
'A member of the team will follow up soon. 🚀',
].join('\n');

await github.rest.issues.createComment({ owner, repo, issue_number, body });