Aller au contenu
A simple 8-bit style icon shows a blocky computer monitor with a piece of code displayed, overlaid by three symbols: a red triangle signaling an error, a yellow exclamation for warning, and a blue note. Next to the monitor, flat colored squares symbolize integration points for GitHub, VSCode, and a checklist, all designed with basic geometric shapes and limited to five distinct colors. The scene has no background or human figures.

Annotations

AI generated translation.

Les annotations sont des erreurs, des avertissements ou des notes qui peuvent être ajoutées à la sortie LLM. Elles sont extraites et intégrées dans VSCode ou votre environnement CI.

$`Report issues with this code using annotations.`

Si vous utilisez annotation dans le texte de votre script sans spécifier le champ system, system.annotations sera ajouté par défaut.

L’utilisation de l’invite système system.annotations permet au LLM de générer des erreurs, des avertissements et des notes.

script({
...
system: [..., "system.annotations"]
})

Pour obtenir un rendu esthétique dans la prévisualisation Markdown, essayez l’extension Markdown Preview for GitHub Alerts.

L’invite system.annotations active automatiquement l’injection de numéros de ligne pour toutes les sections def. Cette amélioration augmente la précision des réponses du LLM et réduit la probabilité d’hallucinations.

Par défaut, les annotations utilisent la syntaxe GitHub Action Commands. Cela signifie que les annotations seront automatiquement extraites par GitHub si vous exécutez votre script dans une GitHub Action.

Commentaires de révision sur les Pull Requests GitHub

Section intitulée « Commentaires de révision sur les Pull Requests GitHub »

Utilisez l’option --pull-request-reviews dans le cli run pour ajouter des annotations comme commentaires de révision sur une pull request.

Fenêtre de terminal
npx --yes genaiscript run ... --pull-request-reviews

Les annotations sont converties en Diagnostics Visual Studio, qui sont présentés à l’utilisateur via le panneau Problèmes. Ces diagnostics apparaissent également sous forme de lignes ondulées dans l’éditeur.

Format d’Échange des Résultats d’Analyse Statique (SARIF)

Section intitulée « Format d’Échange des Résultats d’Analyse Statique (SARIF) »

GenAIScript convertit ces annotations en fichiers SARIF, qui peuvent être téléchargés comme des rapports de sécurité, similaires aux rapports CodeQL.

L’extension SARIF Viewer facilite la visualisation de ces rapports.

GitHub Action
name: "Upload SARIF"
# Run workflow each time code is pushed to your repository and on a schedule.
# The scheduled workflow runs every Thursday at 15:45 UTC.
on:
push:
schedule:
- cron: "45 15 * * 4"
jobs:
build:
runs-on: ubuntu-latest
permissions:
# required for all workflows
security-events: write
# only required for workflows in private repositories
actions: read
contents: read
steps:
# This step checks out a copy of your repository.
- name: Checkout repository
uses: actions/checkout@v4
# Run GenAIScript tools
- name: Run GenAIScript
run: npx --yes genaiscript ... -oa result.sarif
# Upload the generated SARIF file to GitHub
- name: Upload SARIF file
if: success() || failure()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: result.sarif
  • L’accès aux rapports de sécurité peut varier en fonction de la visibilité de votre dépôt et des règles organisationnelles. Consultez la documentation GitHub pour plus d’informations.
  • Votre organisation peut imposer des restrictions sur l’exécution des GitHub Actions pour les Pull Requests. Consultez la documentation GitHub pour des informations supplémentaires.

Vous pouvez utiliser la fonction defOutputProcessor pour filtrer les annotations.

defOutputProcessor((annotations) => {
// only allow errors
const errors = annotations.filter(({ level }) => level === "error")
return { annotations: errors }
})