
A empolgante versão do GitLab 12.2 ajudará as equipes a otimizar os pipelines, expandir a colaboração e gerenciar as interdependências do projeto. Detalhes abaixo.
Tubulações mais rápidas e flexíveis
Os pipelines de CI são necessários para automatizar as tarefas de montagem e teste, a fim de acelerar a entrega do software e evitar erros manuais inerentes. Mas, em alguns casos, a eficiência dos pipelines do GitLab CI / CD está longe de ser ideal. O GitLab 12.2 agora suporta gráficos acíclicos direcionais (DAGs) para criar e gerenciar dependências de tarefas detalhadas em vez de depender de etapas seqüenciais. Essa é uma ferramenta supereficiente com a qual seus pipelines de IC trabalharão com mais rapidez e produtividade.
Gerenciamento de design
O desenvolvimento de software é um esporte de equipe e queremos torná-lo acessível a todos. Na versão 12.2, oferecemos novos recursos para habilitar designers e gerenciamento de design no GitLab. O gerenciamento de design facilitará o envio, o controle de versão e a colaboração em artefatos de design para tornar o trabalho em equipe ainda mais eficaz com uma única fonte de verdade.
Estamos apenas começando a trabalhar nos fluxos de trabalho de design no GitLab e ficaremos felizes se você contribuir com nossa estratégia de gerenciamento de design .
Marge solicitar dependências entre projetos
Em sistemas complexos, geralmente há vários projetos com interdependências entre alterações de código, onde é importante em que ordem as alterações são aplicadas. O GitLab agora suporta dependências de solicitação de mesclagem entre projetos para determinar relacionamentos de dependência e evitar erros associados à aplicação de alterações na ordem errada. Quanto menos erros, menos você precisará refazer e mais rápido poderá implantar as alterações.
E isso não é tudo!
O GitLab 12.2 tem tantos recursos interessantes que é simplesmente impossível falar sobre todos eles. Limitar a participação no grupo por domínio , estratégia de implantação para porcentagens e IDs de usuário para comutadores de funções , aprovação de segurança em solicitações de mesclagem e agora variáveis de ambiente com escopo estão incluídas na versão Core . Continue lendo e saiba mais sobre cada recurso.
Funcionário mais valioso do mês ( MVP ) - Fabio Papa
Graças ao Fabio, um novo parâmetro apareceu no GitLab 12.2 , com o qual não apenas os proprietários, mas também os mantenedores podem criar subgrupos. Fabio também fez uma contribuição valiosa para os lançamentos do GitLab 12.0 e GitLab 11.10 .
Obrigado Fabio
Principais características do GitLab 12.2
Gráficos acíclicos direcionais para tubulações GitLab
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Em um pipeline simples, todas as tarefas em um estágio devem ser concluídas antes de passar para o próximo estágio. Em muitos pipelines, você precisa passar por todos os testes antes da implantação. Mas em pipelines mais complexos, às vezes você deseja que as tarefas em um estágio iniciem antes da conclusão do estágio anterior. Por exemplo, um projeto cria aplicativos para Android e iOS em um pipeline de vários estágios. Provavelmente, você deseja que a implantação de aplicativos iOS comece imediatamente após a aprovação nos testes para iOS, para não esperar até que todos os testes para Android sejam aprovados. O tempo total de cálculo será o mesmo e o tempo físico será diferente. Para simplificar o trabalho nesses casos e fornecer uma ferramenta eficaz e flexível para definir pipelines complexos, adicionamos as needs:
keyword, que define o relacionamento entre os trabalhos em .gitlab-ci.yml
. Com a palavra-chave needs
, você pode especificar que uma tarefa deve ser concluída após a outra. Quando a primeira tarefa for concluída, a tarefa que depende dela no próximo estágio começará imediatamente a ser executada, sem aguardar o restante das tarefas no estágio anterior. Dentro do GitLab, implementamos essa função usando um gráfico acíclico direcionado . Em essência, quando o GitLab cria um pipeline a partir da sua configuração, ele usa um conjunto complexo de regras para determinar a sequência de tarefas, e não apenas iniciar tarefas em um estágio apenas após concluir o anterior. Primeiro, o pipeline é executado com mais eficiência e, em segundo lugar, com base nisso, outros recursos avançados podem ser implementados. Use a palavra-chave needs hoje para criar pipelines, como no exemplo acima, ou use-a em novos cenários interessantes de repositório único, quando vários serviços não relacionados forem armazenados no mesmo repositório e não devem esperar um pelo outro.

