YouTrack agora com visualização de solicitações pull em tarefas

Olá, Habr!



A equipe YouTrack da JetBrains está aqui. Temos ótimas notícias - começando com YouTrack 2020.3, as tarefas exibem não apenas commits relacionados à tarefa, mas também solicitações de pull. No post de hoje, vamos dizer o que é, por que é e como vai ajudar a tornar o processo de desenvolvimento mais eficiente e compreensível, e também mostrar o resto das inovações na última versão do YouTrack.



imagem



Para obter detalhes, bem-vindo ao post.



O que é uma solicitação de pull?



Em vários modelos de modelo de desenvolvimento, a colaboração em um projeto se parece com isto: você copia o projeto do controle de origem, faz alterações localmente e, em seguida, envia uma solicitação ao proprietário do projeto para aprovar suas alterações e incluí-las na base de código comum do projeto. Essa solicitação é chamada de solicitação de pull (ou solicitação de mesclagem, dependendo do sistema de controle de versão).



A grosso modo, uma solicitação pull é uma maneira de dizer ao proprietário do repositório ou à sua equipe o que você fez em um projeto e sugerir que suas alterações sejam incluídas em um dos ramos de desenvolvimento geral. O proprietário do repositório (ou a pessoa que fará a revisão do código) pode aceitar as alterações (mesclar a solicitação pull) ou rejeitá-la - por exemplo, se as alterações contradizerem a visão do autor do projeto ou durante o processo de revisão do código, eles decidiram que o código precisa ser melhorado.



Em projetos de código aberto, muitas vezes existem requisitos para solicitações de pull, sem os quais a solicitação de pull não será aceita: por exemplo, nossos colegas da equipe Kotlin pedem aos desenvolvedores que se certifiquem de que a descrição da solicitação de pull contém um link para o problema correspondente no YouTrack, que as alterações na solicitação pull são específicas às tarefas especificadas e que o novo código está sendo executado, executado corretamente e coberto por testes.



Por que puxar solicitações no rastreador?



Criar e aceitar / rejeitar solicitações pull são etapas tão importantes no ciclo de vida de uma tarefa quanto alterar o status ou vincular o commit correspondente. Todas essas etapas mostram o andamento da tarefa para todos os observadores interessados ​​- por exemplo, a comunidade de um projeto de código aberto ou o gerente de projeto da equipe. Por exemplo, se uma tarefa não foi fechada devido à rejeição de uma determinada solicitação pull, essas informações devem ser refletidas no histórico da tarefa - inclusive para fins retrospectivos, quando você precisa entender por que a tarefa foi deixada aberta por tanto tempo. Esse mecanismo torna o processo de desenvolvimento mais transparente e permite que você acompanhe o ciclo de vida do problema passo a passo, sem perder eventos importantes.



Ver solicitações de pull em questões



De volta ao YouTrack, a partir do YouTrack 2020.3, os desenvolvedores serão capazes de ver solicitações pull do GitHub, GitLab, BitBucket, Gogs e Gitea em tarefas próximas aos commits. Para que a solicitação pull, junto com sua descrição, o número de arquivos atualizados e informações sobre o autor, apareça na tarefa, você precisa mencionar a tarefa correspondente no nome da solicitação pull (tudo é exatamente o mesmo que com commits).



Além disso, após aceitar ou rejeitar a solicitação pull, YouTrack incluirá esse evento no fluxo de atividades da tarefa junto com o autor do evento e o status da solicitação pull. Acontece que o feed de mudança de tarefa exibirá todo o ciclo de vida da solicitação pull - sua criação e a decisão final (rejeição ou inclusão na base de código).



imagem



Automatize



Amamos e usamos ativamente a automação, então não poderíamos deixar de usar eventos do sistema de controle de versão em scripts de automação. Agora você pode iniciar um fluxo de trabalho YouTrack ao adicionar uma solicitação pull ou confirmação. Além disso, os fluxos de trabalho agora têm acesso às propriedades para commits e solicitações pull, como nome do autor, descrição ou nota.



O que isso significa? Por exemplo, você pode alterar automaticamente o status de uma tarefa com base no status da solicitação pull ou enviar uma solicitação de revisão de código a um colega ao criar uma solicitação pull.



Esse script simples transfere automaticamente a tarefa para o status Fixo ao mesclar uma solicitação pull e, em seguida, atribui-a ao líder de QA com uma mensagem de que a tarefa está pronta para teste:



var entities = require('@jetbrains/youtrack-scripting-api/entities');
var QA_LEAD = 'qa_superman';

exports.rule = entities.Issue.onChange({
  title: 'Set_to_fixed_when_pull_request_is_merged_and_notify',
  guard: function(ctx) {
    return ctx.issue.pullRequests.isNotEmpty() && 
      ctx.issue.pullRequests.last().previousState && 
      ctx.issue.pullRequests.last().state.name !== ctx.issue.pullRequests.last().previousState.name &&
      ctx.issue.pullRequests.last().state.name === "MERGED";
  },
  action: function(ctx) {
    var issue = ctx.issue;
    issue.State = ctx.State.Fixed;
    issue.Assignee = entities.User.findByLogin(QA_LEAD);
    issue.addComment("The issue is ready to be tested");
  },
  requirements: {
    State: {
      type: entities.State.fieldType,
      Fixed: {
        name: "Fixed"
      }
    },
  }
});


Como antes, os scripts podem ser executados em uma programação ou em um evento específico, dependendo do seu processo. Detalhes sobre fluxos de trabalho e como escrevê-los podem ser encontrados aqui .



O que mais é interessante?



Claro, não nos limitamos a apenas olhar para solicitações de pull. Entre as outras inovações está um novo widget de rastreamento de tempo para painéis (dashboards), de forma que é mais conveniente monitorar a produtividade e não se deixar levar por horas extras em quarentena.



imagem



Para um trabalho conveniente com a lista de tarefas, adicionamos a capacidade de exibir apenas as tarefas não concluídas com um clique e classificar as tarefas pelo número de comentários. A base de conhecimento ganhou destaque de sintaxe para blocos de código com detecção automática da linguagem de programação e, para os amantes do Markdown, possibilitamos redimensionar imagens, vídeos e outros arquivos de mídia embutidos em tarefas e artigos.



Há novidades para quem usa um servidor LDAP para gerenciar as credenciais dos usuários. YouTrack costumava permitir que você autenticasse usando credenciais de um servidor LDAP e agora adicionou a sincronização programada de grupos de usuários e atributos para o servidor LDAP. Isso manterá as credenciais e as informações de associação do grupo LDAP atualizadas - por exemplo, ajudará a evitar o acesso não autorizado aos dados no rastreador se o usuário ainda não for membro de um grupo em seu servidor LDAP, mas ainda obter o acesso correspondente no rastreador devido à latência na sincronização entre o servidor LDAP e YouTrack.



Os detalhes de todas as alterações podem ser encontrados em nosso site .



E se você é novo no YouTrack ou está apenas começando, bem-vindo à nossa demonstração gratuita dos fundamentos do YouTrack.



All Articles