GitHub e Microsoft expandiram o alcance de seu assistente de programação baseado em inteligência artificial para incluir revisões de código, criação de aplicativos web básicos, atualizações em Java e suporte na resolução de problemas relacionados ao Azure.

O GitHub, como parte da estrutura de desenvolvimento da Microsoft, vai além de apenas fornecer controle de versão de código na nuvem e localmente. Inicialmente focado nisso, o GitHub expandiu suas funcionalidades para incluir uma plataforma de CI/CD com executor de compilação e teste, chamada de ações GitHub. Além disso, foram adicionadas ferramentas para minimizar erros comuns, automatizar correções de segurança conhecidas e gerenciar dependências.
Essas características desempenham um papel fundamental no GitHub, que serve como um repositório para o código e é usado como uma ferramenta para auxiliar os desenvolvedores na criação de uma variedade de projetos, desde hacks aquaristas até a computação científica. O GitHub abriga bilhões de linhas de código que compõem grandes projetos de software. Essa vasta quantidade de código, a maioria com licenças permissivas, proporciona ao GitHub uma visão abrangente das tendências dos desenvolvedores, que são apresentadas no seu relatório anual Octoverse sobre as linguagens de programação e ferramentas de desenvolvimento utilizadas.
Essa vasta base de código permitiu ao GitHub desenvolver um conjunto de assistentes de programação impulsionados por inteligência artificial, aproveitando o conhecimento compartilhado de milhões de desenvolvedores para oferecer um grupo de Copilots que se integram a ferramentas de desenvolvedor familiares. Eu os vejo como “parceiros de programação com IA”, não exatamente escrevendo código por você (embora isso seja uma possibilidade, se desejar), mas sim fornecendo um conjunto de conhecimento coletivo para sugerir abordagens alternativas, auxiliando na resolução de problemas e na superação de obstáculos.
Na última semana, durante o evento GitHub Universe 2024 em São Francisco, o GitHub ampliou sua seleção de Copilots, introduzindo novas ferramentas e serviços impulsionados por inteligência artificial. Além disso, foram apresentadas novas opções para a plataforma já existente, expandindo as funcionalidades além do domínio semântico explorado pelo GitHub Copilot original, com o objetivo de oferecer serviços baseados em agentes de IA para auxiliar em tarefas de migração.
Utilizando o GitHub Copilot para a análise de código.
Um novo uso interessante para essas tecnologias é a ferramenta de revisão de código do GitHub Copilot, que adota uma abordagem semelhante à funcionalidade de revisão do Editor da Microsoft no Word. Ao utilizar o Copilot como revisor adicional, é possível verificar o conteúdo de uma solicitação de pull. Os comentários podem ser feitos através de uma seção de código ou sobre todas as mudanças realizadas desde o último push. O GitHub ressalta que o serviço não é capaz de identificar todos os problemas no código e pode cometer erros. Portanto, é recomendado tratá-lo como uma tecnologia auxiliar e realizar testes adicionais após o uso, ou combiná-lo com revisões feitas por humanos. Existe um ciclo de feedback, no qual os usuários podem comentar sobre as sugestões feitas pelo serviço, colaborando assim para um aprimoramento contínuo por meio de mais treinamento e ajustes.
Como um revisor de código humano, o Copilot do GitHub irá analisar seu código e fornecer sugestões rápidas para correções. Esta ferramenta pode ser acessada dentro dos espaços de trabalho do GitHub ou através do plug-in Copilot no Visual Studio Code. A opção de revisar rapidamente um trecho selecionado de código está disponível para todos os idiomas suportados, enquanto a revisão mais aprofundada das alterações só está disponível para algumas linguagens mais populares, como C#, Java, JavaScript (e TypeScript) e Python.
A maioria das avaliações pode ser acionada manualmente, mas é possível configurar todas as solicitações de pull para serem revisadas automaticamente. Os responsáveis pelo desenvolvimento e os proprietários do repositório podem estabelecer diretrizes para seus ramos, assegurando que as revisões do Copilot sejam realizadas em todas as novas solicitações de pull. Esse método irá incluir comentários automáticos no código, permitindo que outros membros da equipe façam ou aprovem alterações durante a fusão de uma solicitação de pull.
GitHub Spark: Utilizando inteligência artificial para impulsionar o desenvolvimento de todos.
A GitHub revelou a GitHub Spark, uma ferramenta de desenvolvimento baseada em inteligência artificial para pequenas aplicações na nuvem. Pode ser considerada como uma opção intermediária entre o ambiente de desenvolvimento Glitch e as plataformas de baixo código e sem código, oferecendo uma estrutura para criar e compartilhar ideias de aplicativos de forma rápida com colegas, utilizando linguagem natural.
O GitHub Spark oferece uma experiência fascinante ao proporcionar um novo ciclo de feedback no desenvolvimento, permitindo que você faça iterações rapidamente em sua aplicação. Todas as versões do seu aplicativo são mantidas em um histórico, possibilitando retornar a uma versão anterior para iniciar novas iterações. Os aplicativos são disponibilizados como PWAs e hospedados pelo GitHub, que oferece uma loja gerenciada NoSQL para os dados.
Ainda é prematuro para Spark, pois há muitas atividades pendentes para a equipe de desenvolvimento. No entanto, a proposta é intrigante, ampliando as possibilidades do Copilots para uma ferramenta que permita a qualquer pessoa desenvolver um aplicativo.
Utilizando Inteligência Artificial para modernizar Java.
As ferramentas de desenvolvimento da Microsoft estão colaborando com o GitHub para explorar novas maneiras de utilizar o GitHub Copilot. Uma ideia promissora é utilizar essa ferramenta para auxiliar os desenvolvedores de Java a atualizarem seus aplicativos. Existe potencial para muitos aplicativos Java mais antigos se beneficiarem ao serem atualizados para versões mais recentes de Java, frameworks como Spring Boot, ou versões mais recentes de APIs e serviços.
Atualizar o código para uma versão mais recente do JDK não é simples, pois os aplicativos possuem várias dependências que também precisarão ser atualizadas simultaneamente. Isso pode ser um processo demorado ao lidar com diferentes caminhos de atualização e resolver erros e problemas. Em vez de perder tempo nesse processo, a nova ferramenta de atualização do GitHub Copilot para Java utiliza um fluxo de trabalho inteligente, aproveitando a capacidade de aplicativos baseados em IA para criar fluxos de trabalho personalizados que abordam diversas tarefas conforme necessário. A ferramenta utiliza a inteligência artificial para elaborar um plano de atualização para o usuário.
Você inicia com um projeto já em andamento e as especificações das ferramentas e frameworks de compilação, juntamente com a versão Java de destino (por exemplo, migrando de Java 8 para Java 21). O Copilot, assistente de atualização, examina o seu código-fonte e elabora uma lista das etapas requeridas para realizar a atualização, mostrando-as como um conjunto de questões no GitHub que você pode revisar antes de realizar a atualização.
Depois de concluir as atividades e sentir satisfação com elas, a ferramenta direciona você para um painel que permite observar o processo de atualização, incluindo a maneira como o Copilot reescreve o código automaticamente. Você tem a opção de interromper ou iniciar o processo a qualquer momento, investigando as tarefas para obter mais detalhes sobre o funcionamento do código gerado pela inteligência artificial. A transparência proporcionada é valorizada, uma vez que é essencial confiar na IA, especialmente ao lidar com software empresarial crítico.
Neste processo de IA agente, o sistema pode identificar e corrigir erros, enviando subagentes para fazer modificações, reconstruir e testar o código. Se uma correção não der certo, o sistema adota uma nova abordagem, aproveitando o conhecimento compartilhado dos desenvolvedores Java que colaboraram para treinar o modelo Copilot Java. Semelhante aos outros Copilots do GitHub, as alterações bem-sucedidas são utilizadas para aprimorar o modelo, diminuindo a probabilidade de erros em futuras execuções. Isso também se aplica a atualizações manuais e alterações.
A ferramenta de atualização utiliza o Git para economizar mudanças em um novo ramo, permitindo que você mantenha o código original enquanto testa a versão atualizada. O agente marca seus commits com detalhes sobre as ações realizadas, proporcionando um guia sobre como ele lidou com a atualização do código. O pedido final de pull não é feito pelo agente, sendo sua responsabilidade uma vez que esteja satisfeito com a aplicação Java atualizada e ela tenha passado por todos os testes.
Um assistente de programação Azure no Visual Studio Code
Outras adições recentes do GitHub Copilot têm como objetivo diminuir a necessidade de os desenvolvedores mudarem de contexto com frequência. Uma delas, feita para ser usada dentro do Visual Studio Code, inclui ferramentas de infraestrutura do Azure no painel de chat do GitHub Copilot, com um novo operador chamado @azure.
Além de auxiliar na obtenção rápida da sintaxe para os comandos Azure CLI, o recurso pode também auxiliá-lo a descobrir recursos e serviços que talvez você não tenha considerado. A ferramenta em questão possui uma funcionalidade de pesquisa baseada em geração que utiliza a documentação do Azure para oferecer informações sempre atualizadas sobre a plataforma e sua utilização. Outras opções permitem selecionar modelos de aplicativos e fornecer detalhes que facilitam a construção e implantação de aplicativos, como por exemplo, localizar rapidamente uma região apropriada onde um serviço desejado esteja disponível.
Outras ferramentas auxiliam na resolução de problemas ao acessar registros e outros recursos de diagnóstico para obter sugestões de correção. Neste contexto, as ferramentas desenvolvidas para a inteligência artificial têm um papel fundamental, oferecendo as APIs e dados necessários para criar um fluxo de trabalho de diagnóstico complexo de forma rápida. Essas mesmas ferramentas podem facilitar a operação do ambiente, permitindo que você desenvolva, resolva problemas e execute uma instância de desenvolvimento do Azure diretamente do mesmo editor de código utilizado para construir sua aplicação.
Ter um assistente em suas ferramentas de desenvolvimento não se trata de ter um código de IA que escreve por você. Isso ainda não é o que a IA generativa faz. Em vez disso, você está recebendo um colaborador que reúne a experiência de todos que trabalharam em um problema semelhante e usaram o GitHub para salvar seu código. Envolve sugestões, trechos de código recomendados e automações que simplificam tarefas complexas. Como um dos pioneiros na utilização de modelos de linguagem em grande escala, o GitHub agora está explorando o que está por vir – e isso pode ser muito interessante.