Anotações de design
PREMIUM, ULTIMATE, PRATA, OURO
Usando anotações de design, designers e desenvolvedores podem trabalhar juntos em designs, deixando comentários sobre vários aspectos. Ao resolver os designs de tarefas em apoio a essa colaboração, continuamos refinando as tarefas como uma única fonte de verdade no GitLab. Ao mesmo tempo, fornecemos uma estrutura para discussões de feedback e design.
Estamos apenas começando a trabalhar nos fluxos de trabalho de design no GitLab e ficaremos felizes se você contribuir com nossa estratégia .
O gerenciamento de projetos está atualmente no estágio alfa e está sujeito a alterações a qualquer momento, sem aviso prévio. Para gerenciar o design, você deve ativar o LFS (Large File Storage) .
Marge solicitar dependências entre projetos
PREMIUM, ULTIMATE, PRATA, OURO
As empresas que lançam vários produtos relacionados costumam usar serviços e bibliotecas comuns para não resolver o mesmo problema duas vezes. Geralmente eles são armazenados em projetos separados, mas, neste caso, é difícil coordenar as mudanças entre os serviços e seus consumidores, se você precisar alterar a função em vários componentes.
No GitLab 12.2, as dependências de solicitação de mesclagem entre projetos permitem definir relacionamentos de dependência para que as alterações não sejam aplicadas na ordem errada. Também é conveniente analisar esses relacionamentos nas revisões de código, para que os revisores entendam mais facilmente todas as alterações.

Restrições de associação ao grupo por domínio
PREMIUM, ULTIMATE, PRATA, OURO
Para organizações preocupadas com segurança, é importante controlar o acesso a projetos e equipes para gerenciar riscos. Na liberação 12.2, adicionamos uma ferramenta de controle de acesso adicional para administradores e proprietários de grupos. Agora você pode conceder associação ao grupo apenas para usuários com um endereço de email no domínio especificado.
Isso significa que na YourCompany somente usuários com endereços da yourcompany.com podem ser incluídos no grupo, e os proprietários não poderão adicionar acidentalmente usuários não autorizados.

Estratégia de implantação percentual para comutadores de recursos
PREMIUM, ULTIMATE, PRATA, OURO
Agora você pode selecionar uma estratégia de implantação percentual para comutadores de recursos. Quando implantado por porcentagem, você pode definir individualmente a porcentagem para cada ambiente e cada comutador. Quando a porcentagem de implantação é configurada e o comutador é ativado, a função será mostrada na porcentagem configurada de usuários conectados. Isso permite executar implantações controladas e monitorar o comportamento do ambiente de destino para obter os resultados esperados.
Estratégia de implantação de identidade de usuário para comutadores de recursos
PREMIUM, ULTIMATE, PRATA, OURO
Agora você pode selecionar uma estratégia de implantação pelo ID do usuário para alternar recursos. Essa estratégia permite especificar uma lista de identificadores de usuários, separados por vírgulas, e depois ativar a função apenas para alguns usuários. Você também pode testar funções apenas em determinados grupos ou segmentos da base de usuários.

Marge solicita aprovação de segurança
ULTIMATE, GOLD
Agora é possível garantir que solicitações de mesclagem que introduzam novas vulnerabilidades não sejam aplicadas até que as pessoas responsáveis revisem e aprovem a alteração.
Portanto, será mais fácil para você e suas equipes cumprirem os requisitos e políticas, e novas vulnerabilidades não poderão vazar acidentalmente na base de código.

Especificando variáveis ao iniciar uma tarefa manualmente
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Agora, quando você inicia uma tarefa manualmente, pode redefinir ou fornecer novas variáveis que a tarefa usará. Portanto, será muito mais fácil configurar tarefas personalizadas ou reutilizáveis em pipelines e até solucionar problemas.

Variáveis de ambiente do escopo agora disponíveis no núcleo
NÚCLEO, ARRANQUE, PREMIUM, ULTIMATE, GRATUITO, BRONZE, PRATA, OURO *
A capacidade de limitar variáveis de ambiente a uma área específica apareceu no GitLab Premium 9.4 e agora está disponível para o GitLab Core. Esse recurso fornece flexibilidade na configuração de várias variáveis (por exemplo, chaves privadas diferentes para acessar diferentes infraestruturas em ambientes) e no uso de vários ambientes no ciclo de vida do desenvolvimento.
Abrimos o código fonte desse recurso de acordo com nossa divisão em níveis por tipo de comprador , para que todos possam usá-lo e participar de seu desenvolvimento.

