Pular para o conteúdo principal
Agora que você já concluiu a configuração, inicie sua primeira sessão com o Devin! Comece com tarefas de escopo menor e lembre-se de orientar o Devin com o mesmo nível de detalhe que você daria a um engenheiro de software júnior. Já vimos usuários trabalharem com o Devin em tudo, desde correção de pequenos bugs até refatorações pontuais e migrações em larga escala.

Iniciar uma execução com o Devin

Recomendamos iniciar sessões em canais do Slack (certifique-se de mencionar @Devin depois de adicionar o Devin ao canal e de vincular seu usuário do Slack à sua conta na Devin). Você também pode começar pelo nosso app web!

Ideias de primeiros prompts

a new API endpoint
Crie um novo endpoint /users/stats que retorne um objeto JSON com a contagem de usuários e a idade média no momento do cadastro. 

Use nossa tabela users existente no PostgreSQL. 

Você pode usar o endpoint /orders/stats em statsController.js como referência para como estruturamos as respostas. 

Garanta que o novo endpoint esteja coberto pela suíte de testes StatsController.test.js.
frontend features
No componente UserProfileComponent, adicione um menu suspenso que mostre uma lista de funções de usuário (admin, editor, viewer). 

Use a estilização de DropdownBase. 

Quando uma função for selecionada, chame a API existente para definir a função do usuário. 

Valide verificando se a seleção atualiza a função do usuário no banco de dados. Consulte seu Knowledge para saber como testar corretamente.
unit tests
Adicione testes em Jest para os métodos do AuthService: login e logout. 

Garanta que a cobertura de testes para essas duas funções seja de pelo menos 80%. 

Use o arquivo UserService.test.js como exemplo.

Após a implementação, execute `npm test -- --coverage` e verifique se o relatório de cobertura mostra >80% para ambas as funções. 

Também confirme que os testes passam com credenciais válidas e inválidas, e que o logout limpa corretamente os dados de sessão.
or refactoring existing code
Migre logger.js de JavaScript para TypeScript. 

Já temos um tsconfig.json e uma suíte de testes LoggerTest.test.js para validação. 

Certifique-se de que o código seja compilado sem erros e não altere a configuração existente!

Após a migração, verifique:
1) executando `tsc` para confirmar que não há erros de tipo
2) executando a suíte de testes com `npm test LoggerTest.test.js` para garantir que todos os testes passem
3) verificando se todas as chamadas de métodos existentes de logger em toda a base de código ainda funcionam sem erros de tipo.
unit tests
Estamos migrando de pg para sequelize (leia https://sequelize.org/api/v6/identifiers). 

Atualize as consultas do UserModel para usar os métodos do Sequelize. 

Consulte o OrderModel para ver como fazemos isso nesta base de código.

Após a implementação, valide:
1) executando `npm run test:integration UserModel.test.js` para verificar se todos os testes de integração passam
2) confirmando que o desempenho das consultas não foi degradado, verificando o tempo de execução em um conjunto de dados de teste com 1000 usuários
3) validando que todas as operações CRUD ainda mantêm a integridade dos dados executando `npm run test:e2e user-flows.test.js`
Quick PR
## Visão geral
A tarefa é fazer um pull request rápido para um repositório.
Como este é um PR "rápido", você não precisará executar nenhum código ou testar nada; simplesmente faça o PR e o usuário cuidará dos testes. Sua única responsabilidade é ler e escrever código.

## O que precisamos do usuário
- O repositório para o qual criar um pull request

## Procedimento
### Prepare seu ambiente de trabalho
1. Navegue até o repositório relevante na sua máquina (confirme com o usuário se você não conseguir descobrir qual é).
    - Faça checkout na branch principal e anote o nome da branch principal.
    - Crie uma nova branch e faça checkout nela, já que você fará um pull request. O nome da branch deve ser no formato `devin/<your-branch-name>/X`, onde X é um número aleatório. Por exemplo, `devin/fix-popup/3234`. Rode `git remote -v && git pull && git checkout -b devin/{branch-name}/$RANDOM` e substitua `{branch-name}` pelo nome da branch que você quer criar.
