Mieux - Une action GitHub de réviseur de code alimentée par l'IA

DEV - 28/09
Les révisions de code ont toujours été cruciales pour maintenir une norme et mettre l'accent sur les meilleures pratiques...

Les révisions de code ont toujours été cruciales pour maintenir une norme et mettre l'accent sur les meilleures pratiques de code dans un projet. Il ne s'agit pas d'un article sur la manière dont les développeurs doivent réviser le code, il s'agit plutôt d'en déléguer une partie à l'IA.

Comme Michael Lynch le mentionne dans son article - "Comment effectuer des révisions de code comme un humain" - nous devrions laisser les ordinateurs s'occuper des parties ennuyeuses de la révision de code. Alors que Michael met l'accent sur un outil de formatage, j'aimerais aller plus loin et laisser l'intelligence artificielle le comprendre. Je veux dire, pourquoi ne pas profiter du boom de l’IA dans l’industrie ?

Maintenant, je ne dis pas que l’IA devrait être utilisée à la place des outils de formatage et des linters. Au lieu de cela, il doit être utilisé en plus de cela, pour capturer des éléments insignifiants qui pourraient manquer à un humain.

C'est pourquoi j'ai décidé de créer une action github dont le code examine une différence de demande d'extraction et génère des suggestions à l'aide de l'IA. Laissez-moi vous guider à travers cela.

🚨 Remarque

  • Cette action GitHub est désormais disponible sur la place de marché GitHub.
  • C'est une action javascript - en savoir plus sur la création d'actions javascript github.

Obtenir la différence

Pour interagir avec l'API github, j'ai utiliséoctokit, qui est une sorte de SDK ou de bibliothèque client pour interagir avec l'API github de manière idiomatique.

Pour que vous obteniez la différence de la pull request, vous devez passer leAccepteren-tête avec la valeurapplication/vnd.github.diffavec les paramètres requis.

fonction asynchrone getPullRequestDetails(octokit, { mode }) { let AcceptFormat = "application/vnd.github.raw+json"; if (mode === "diff") AcceptFormat = "application/vnd.github.diff"; if (mode === "json") AcceptFormat = "application/vnd.github.raw+json";...
[Courte citation de 8% de l'article original]
Loading...