Outras melhorias no GitLab 12.2
O registro do NPM agora suporta autenticação com o token de acesso pessoal do GitLab
PREMIUM, ULTIMATE, PRATA, OURO
O GitLab NPM Registry permite que os desenvolvedores Javascript compilem, publiquem e versionem pacotes NPM usando sua instância do GitLab. O NPM requer autenticação com o OAuth e, antes da versão 12.2, o token de acesso pessoal do GitLab não suportava o OAuth. Os usuários precisavam criar seu próprio token (fora do GitLab) para usar o registro do NPM, e era impossível usar a autenticação de dois fatores. Essa solução não foi dimensionada para clientes corporativos.
Temos o prazer de anunciar que na versão 12.2 oferecemos suporte à autenticação com o token de acesso pessoal do GitLab. O GitLab Personal Access Token funciona com autenticação de dois fatores e permite que os usuários escolham o escopo e a política de expiração. Basta adicionar seu token de acesso pessoal ao arquivo .nprmrc
e entrar no registro do GitLab NPM para publicar e baixar pacotes.
Lista de usuários estrelando um projeto
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Para acompanhar projetos dignos, você pode marcá-los com uma estrela . Graças às informações da comunidade, agora você pode ver uma lista de usuários que marcaram um projeto específico. Para fazer isso, clique no número de usuários na página do projeto. A lista também está disponível na API de projetos .
Projetos marcados podem ser visualizados no perfil do usuário .
Obrigado pela contribuição, Camil Staps !

Os mantenedores podem criar subgrupos
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Em grandes organizações que precisam de flexibilidade, os subgrupos ajudam a manter a ordem em uma instância crescente. Agora, os proprietários podem permitir que os mantenedores criem subgrupos. Com essa opção, os mantenedores do grupo poderão agir de forma rápida e independente, sem recorrer aos proprietários do grupo para obter ajuda.
Obrigado pela contribuição, Fabio Papa !

Novas opções de envio para solicitações de mesclagem
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
O GitLab já suporta a abertura de solicitações de mesclagem e a personalização de seus aplicativos após a conclusão bem-sucedida do pipeline - e isso é tudo na equipe de push do Git. Agora, a aplicação de pequenas alterações é rápida e fácil.
O GitLab 12.2 lançou novas opções de envio:
- Configure a exclusão da ramificação após a mesclagem.
- Altere o título da solicitação de mesclagem.
- Altere a descrição da solicitação de mesclagem.
Implementação aprimorada do arquivo diff
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Ao visualizar um arquivo diff, a maioria das linhas fica oculta sem alterações, para que as alterações sejam imediatamente visíveis. Mas às vezes você precisa de mais contexto.
No GitLab 12.2, os intervalos de linhas ocultas podem ser abertos completa ou gradualmente. Anteriormente, os intervalos de linhas ocultas só podiam ser abertos gradualmente, na parte inferior do intervalo.

Atalhos de tarefas de edição em lote no nível do grupo
PREMIUM, ULTIMATE, PRATA, OURO
Os usuários podem alterar os atalhos de muitas tarefas simultaneamente em um projeto. O GitLab 12.2 apresenta a capacidade de editar atalhos de edição em lote para muitas tarefas no nível do grupo, para facilitar o gerenciamento dos atalhos.
Atribuindo grupos como proprietários de código
PARTIDA, PREMIUM, ULTIMATE, BRONZE, SILVERGOLD
Muitas vezes, não é óbvio quem deve verificar se há alterações. Será mais fácil se você atribuir proprietários de código aos arquivos. Após o compromisso, você vê os proprietários ao visualizar o arquivo e os adiciona automaticamente como aprovadores das solicitações de mesclagem.
No GitLab 12.2, agora você pode atribuir grupos inteiros aos proprietários do código, não apenas aos usuários pelo nome no GitLab e no email. Se você atribuir um grupo, os proprietários do código não serão deixados para trás em caso de alterações na equipe, especialmente ao usar o LDAP para gerenciar participações em grupos.
API Git Blame
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
É útil saber quem alterou a linha de código pela última vez e por quê, para fazer alterações subseqüentes e entender de quem pedir feedback. Com a equipe de blame
do Git, é fácil encontrar essas informações.
No GitLab 12.2, a nova API Blame recupera essas informações diretamente do GitLab, não através do repositório. Isso é útil para scripts e automação com base em usuários que alteraram recentemente um arquivo.
Obrigado Oleg Zubchenko por sua contribuição .
Downloads de gerenciamento de design
PREMIUM, ULTIMATE, PRATA, OURO
Designers e desenvolvedores agora podem trabalhar juntos em projetos na tarefa GitLab, graças à função de download para gerenciar o design no GitLab. Os desenhos podem ser carregados em uma nova área da tarefa para facilitar o rastreamento e a colaboração.
Controle de versão para projetos
PREMIUM, ULTIMATE, PRATA, OURO
No GitLab 12.2, apresentamos o controle de versão para projetos. Graças ao controle de versão, você pode visualizar facilmente as alterações ao longo do tempo e acompanhar essas alterações e o progresso.

