Aller au contenu

Relecteur d'issues

AI generated translation.

Ce guide explique comment automatiser la relecture des issues avec un GenAIScript qui fournit des retours et une analyse de code dans GitHub Actions.

Le script commence par obtenir les informations actuelles de l’issue depuis l’API GitHub.

issue-reviewer.genai.mjs
const { title, body } = await github.getIssue()

La fonction github.getIssue suppose que GenAIScript s’exécute dans une GitHub Action. Elle aura accès au jeton GitHub (GITHUB_TOKEN) et à l’identifiant de l’issue GITHUB_ISSUE.

Le GITHUB_ISSUE doit être configuré dans la GitHub Action à partir de l’objet github.event.issue.

github-action.yml
jobs:
review:
- run: ...
env:
GITHUB_ISSUE: ${{ github.event.issue.number }}

Le prompt définit la tâche et la manière d’effectuer la relecture dans un message système.

issue-reviewer.genai.mts
$`## Tasks
You are an expert developer and have been asked to review an issue.
Review the TITLE and BODY and report your feedback that will be added as a comment to the issue.
`.role("system")

Ensuite, il ajoute le titre et le corps de l’issue au prompt.

issue-reviewer.genai.mts
def("TITLE", title)
def("BODY", body)

Ajoutez cette étape à votre workflow GitHub Actions pour automatiser le processus de relecture des issues. L’option --pull-request-comment correspond à —pull-request-comment et s’occupe d’ajouter ou de mettre à jour un commentaire dans la conversation de l’issue ou de la pull request.

permissions:
content: read # permission to read the repository
issues: write # permission to write a comment
...
- run: npx --yes genaiscript run issue-reviewer --pull-request-comment --out-trace $GITHUB_STEP_SUMMARY
env:
GITHUB_ISSUE: ${{ github.event.issue.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
... # LLM secrets
issue-reviewer.genai.mjs
script({
title: "Issue Reviewer",
description: "Review issues and provide feedback",
responseType: "markdown",
systemSafety: true,
parameters: {
issue: {
type: "integer",
description: "The issue number to answer.",
required: false,
},
},
});
const { title, body } = await github.getIssue(env.vars.issue);
def("TITLE", title);
def("BODY", body);
$`## Role
You are an expert developer at TypeScript and GenAIScript (https://github.com/microsoft/genaiscript) and have been asked to review an issue.
## Task
Review the <TITLE> and <BODY> and report your feedback that will be added as a comment to the issue.
- Check that has enough details to help the developer. Ask clarifying questions if needed.
- do not suggest code changes or guidance. Only provide feedback on the issue itself.
`;