Synthèse automatique
Publie deux commentaires `/azp run` sur une pull request de microsoft/FluidFramework afin de déclencher l'ensemble des pipelines Azure DevOps, ce qui est requis pour les PR créées par Copilot.
Points forts
- Liste explicite des pipelines à déclencher, prête à l'emploi sans configuration
- Gère le piège Windows/Git Bash avec MSYS_NO_PATHCONV=1 pour éviter l'expansion de /azp
- Prévoit une solution de repli via l'API REST GitHub avec $GITHUB_TOKEN si gh n'est pas installé
- Explique pourquoi les commentaires sont scindés en deux (limite de longueur pour le déclenchement)
Limites
- Codé en dur pour le dépôt microsoft/FluidFramework : inutilisable ailleurs sans réécriture
- Les listes de pipelines sont figées dans le texte et deviendront obsolètes si les définitions changent
- Publie les commentaires immédiatement, sans étape de confirmation ni vérification de l'auteur de la PR
À utiliser lorsqu'une PR du dépôt FluidFramework créée par Copilot doit lancer la totalité des pipelines CI Azure DevOps.
À éviter pour un autre dépôt, pour déclencher un seul pipeline ciblé, ou lorsque l'utilisateur n'a pas les droits de commenter la PR.
Analyse de sécurité
PrudenceThe skill only posts two fixed `/azp run` comments to a user-specified PR in one hardcoded repo. There is no destructive action, obfuscation, or exfiltration — the only secret use is passing $GITHUB_TOKEN to GitHub's own API as a documented fallback. The main issue is that this fallback exceeds the declared allowed-tools (gh pr comment only), so a runtime with broader shell access is implicitly assumed.
- •Declared allowed-tools is only `Bash(gh pr comment *)`, but the skill instructs a fallback that runs arbitrary `curl` POST requests with `$GITHUB_TOKEN` in the Authorization header — beyond the granted tool scope (though the token is only sent to api.github.com, its intended destination).
- •Uses network access and a credential-bearing API call; legitimate here but requires a shell/network-capable tool the manifest does not declare.
- •Hardcodes a specific repository (`microsoft/FluidFramework`) and specific pipeline names, so it is narrowly scoped rather than general-purpose.
- •Declared allowed-tools is only `Bash(gh pr comment *)`, but the instructions also direct the agent to run availability checks and a `curl` POST to api.github.com, which is outside the declared tool scope.
- •The fallback path passes `$GITHUB_TOKEN` on a curl command line, exposing the token to shell history/process listings and to any command-echoing; the destination (api.github.com) is legitimate, so this is a credential-handling concern rather than exfiltration.
- •Repository is hard-coded to microsoft/FluidFramework while the PR is taken from user input; a mismatched PR number/URL could cause comments to be posted to an unintended PR in that repo (low impact: comments only, no writes to code).
- •No obfuscation, destructive commands, privilege escalation, or attempts to alter the auditor's/agent's role were found in the content.
Exemples
Trigger the ADO pipelines for PR #24187 in microsoft/FluidFramework.This PR was created by Copilot — post the /azp run comments on https://github.com/microsoft/FluidFramework/pull/23950 so CI starts.Run the full FluidFramework pipeline suite on PR 24312.name: trigger-pipelines-for-copilot-pr description: Trigger ADO pipelines for a Copilot-created PR by posting /azp run comments. Use when the user asks to trigger CI pipelines for a specific PR. allowed-tools: Bash(gh pr comment *) context: fork model: claude-haiku-4-5-20251001 argument-hint: [pr-number-or-url]
Post the following two comments to the PR specified by the user ($ARGUMENTS), in the microsoft/FluidFramework repository on GitHub.
They need to be posted separately because otherwise it gets too long and
fails to trigger correctly.
First comment:
/azp run Build - protocol-definitions,Build - test-tools,server-gitrest,server-gitssh,server-historian,server-routerlicious,Build - client packages,repo-policy-check
Second comment:
/azp run Build - api-markdown-documenter,Build - benchmark-tool,Build - build-common,Build - build-tools,Build - common-utils,Build - eslint-config-fluid,Build - eslint-plugin-fluid
Posting those comments will trigger all our pipelines, which is necessary for PRs that are created by Copilot.
To post the comments first check if the GitHub CLI is available,
and if so use MSYS_NO_PATHCONV=1 gh pr comment <PULL_REQUEST_NUMBER> --repo microsoft/FluidFramework --body "<COMMENT_TEXT>".
Note: MSYS_NO_PATHCONV=1 is required on Windows (Git Bash) to prevent /azp from being expanded to C:/Program Files/Git/azp.
If gh is not available but $GITHUB_TOKEN is, you can try the GitHub REST API directly, e.g.:
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/microsoft/FluidFramework/issues/PULL_REQUEST_NUMBER/comments \
-d '{"body":"<COMMENT_TEXT>"}'
If neither is available, don't do anything and tell the user you can't complete the request and why.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/download' --output '.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/SKILL.md.part' && mv '.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/SKILL.md.part' '.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash(gh pr comment *)
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/SKILL.md' && test -s '.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/trigger-pipelines-for-copilot-pr' && cp -R '.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe' '.claude/skills/trigger-pipelines-for-copilot-pr'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe'openskills read 'trigger-ado-pipelines-for-copilot-pr-mrx3xwbe'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/trigger-ado-pipelines-for-copilot-pr-mrx3xwbe/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Configurer un canal de discussion avec SecretRefs
DevOps
Configurez des canaux de discussion avec des commandes non interactives, les secrets étant uniquement des SecretRefs. Couvre les étapes de collecte, modification, réparation et vérification.
Enquêter sur les échecs CI de ClickHouse
DevOps
Investigue un échec CI de ClickHouse de bout en bout à partir d'une URL de PR ou de rapport S3. Récupère les tests échoués, classe flaky vs vraie régression, et cherche des issues/fixes existants.
Revue de PR Ansible
DevOps
Examine une PR Ansible selon le processus standardisé du projet, incluant la validation des changelogs, la couverture de tests et le suivi des commentaires.