Exclusão múltipla para registro de contêiner
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
É muito importante que você mantenha a ordem no registro de contêiner. Com o tempo, as imagens se acumulam e desorganizam o disco. Se houver muitas tags, o tempo de carregamento da página de gerenciamento de registro de contêiner em Pacotes> Registro de Contêiner é aumentado e pode ser difícil de usar.
Anteriormente, havia apenas algumas opções de gerenciamento de registro, todas com suas próprias falhas. Você pode usar a API de remoção de tags em massa e a coleta de lixo para automatizar a limpeza, mas para isso você precisa escrever e manter um script. Também foi possível remover manualmente imagens e tags da página de controle, mas isso leva muito tempo, pois é necessário excluir um de cada vez.
Agora a interface do GitLab permite que você arrume manualmente muito mais rápido. Selecione várias tags ao mesmo tempo e, se você selecionar uma imagem, todas as tags associadas a ela serão selecionadas automaticamente. A manutenção do registro agora será mais fácil e você economizará em armazenamento e manterá o desempenho da página. Temos o prazer de apresentar essa adição no registro de contêineres e estamos preparando coisas novas e convenientes. Não perca aprimoramentos futuros, como a capacidade de personalizar políticas de retenção e datas de validade .

Lista de tarefas manual
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Organizar uma grande lista de tarefas não é fácil - você precisa especificar a prioridade e a ordem da implementação, por exemplo, para limpar a lista de pendências.
Na liberação 12.2, você pode classificar a lista de tarefas manualmente no modo Manual , onde você pode arrastar e soltar tarefas na lista e organizá-las em qualquer ordem.
O pedido é salvo em toda a instância para todas as listas de tarefas do projeto e listas de tarefas dos grupos em que o modo Manual está ativado.

Namespace Kubernetes para cada ambiente
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
O uso de um único cluster Kubernetes para vários ambientes pode ser benéfico. Por exemplo, se um cluster for usado para desenvolvimento e preparo, os custos administrativos serão reduzidos, pois você precisará gerenciar apenas um cluster. E você pode economizar em infraestrutura - o Kubernetes planejará pods de ambos os ambientes em menos nós.
Anteriormente, o GitLab não suportava suficientemente esses cenários e todos os ambientes do projeto eram implantados no mesmo espaço para nome. Se você precisasse de permissões diferentes para cada ambiente (por exemplo, desejasse permitir que os engenheiros fossem implantados no ambiente de desenvolvimento, mas não na preparação), era necessário iniciar um cluster separado. A integração do GitLab Kubernetes agora usa um espaço de nome dedicado para cada ambiente de projeto, e você pode ajustar as permissões de cada ambiente para aproveitar totalmente os benefícios do uso de um único cluster para vários ambientes.
Os usuários do Kubernetes poderão usar o mesmo cluster para ambientes diferentes e não precisarão implantar todos os ambientes no mesmo espaço para nome. Além disso, os operadores podem configurar permissões para cada ambiente em detalhes, para que os usuários possam implantar em alguns ambientes, mas não em todos.
Desinstalar o Cert Manager dos aplicativos gerenciados do Kubernetes GitLab
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Se você instalou o Cert Manager em um cluster Kubernetes através do GitLab Kubernetes, agora poderá removê-lo com um clique na página do cluster.
Removendo o Helm dos aplicativos gerenciados pelo Kubernetes GitLab
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Se você instalou o Helm em um cluster Kubernetes através do GitLab Kubernetes, agora poderá removê-lo com um clique na página do cluster.
Removendo o Knative dos aplicativos gerenciados pelo Kubernetes GitLab
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Se você instalou o Knative em um cluster Kubernetes através do GitLab Kubernetes, agora poderá removê-lo com um clique na página do cluster.
Desativar notificações por email correio para um grupo ou projeto
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Agora, os proprietários podem desativar as notificações no nível do grupo ou do projeto , independentemente das configurações individuais do usuário.
Se você desativar as notificações no nível do grupo, isso afetará todos os subgrupos e projetos no grupo pai.
Filtrar projetos por nome ao importar do Bitbucket Server
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
A importação de projetos existentes do Bitbucket Server para o GitLab deve ser simples. Mas se houver milhares desses projetos, você será atormentado escolhendo repositórios Bitbucket.
Na versão 12.2, simplificamos essas migrações e apresentamos um filtro na página de importação do Bitbucket Server, onde você pode especificar os nomes dos repositórios que deseja importar. Temos o prazer de adicionar esse filtro a todos os importadores do projeto em versões futuras.

