Codeball è una soluzione per la code review animata da un sistema di Intelligenza Artificiale, il suo compito è quello di approvare le Pull Request che anche un revisore umano approverebbe senza obiezioni o ulteriori feedback, ma molto più velocemente.
Si tratta sostanzialmente di un servizio attivo attraverso un bot che per il momento risulta sufficientemente affidabile per l'analisi delle Pull Request più semplici da revisionare.
Lo scopo non è infatti quello di sostituire i revisori ma di consentire a questi ultimi di dedicare più tempo alle Pull Request che necessitano di maggior approfondimento.
Code review e Deep Learning
Per far questo Codeball utilizza un modello di Deep Learning che è stato istruito in base a milioni di Pull Request inviate da organizzazioni differenti, esattamente come accadrebbe nel caso di un tecnico con alle spalle anni di esperienza nell'analisi del codice.
Gli indicatori utilizzati in fase di revisione sono molteplici, come per esempio il risultato di un controllo sulla semantica del cambiamento apportato, quando viene rilevato un pattern specifico il bot dispone di un dato utile a prevedere l'esito della review.
Stando ai test effettuati fino ad ora, la percentuale di falsi positivi generati da Codeball sarebbe inferiore all'unità, mentre quella relativa alle recall si attesterebbe intorno ai 25 punti.
Questo accade perché il servizio non giudica positivamente tutte le Pull Request potenzialmente approvabili ma restituisce un'approssimazione credibile dell'esito di una revisione.
Funzionamento e betatest
Per vedere il bot in azione è sufficiente utilizzare il form disponibile nel sito ufficiale del progetto e digitare l'URL del repository che si desidera analizzare nell'apposito campo di testo.
Una volta cliccato sul pulsante Analyse si avrà l'esito della code review
Stando ai calcoli effettuati dai responsabili del progetto, Codeball permette anche di calcolare il risparmio economico su base mensile della code review per il repository in oggetto.
È comunque bene precisare che il bot sarà disponibile gratuitamente fino all'esaurimento della fase di betatest per poi diventare un servizio a pagamento.