2. Estude a solicitação, o codebase e planeje as alterações
    - Revise os arquivos e trechos de código mais relevantes, identificando os trechos importantes.
    - Informe ao usuário o seu plano
### Trabalhe no próprio PR
3. Faça as alterações de código
    - Não mude nada que não tenha sido especificamente solicitado pelo usuário
4. Faça o PR
    - Faça commit e push das alterações e avise o usuário.
    - Veja a seção de recomendações para o comando exato para criar o PR
    - Crie um pull request e revise o PR para garantir que está tudo certo.
    - Garanta que todas as GitHub Actions sejam bem-sucedidas e faça as alterações necessárias até que sejam.
    - Envie o link do PR para o usuário e resuma o que você alterou.
5. Trate de qualquer feedback da revisão; envie o link do PR novamente sempre que fizer qualquer alteração
    - Se você precisar fazer atualizações, apenas envie mais commits para a mesma branch; não crie uma nova


## Especificação da tarefa
- O link do PR está incluído nas suas mensagens para o usuário
- O PR foi revisado após a criação
- O PR não inclui alterações não relacionadas
- O PR não altera nada que não tenha sido especificamente solicitado pelo usuário
- A descrição do PR deve incluir um resumo das alterações, formatado como uma checklist
- A descrição do PR deve mencionar que o código foi escrito sem testes e incluir - [ ] Testar as alterações como um item
- A descrição do PR deve incluir o seguinte rodapé: "Este PR foi escrito por [Devin](https://devin.ai/) :angel:"
- A descrição do PR deve incluir quaisquer metadados que o usuário tenha fornecido (por exemplo, tags de tickets do Linear na sintaxe apropriada)
- A descrição do PR não deve estar malformatada (use --body-file em vez de --body se as quebras de linha estiverem bagunçadas!)

## Ações proibidas
- NÃO tente acessar github.com pelo navegador, você não estará autenticado.
- NUNCA dê force push em branches! Prefira fazer merge em vez de rebase para não perder nenhum trabalho.
- NÃO faça push diretamente na branch principal.

## Recomendações e dicas
- Confira o nome da branch principal (que pode ser `main` ou `master`) usando `git branch`.
- Para repositórios com CI/CD em GitHub Actions, você pode verificar os logs de build usando o gh CLI. Se pedirem para corrigir um build/corrigir lint, você deve começar olhando os logs de builds recentes.
- Verifique `git status` antes de fazer commit ou adicionar arquivos.
- Use `git diff` para ver quais alterações você fez antes de fazer commit.
- Se você estiver atualizando um repositório existente, use o gh CLI para criar pull requests.
- Envie o link do PR para o usuário sempre que atualizar e peça para ele revisar novamente, para facilitar para ele
- Você já deve estar autorizado a acessar quaisquer repositórios que o usuário mencionar. Caso contrário, peça acesso ao usuário.
The first time you use Devin, recomendamos que você se sente e assista por alguns minutos a como o Devin trabalha, usando a aba Follow Devin ou o nosso vídeo de sessão de exemplo abaixo. Em geral, você não precisa monitorar o Devin dessa forma o tempo todo, mas é um ótimo ponto de partida para entender as capacidades do Devin. Observação: este vídeo foi acelerado para fins de demonstração. Se você quiser se aprofundar em exemplos mais detalhados do que o Devin pode fazer (e como), confira nossos tutoriais introdutórios abaixo.

Trabalhe com suas ferramentas atuais

Você pode convidar o Devin para trabalhar em muitas das ferramentas ou aplicativos que você já utiliza — basta fornecer ao Devin as credenciais necessárias, chaves de API ou tokens, para que ele possa operar nesses serviços por meio do Secrets Manager ou quando for solicitado a compartilhar a credencial com segurança no chat. Aqui estão algumas das ferramentas mais comuns que o Devin vem usando com nossos primeiros usuários:
Devin
Para mais detalhes sobre as integrações do Devin, consulte nossos guias de integração para GitHub e Slack: Para fluxos de trabalho automatizados e integrações com suas ferramentas existentes, você também pode aproveitar nossa Referência da API para criar sessões programaticamente e recuperar resultados estruturados.