Arquivo de bloqueio que não permite várias instâncias do corredor no mesmo host
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
A execução de várias instâncias do gitlab-runner no mesmo host pode causar confusão e complicar a depuração. Não deve ser assim, portanto, apresentamos um arquivo de bloqueio que impedirá esse evento aleatório.
Exemplos aprimorados para separação automática de teste
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Já temos a palavra-chave paralela, com a qual você pode controlar e configurar flexivelmente testes paralelos (ou executar qualquer tarefa em paralelo em geral), mas o desenvolvedor precisa configurar muito e, às vezes, a lógica de separação é simplesmente duplicada. Existem soluções de código aberto, por exemplo, Test Boosters , que aprimoram esse processo e dividem a configuração de teste em vários arquivos, automatizando essa parte da instalação. Atualizamos a documentação da palavra-chave parallel
para tornar o processo mais óbvio e melhorar a eficiência do pipeline.
Melhor máscara de variáveis para caracteres @ e:
NÚCLEO, ARRANQUE, PREMIUM, FINAL, GRATUITO, BRONZE, PRATA, OURO
Adicionamos suporte para dois caracteres extras nas variáveis de mascaramento e agora o GitLab pode ocultar automaticamente mais segredos diferentes do que agora.
Atalhos e anotações para tarefas usando GFM em alertas de instâncias externas do Prometheus
ULTIMATE, GOLD
Se você possui uma instância do Prometheus gerenciada fora do GitLab, simplificamos a classificação e a atribuição de incidentes. Adicionamos o campo gitlab_incident_markdown onde o GitLab está procurando alertas. É exibido acima dos incidentes na seção Resumo . O GFM ( GitLab Flavored Markdown ) pode ser adicionado aos arquivos de configuração de alerta no AlertManager e usado para atribuir e marcar automaticamente as tarefas abertas pelos alertas.
Atalhos para tarefas abertas pelos alertas de incidentes do Prometheus
ULTIMATE, GOLD
Se você configurar um projeto para abrir tarefas de alerta do Prometheus, o atalho do incident
será aplicado automaticamente. Portanto, agora a equipe de resposta a incidentes poderá classificá-los facilmente nos painéis de tarefas e não precisará marcar manualmente as tarefas com base em incidentes e tarefas de um tipo diferente.
Métricas internas do Prometheus em tarefas
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
, . , , , . , , . , , , , .
, . , URL. URL , .
, . , , .

API
STARTER, PREMIUM, ULTIMATE
GitLab. GitLab.com note
, . , , . API , .
CSV- Prometheus
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
GitLab . , , , . GitLab CSV-, . CSV-.

ULTIMATE, GOLD
, . , .
, , , .

GitLab Runner 12.2
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
GitLab Runner 12.2! GitLab Runner — , CI/CD GitLab.
:
GitLab Runner: CHANGELOG .
GitLab
CORE, STARTER, PREMIUM, ULTIMATE
GitLab:
- — Kubernetes 1.11.
networkproxy
registry
.gitlab-shell
.- Postgres
gitlab-migrations
.
Omnibus
CORE, STARTER, PREMIUM, ULTIMATE
- GitLab 12.2 Mattermost 5.13 — Slack , , DevOps .
- GitLab 12.2 Unicorn , .
CPUs + 1
int(CPUs * 1.5 +1)
. - GitLab 12.2 Debian Buster .
nginx
1.16.1, TLS v1.3 ECDSA .postgresql
9.6.14 10.9.gitlab-monitor
4.2.0, graphicsmagick
— 1.3.33.- , Redis
KEYS
. . - JavaScript XSS-. .
CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD
GitLab GitLab .
GitLab 12.2:
Kubernetes
Kubernetes 12.2. , GitLab 11.11.
: 22 2019 .
Internal () GitLab.com , .
Internal , . , , innersource .
GitLab.com . Internal, Internal Public ( ) .
30 , (Public) (Private). Internal Private . .
: 30 2019 .
Ruby 2.6
GitLab 12.2 Ruby 2.6. Omnibus GitLab GitLab Chart Ruby 2.6.3, Ruby 2.5 .
: 22 2019 .
GitLab 12.2
, Grafana, Grafana , GitLab SSO .
cookie Rails , . cookie . 12.2 , , .
GitLab 12.0 GitLab 12.1, GitLab 12.2 PostgreSQL 10.7 .
PostreSQL 10.7, /etc/gitlab/disable-postgresql-upgrade
.
:
GitLab, GitLab .
.