[{"data":1,"prerenderedAt":817},["ShallowReactive",2],{"/pt-br/get-started/continuous-integration":3,"navigation-pt-br":203,"banner-pt-br":604,"footer-pt-br":614},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":196,"meta":197,"navigation":24,"path":198,"seo":199,"slug":6,"stem":201,"testContent":6,"type":6,"__hash__":202},"pages/pt-br/get-started/continuous-integration.yml","Continuous Integration",null,[8,18,25,153],{"type":9,"componentName":9,"componentContent":10},"CommonBreadcrumbs",{"crumbs":11},[12,16],{"title":13,"config":14},"Comece aqui",{"href":15},"/pt-br/get-started/",{"title":17},"Guia rápido para GitLab Continuous Integration",{"type":19,"componentName":19,"componentContent":20},"CommonArticleHero",{"title":17,"readTime":21,"text":22,"config":23},"20 min para completar","Bem-vindo ao guia rápido do GitLab CI, onde você será guiado através do processo de configurar um projeto no GitLab e criar uma configuração CI simples no código. Este guia permitirá que você inicie rapidamente sua jornada com o GitLab CI.\n\nAs seguintes tarefas serão apresentadas neste guia rápido:\n\n- Criar um novo projeto.\n- Elaborar sua configuração inicial de CI/CD e executar o pipeline.\n- Acessar e revisar os resultados da execução.\n- Introduzir condições baseadas em regras para determinar execuções de jobs.\n- Aproveitar o poder dos Pipeline Templates para integração perfeita de configurações benéficas.",{"bodyText":24},true,{"type":26,"componentName":26,"componentContent":27},"CommonSideNavigationWithTree",{"anchors":28,"components":59},{"text":29,"data":30},"Nesta página",[31,35,39,43,47,51,55],{"text":32,"config":33},"Passo 1: Criar um novo Projeto/Repositório",{"href":34},"#step-1",{"text":36,"config":37},"Passo 2: Configurar a CI",{"href":38},"#step-2",{"text":40,"config":41},"Passo 3 - Fazer commit da mudança e executar o pipeline",{"href":42},"#step-3",{"text":44,"config":45},"Passo 4 - Ver execução do pipeline e resultados dos testes",{"href":46},"#step-4",{"text":48,"config":49},"Passo 5 - Falhar o pipeline",{"href":50},"#step-5",{"text":52,"config":53},"Passo 6 - Implementar condições de falha em todo o pipeline",{"href":54},"#step-6",{"text":56,"config":57},"Passo 7 - Melhorar sua configuração com templates de pipeline integrados",{"href":58},"#step-7",[60,70],{"type":61,"componentName":61,"componentContent":62},"CommonCopy",{"config":63,"cards":64},{"noDecoration":24},[65],{"config":66,"title":68,"description":69},{"icon":67},"InfoTip","Antes de começar","Certifique-se de ter uma conta GitLab. Se você não tem, [cadastre-se aqui](https://gitlab.com/users/sign_up).",{"type":71,"componentName":71,"componentContent":72},"GetStartedAccordion",{"groups":73},[74,86,113,121,129,137,145],{"config":75,"header":32,"show":77,"hide":78,"items":79},{"id":76},"step-1","Mostrar tudo","Ocultar tudo",[80,83],{"header":81,"content":82},"Visão geral do passo","Dentro de um projeto, vários componentes como seu código, configuração de CI, planejamento, análises e membros da equipe são gerenciados. Neste guia, criaremos um novo projeto em branco, contendo apenas um arquivo readme.",{"header":84,"content":85},"Como fazer","* Crie um novo projeto clicando no ícone de mais no lado direito da barra superior e selecionando **Novo projeto/repositório**\n* Selecione **Criar projeto em branco**. Em `Nome do projeto` digite **my-project**.\n* Clique em **Criar projeto**.\n* Parabéns! Você criou com sucesso seu primeiro projeto.",{"config":87,"header":36,"show":77,"hide":78,"items":89},{"id":88},"step-2",[90,92,95,98,101,104,107,110],{"header":81,"content":91},"No GitLab, a configuração de CI é definida em código usando sintaxe YAML. Esta configuração especifica instruções para a máquina runner sobre execução de jobs, ordem dos jobs, condições dos jobs e muito mais. Para definir a configuração de CI, você precisa criar um arquivo chamado **.gitlab-ci.yml**, que deve estar localizado na raiz do seu repositório. Neste guia, utilizaremos o Web IDE para criar e editar este arquivo.",{"header":93,"content":94},"Criando o arquivo de configuração","Para acessar o Web IDE, simplesmente clique no botão rápido Web IDE localizado no seu projeto. Uma vez dentro do Web IDE, navegue até o explorador de arquivos no lado esquerdo. Clique com o botão direito dentro do explorador de arquivos e escolha a opção **Novo Arquivo**. Nomeie o arquivo recém-criado como **.gitlab-ci.yml**.",{"header":96,"content":97},"Definindo os estágios do Pipeline","A ordem de execução dos jobs é determinada pelos estágios definidos na configuração. Neste guia, definiremos três estágios: **build, test e package,** nesta ordem específica. Copie e cole o seguinte código no arquivo **.gitlab-ci.yml**:\n\n```yaml\n  stages:\n    - build\n    - test\n    - package\n```",{"header":99,"content":100},"Definindo os jobs do pipeline","Imagine um cenário onde você precisa criar dois arquivos de texto. É de extrema importância que a concatenação desses arquivos inclua a frase \"Hello world.\" Nosso objetivo é **construir**, **testar** e **empacotar** este requisito utilizando jobs de pipeline.",{"header":102,"content":103},"Definir um Build-Job","Especificaremos um job de build que realiza as seguintes tarefas: criar um arquivo de texto com a palavra \"Hello,\", criar outro arquivo de texto com a palavra \"World,\" e gerar um terceiro arquivo que armazena o conteúdo combinado dos dois arquivos. Salvaremos o terceiro arquivo como um artefato, para que jobs subsequentes nos estágios de test e package possam acessá-lo. Insira o código fornecido abaixo do bloco stages:\n\n```yaml\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n    paths:\n      - compiled.txt\n```",{"header":105,"content":106},"Definir um job de teste","Para validar a integridade do nosso build, incorporaremos um job de teste. Este job examinará se o arquivo **compiled.txt** realmente contém a frase esperada \"Hello world\". Insira o seguinte código abaixo do job de build:\n\n```yaml\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world '\n```",{"header":108,"content":109},"Definir um job de empacotamento","Após a conclusão bem-sucedida do teste, nosso próximo objetivo é gerar um pacote para nosso código. Para conseguir isso, incluiremos um job de empacotamento. É importante notar que se o teste falhar, todo o pipeline será considerado mal-sucedido e não prosseguirá. Insira o código fornecido abaixo do job de teste:\n\n```yaml\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```",{"header":111,"content":112},"Seu pipeline completo deve ficar assim","```yaml\n  stages:          # Lista de estágios para jobs e sua ordem de execução\n    - build\n    - test\n    - package\n\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n      paths:\n        - compiled.txt\n\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```\n\nAqui está um link para o [arquivo de configuração](https://gitlab.com/tech-marketing/ci-quickstart/-/blob/main/.gitlab-ci.yml) em nosso projeto de exemplo.\n\nParabéns!! Você construiu seu primeiro pipeline de CI.",{"config":114,"header":40,"show":77,"hide":78,"items":116},{"id":115},"step-3",[117,119],{"header":81,"content":118},"Para ativar a integração contínua (CI) dentro do nosso projeto, devemos fazer push do arquivo **.gitlab-ci.yml** para o repositório. Uma vez que este arquivo esteja localizado na raiz do repositório, cada commit feito no projeto iniciará automaticamente um pipeline de CI. O pipeline inicial começará imediatamente após fazer push deste arquivo para o servidor.",{"header":84,"content":120},"* Clique no ícone Merge localizado à esquerda do explorador de arquivos.\n* Forneça uma mensagem de commit como \"Adicionando configuração de CI.\"\n* Clique em **Commit & Push**.\n* Quando perguntado \"Fazer commit em um novo branch?\" selecione \"Não, usar o branch atual main\".\n* Para retornar ao seu projeto, clique no botão **Ir para o projeto** situado no lado inferior esquerdo.\n\n**Parabéns! Seu projeto agora está configurado com sucesso para iniciar automaticamente um pipeline de CI para cada commit de código.**",{"config":122,"header":44,"show":77,"hide":78,"items":124},{"id":123},"step-4",[125,127],{"header":81,"content":126},"Enquanto o pipeline está executando, você pode monitorar seu status na aba **CI/CD**. Este recurso permite que você acompanhe facilmente o progresso dos seus jobs, incluindo seu status de execução (como se eles iniciaram, passaram, falharam, etc.), bem como qualquer saída gerada pelos seus scripts de job.",{"header":84,"content":128},"* Navegue até o projeto GitLab e localize o menu à esquerda.\n* Clique em **CI/CD** no menu, clique em **Pipelines**.\n* Na página **Pipelines**, localize o botão do pipeline na coluna **Status**. Clique nele para abrir o gráfico do pipeline.\n* Agora, você pode observar os jobs e seus respectivos status dentro do gráfico do pipeline.\n* Para explorar um job específico, clique nele para abrir o console do job. Este console exibe todos os passos executados na máquina Runner.\n* Abra o console do job package para ver os passos que foram processados pelo runner.\n* O job package gera um artefato, você pode baixá-lo clicando no botão **download** localizado no lado direito.\n* Seguindo estes passos, você pode acompanhar efetivamente o status do pipeline, inspecionar detalhes dos jobs e recuperar quaisquer artefatos ou pacotes relevantes produzidos durante a execução do pipeline.\n\n**Parabéns por executar com sucesso seu primeiro pipeline. O pipeline foi bem-sucedido! Você agora visualizou os resultados e baixou o artefato do job.**",{"config":130,"header":48,"show":77,"hide":78,"items":132},{"id":131},"step-5",[133,135],{"header":81,"content":134},"Vamos alterar o valor esperado no job de teste, o job de teste falhará assim como todo o pipeline falhará.",{"header":84,"content":136},"* Edite o job **test** modificando a frase \"Hello World\" para \"hello world\" (com letras minúsculas).\n* Faça commit das mudanças no código e proceda para visualizar o pipeline, similar ao Passo 4.\n* Ao inspecionar o pipeline, você observará que o job de teste falhou. Além disso, o job **package** subsequente não iniciou, e o pipeline em si falhou como esperado.",{"config":138,"header":52,"show":77,"hide":78,"items":140},{"id":139},"step-6",[141,143],{"header":81,"content":142},"No passo 5 vimos que a falha do job fez todo o pipeline falhar. Você pode introduzir lógica no seu pipeline que determina quando uma falha de job causará a falha de todo o pipeline com os seguintes passos:\n\n* Avalie as condições sob as quais você quer que uma falha de job resulte em falha do pipeline. Por exemplo, você pode querer forçar a falha do pipeline se um job falhar no branch main ou padrão, enquanto permite que falhas de jobs em outros branches prossigam com o pipeline.\n* Defina regras que governam o comportamento de falha. Você pode aproveitar variáveis como $CI_COMMIT_BRANCH para verificar o branch atual e tomar decisões baseadas nele.\n* Configure as condições apropriadas e especifique se o job deve ser marcado como **allow_failure: false** ou **allow_failure: true**.",{"header":84,"content":144},"* Adicione condições rules/if ao seu job de teste.\n* Use a palavra-chave **allow_failure** definida como **true** ou **false** baseada no branch.\n\n```yaml\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n    rules:\n      - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH\n        allow_failure: false\n      - if: $CI_COMMIT_BRANCH\n        allow_failure: true\n```",{"config":146,"header":56,"show":77,"hide":78,"items":148},{"id":147},"step-7",[149,151],{"header":81,"content":150},"Para simplificar a configuração do pipeline, você pode aproveitar os templates de pipeline integrados fornecidos pelo GitLab. Estes templates oferecem configurações pré-definidas para casos de uso comuns, como verificações de segurança, deployments AWS, etc.\n\nSiga estes passos para utilizar os templates de pipeline integrados:\n\n* Explore os templates de pipeline disponíveis oferecidos pelo GitLab para vários cenários como build, teste, deploy e muito mais. Estes templates podem ser encontrados [aqui](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates).\n* Selecione o template que se alinha com seus requisitos.\n* Incorpore o template na sua configuração de pipeline referenciando-o no seu arquivo **.gitlab-ci.yml**. Você pode tipicamente fazer isso importando o template usando a palavra-chave **include** e especificando o caminho ou URL para o arquivo do template.\n\nNeste guia adicionaremos uma verificação de Code Quality à nossa configuração usando o template Code-Quality.",{"header":84,"content":152},"Inclua o template de qualidade de código no seu **.gitlab-ci.yml** adicionando este código abaixo do bloco stages.\n\n```yaml\n  include:\n    - template: Jobs/Code-Quality.gitlab-ci.yml\n```\n\nFaça commit e push desta mudança.\n\nVocê notará que um job Code quality foi adicionado ao seu pipeline. O scanner Code Quality analisará minuciosamente quaisquer mudanças de código commitadas neste repositório e fornecerá feedback valioso, destacando quaisquer problemas de qualidade de código que requerem atenção e melhoria. Esta percepção valiosa permite que você melhore a qualidade geral do seu código e otimize seu desempenho.\n\nÉ isso! Com estes passos, você deve conseguir começar com GitLab CI e automatizar os processos de build e teste do seu projeto.",{"type":154,"componentName":154,"componentContent":155},"CommonCardGrid",{"config":156,"title":159,"cards":160},{"columns":157,"theme":158},3,"purple","Próximos passos",[161,174,185],{"image":162,"title":166,"description":167,"button":168},{"altText":163,"config":164},"",{"src":165},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663568/tcmwpweaxyr0hsh4m2bf.png?","Quer aprender mais sobre GitLab CI?","Tenha uma introdução rápida ao GitLab CI neste vídeo informativo. Perfeito para iniciantes e aqueles que querem melhorar seu entendimento do GitLab CI.",{"text":169,"config":170},"Demo visão geral CI",{"href":171,"dataGaName":172,"dataGaLocation":173},"https://youtu.be/WKR-7clknsA","CI overview demo","body",{"image":175,"title":178,"description":179,"button":180},{"altText":163,"config":176},{"src":177},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663863/zgovjo3vv2ik0nbim6db.png?","Utilize Issues","GitLab Issues são usadas para rastrear e gerenciar tarefas, bugs ou solicitações de recursos dentro de um projeto. Elas fornecem um local centralizado para colaboração para discutir, atribuir e acompanhar o progresso dos itens de trabalho.",{"text":181,"config":182},"Issues",{"href":183,"dataGaName":184,"dataGaLocation":173},"https://docs.gitlab.com/ee/user/project/issues/","issues",{"image":186,"title":189,"description":190,"button":191},{"altText":163,"config":187},{"src":188},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663742/ggf3qelfxf5bjjopwagh.png?","Adicione verificações de segurança ao seu pipeline","Com as verificações de segurança integradas do GitLab, você pode facilmente incorporá-las na sua configuração de CI. Isso garante que os desenvolvedores recebam feedback instantâneo sobre quaisquer riscos potenciais em suas mudanças de código.",{"text":192,"config":193},"Segurança de aplicações",{"href":194,"dataGaName":195,"dataGaLocation":173},"/blog/getting-started-with-gitlab-application-security/","Application security","yml",{},"/pt-br/get-started/continuous-integration",{"title":17,"ogTitle":17,"description":200,"ogDescription":200},"Você será guiado através do processo de configurar um projeto no GitLab e criar uma configuração CI simples no código.","pt-br/get-started/continuous-integration","DHpZmPGRXM_8WD5OSJI5aAYtmQ18POvsLcWrmXxtSFE",{"data":204},{"logo":205,"freeTrial":210,"sales":215,"login":220,"items":225,"search":532,"minimal":567,"duo":585,"pricingDeployment":594},{"config":206},{"href":207,"dataGaName":208,"dataGaLocation":209},"/pt-br/","gitlab logo","header",{"text":211,"config":212},"Faça uma avaliação gratuita",{"href":213,"dataGaName":214,"dataGaLocation":209},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/pt-br&glm_content=default-saas-trial/","free trial",{"text":216,"config":217},"Fale com a equipe de vendas",{"href":218,"dataGaName":219,"dataGaLocation":209},"/pt-br/sales/","sales",{"text":221,"config":222},"Fazer login",{"href":223,"dataGaName":224,"dataGaLocation":209},"https://gitlab.com/users/sign_in/","sign in",[226,253,349,354,453,513],{"text":227,"config":228,"cards":230},"Plataforma",{"dataNavLevelOne":229},"platform",[231,237,245],{"title":227,"description":232,"link":233},"A plataforma de orquestração inteligente para DevSecOps",{"text":234,"config":235},"Explore a nossa plataforma",{"href":236,"dataGaName":229,"dataGaLocation":209},"/pt-br/platform/",{"title":238,"description":239,"link":240},"GitLab Duo Agent Platform","IA agentiva para todo o ciclo de vida do software",{"text":241,"config":242},"Conheça o GitLab Duo",{"href":243,"dataGaName":244,"dataGaLocation":209},"/pt-br/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":246,"description":247,"link":248},"Por que usar o GitLab","Veja os principais motivos pelos quais as empresas escolhem o GitLab",{"text":249,"config":250},"Saiba mais",{"href":251,"dataGaName":252,"dataGaLocation":209},"/pt-br/why-gitlab/","why gitlab",{"text":254,"left":24,"config":255,"link":257,"lists":261,"footer":331},"Produtos",{"dataNavLevelOne":256},"solutions",{"text":258,"config":259},"Confira todas as soluções",{"href":260,"dataGaName":256,"dataGaLocation":209},"/pt-br/solutions/",[262,287,309],{"title":263,"description":264,"link":265,"items":270},"Automação","CI/CD e automação para acelerar a implantação",{"config":266},{"icon":267,"href":268,"dataGaName":269,"dataGaLocation":209},"AutomatedCodeAlt","/pt-br/solutions/delivery-automation/","automated software delivery",[271,275,278,283],{"text":272,"config":273},"CI/CD",{"href":274,"dataGaLocation":209,"dataGaName":272},"/pt-br/solutions/continuous-integration/",{"text":238,"config":276},{"href":243,"dataGaLocation":209,"dataGaName":277},"gitlab duo agent platform - product menu",{"text":279,"config":280},"Gerenciamento de código-fonte",{"href":281,"dataGaLocation":209,"dataGaName":282},"/pt-br/solutions/source-code-management/","Source Code Management",{"text":284,"config":285},"Entrega de software automatizada",{"href":268,"dataGaLocation":209,"dataGaName":286},"Automated software delivery",{"title":288,"description":289,"link":290,"items":295},"Segurança","Acelere a entrega de código sem comprometer a segurança",{"config":291},{"href":292,"dataGaName":293,"dataGaLocation":209,"icon":294},"/pt-br/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[296,300,305],{"text":297,"config":298},"Application Security Testing",{"href":292,"dataGaName":299,"dataGaLocation":209},"Application security testing",{"text":301,"config":302},"Segurança da cadeia de suprimentos de software",{"href":303,"dataGaLocation":209,"dataGaName":304},"/pt-br/solutions/supply-chain/","Software supply chain security",{"text":306,"config":307},"Software Compliance",{"href":308,"dataGaName":306,"dataGaLocation":209},"/pt-br/solutions/software-compliance/",{"title":310,"link":311,"items":316},"Medição",{"config":312},{"icon":313,"href":314,"dataGaName":315,"dataGaLocation":209},"DigitalTransformation","/pt-br/solutions/visibility-measurement/","visibility and measurement",[317,321,326],{"text":318,"config":319},"Visibilidade e medição",{"href":314,"dataGaLocation":209,"dataGaName":320},"Visibility and Measurement",{"text":322,"config":323},"Gestão de fluxo de valor",{"href":324,"dataGaLocation":209,"dataGaName":325},"/pt-br/solutions/value-stream-management/","Value Stream Management",{"text":327,"config":328},"Análises e insights",{"href":329,"dataGaLocation":209,"dataGaName":330},"/pt-br/solutions/analytics-and-insights/","Analytics and insights",{"title":332,"items":333},"GitLab para",[334,339,344],{"text":335,"config":336},"Grandes empresas",{"href":337,"dataGaLocation":209,"dataGaName":338},"/pt-br/enterprise/","enterprise",{"text":340,"config":341},"Pequenas empresas",{"href":342,"dataGaLocation":209,"dataGaName":343},"/pt-br/small-business/","small business",{"text":345,"config":346},"Setor público",{"href":347,"dataGaLocation":209,"dataGaName":348},"/pt-br/solutions/public-sector/","public sector",{"text":350,"config":351},"Preços",{"href":352,"dataGaName":353,"dataGaLocation":209,"dataNavLevelOne":353},"/pt-br/pricing/","pricing",{"text":355,"config":356,"link":358,"lists":362,"feature":440},"Recursos",{"dataNavLevelOne":357},"resources",{"text":359,"config":360},"Confira todos os recursos",{"href":361,"dataGaName":357,"dataGaLocation":209},"/pt-br/resources/",[363,394,412],{"title":364,"items":365},"Primeiros passos",[366,371,375,379,384,389],{"text":367,"config":368},"Instalação",{"href":369,"dataGaName":370,"dataGaLocation":209},"/pt-br/install/","install",{"text":372,"config":373},"Guias de início rápido",{"href":15,"dataGaName":374,"dataGaLocation":209},"quick setup checklists",{"text":249,"config":376},{"href":377,"dataGaLocation":209,"dataGaName":378},"https://university.gitlab.com/","learn",{"text":380,"config":381},"Documentação do produto",{"href":382,"dataGaName":383,"dataGaLocation":209},"https://docs.gitlab.com/","product documentation",{"text":385,"config":386},"Vídeos de melhores práticas",{"href":387,"dataGaName":388,"dataGaLocation":209},"/pt-br/getting-started-videos/","best practice videos",{"text":390,"config":391},"Integrações",{"href":392,"dataGaName":393,"dataGaLocation":209},"/pt-br/integrations/","integrations",{"title":395,"items":396},"Descubra",[397,402,407],{"text":398,"config":399},"Histórias de sucesso de clientes",{"href":400,"dataGaName":401,"dataGaLocation":209},"/pt-br/customers/","customer success stories",{"text":403,"config":404},"Blog",{"href":405,"dataGaName":406,"dataGaLocation":209},"/blog/","blog",{"text":408,"config":409},"Trabalho remoto",{"href":410,"dataGaName":411,"dataGaLocation":209},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":413,"items":414},"Conecte-se",[415,420,425,430,435],{"text":416,"config":417},"Serviços do GitLab",{"href":418,"dataGaName":419,"dataGaLocation":209},"/pt-br/services/","services",{"text":421,"config":422},"Comunidade",{"href":423,"dataGaName":424,"dataGaLocation":209},"/community/","community",{"text":426,"config":427},"Fórum",{"href":428,"dataGaName":429,"dataGaLocation":209},"https://forum.gitlab.com/","forum",{"text":431,"config":432},"Eventos",{"href":433,"dataGaName":434,"dataGaLocation":209},"/events/","events",{"text":436,"config":437},"Parceiros",{"href":438,"dataGaName":439,"dataGaLocation":209},"/pt-br/partners/","partners",{"backgroundColor":441,"textColor":442,"text":443,"image":444,"link":448},"#2f2a6b","#fff","Insights para o futuro do desenvolvimento de software",{"altText":445,"config":446},"cartão promocional do The Source",{"src":447},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":449,"config":450},"Confira as novidades",{"href":451,"dataGaName":452,"dataGaLocation":209},"/pt-br/the-source/","the source",{"text":454,"config":455,"lists":457},"Empresa",{"dataNavLevelOne":456},"company",[458],{"items":459},[460,465,471,473,478,483,488,493,498,503,508],{"text":461,"config":462},"Sobre",{"href":463,"dataGaName":464,"dataGaLocation":209},"/pt-br/company/","about",{"text":466,"config":467,"footerGa":470},"Vagas",{"href":468,"dataGaName":469,"dataGaLocation":209},"/jobs/","jobs",{"dataGaName":469},{"text":431,"config":472},{"href":433,"dataGaName":434,"dataGaLocation":209},{"text":474,"config":475},"Liderança",{"href":476,"dataGaName":477,"dataGaLocation":209},"/company/team/e-group/","leadership",{"text":479,"config":480},"Equipe",{"href":481,"dataGaName":482,"dataGaLocation":209},"/company/team/","team",{"text":484,"config":485},"Manual",{"href":486,"dataGaName":487,"dataGaLocation":209},"https://handbook.gitlab.com/","handbook",{"text":489,"config":490},"Relacionamento com investidores",{"href":491,"dataGaName":492,"dataGaLocation":209},"https://ir.gitlab.com/","investor relations",{"text":494,"config":495},"Trust Center",{"href":496,"dataGaName":497,"dataGaLocation":209},"/pt-br/security/","trust center",{"text":499,"config":500},"AI Transparency Center",{"href":501,"dataGaName":502,"dataGaLocation":209},"/pt-br/ai-transparency-center/","ai transparency center",{"text":504,"config":505},"Boletim informativo",{"href":506,"dataGaName":507,"dataGaLocation":209},"/company/contact/#contact-forms","newsletter",{"text":509,"config":510},"Imprensa",{"href":511,"dataGaName":512,"dataGaLocation":209},"/press/","press",{"text":514,"config":515,"lists":516},"Fale com a gente",{"dataNavLevelOne":456},[517],{"items":518},[519,522,527],{"text":216,"config":520},{"href":218,"dataGaName":521,"dataGaLocation":209},"talk to sales",{"text":523,"config":524},"Portal de suporte",{"href":525,"dataGaName":526,"dataGaLocation":209},"https://support.gitlab.com","support portal",{"text":528,"config":529},"Portal de clientes",{"href":530,"dataGaName":531,"dataGaLocation":209},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":533,"login":534,"suggestions":541},"Fechar",{"text":535,"link":536},"Para pesquisar repositórios e projetos, faça login em",{"text":537,"config":538},"gitlab.com",{"href":223,"dataGaName":539,"dataGaLocation":540},"search login","search",{"text":542,"default":543},"Sugestões",[544,546,551,553,558,563],{"text":238,"config":545},{"href":243,"dataGaName":238,"dataGaLocation":540},{"text":547,"config":548},"Sugestões de Código (IA)",{"href":549,"dataGaName":550,"dataGaLocation":540},"/pt-br/solutions/code-suggestions/","Code Suggestions (AI)",{"text":272,"config":552},{"href":274,"dataGaName":272,"dataGaLocation":540},{"text":554,"config":555},"GitLab na AWS",{"href":556,"dataGaName":557,"dataGaLocation":540},"/pt-br/partners/technology-partners/aws/","GitLab on AWS",{"text":559,"config":560},"GitLab no Google Cloud",{"href":561,"dataGaName":562,"dataGaLocation":540},"/pt-br/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":564,"config":565},"Por que escolher o GitLab?",{"href":251,"dataGaName":566,"dataGaLocation":540},"Why GitLab?",{"freeTrial":568,"mobileIcon":573,"desktopIcon":578,"secondaryButton":581},{"text":569,"config":570},"Iniciar avaliação gratuita",{"href":571,"dataGaName":214,"dataGaLocation":572},"https://gitlab.com/-/trials/new/","nav",{"altText":574,"config":575},"Ícone do GitLab",{"src":576,"dataGaName":577,"dataGaLocation":572},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":574,"config":579},{"src":580,"dataGaName":577,"dataGaLocation":572},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":364,"config":582},{"href":583,"dataGaName":584,"dataGaLocation":572},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/pt-br/get-started/","get started",{"freeTrial":586,"mobileIcon":590,"desktopIcon":592},{"text":587,"config":588},"Saiba mais sobre o GitLab Duo",{"href":243,"dataGaName":589,"dataGaLocation":572},"gitlab duo",{"altText":574,"config":591},{"src":576,"dataGaName":577,"dataGaLocation":572},{"altText":574,"config":593},{"src":580,"dataGaName":577,"dataGaLocation":572},{"freeTrial":595,"mobileIcon":600,"desktopIcon":602},{"text":596,"config":597},"Voltar para preços",{"href":352,"dataGaName":598,"dataGaLocation":572,"icon":599},"back to pricing","GoBack",{"altText":574,"config":601},{"src":576,"dataGaName":577,"dataGaLocation":572},{"altText":574,"config":603},{"src":580,"dataGaName":577,"dataGaLocation":572},{"title":605,"button":606,"config":611},"Veja como a IA agêntica transforma a entrega de software",{"text":607,"config":608},"Assista ao GitLab Transcend agora",{"href":609,"dataGaName":610,"dataGaLocation":209},"/pt-br/events/transcend/virtual/","transcend event",{"layout":612,"icon":613,"disabled":24},"release","AiStar",{"data":615},{"text":616,"source":617,"edit":623,"contribute":628,"config":633,"items":638,"minimal":809},"Git é uma marca comercial da Software Freedom Conservancy e nosso uso do nome \"GitLab\" está sob licença",{"text":618,"config":619},"Acessar a origem da página",{"href":620,"dataGaName":621,"dataGaLocation":622},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":624,"config":625},"Editar esta página",{"href":626,"dataGaName":627,"dataGaLocation":622},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":629,"config":630},"Contribua",{"href":631,"dataGaName":632,"dataGaLocation":622},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":634,"facebook":635,"youtube":636,"linkedin":637},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[639,662,716,743,777],{"title":227,"links":640,"subMenu":645},[641],{"text":642,"config":643},"Plataforma DevSecOps",{"href":236,"dataGaName":644,"dataGaLocation":622},"devsecops platform",[646],{"title":350,"links":647},[648,652,657],{"text":649,"config":650},"Confira os planos",{"href":352,"dataGaName":651,"dataGaLocation":622},"view plans",{"text":653,"config":654},"Por que escolher o GitLab Premium?",{"href":655,"dataGaName":656,"dataGaLocation":622},"/pt-br/pricing/premium/","why premium",{"text":658,"config":659},"Por que escolher o GitLab Ultimate?",{"href":660,"dataGaName":661,"dataGaLocation":622},"/pt-br/pricing/ultimate/","why ultimate",{"title":663,"links":664},"Soluções",[665,670,673,675,680,685,689,692,695,700,702,704,706,711],{"text":666,"config":667},"Transformação digital",{"href":668,"dataGaName":669,"dataGaLocation":622},"/pt-br/topics/digital-transformation/","digital transformation",{"text":671,"config":672},"Segurança e conformidade",{"href":292,"dataGaName":299,"dataGaLocation":622},{"text":284,"config":674},{"href":268,"dataGaName":269,"dataGaLocation":622},{"text":676,"config":677},"Desenvolvimento ágil",{"href":678,"dataGaName":679,"dataGaLocation":622},"/pt-br/solutions/agile-delivery/","agile delivery",{"text":681,"config":682},"Migração para a nuvem",{"href":683,"dataGaName":684,"dataGaLocation":622},"/pt-br/topics/cloud-native/","cloud transformation",{"text":686,"config":687},"SCM",{"href":281,"dataGaName":688,"dataGaLocation":622},"source code management",{"text":272,"config":690},{"href":274,"dataGaName":691,"dataGaLocation":622},"continuous integration & delivery",{"text":322,"config":693},{"href":324,"dataGaName":694,"dataGaLocation":622},"value stream management",{"text":696,"config":697},"GitOps",{"href":698,"dataGaName":699,"dataGaLocation":622},"/pt-br/solutions/gitops/","gitops",{"text":335,"config":701},{"href":337,"dataGaName":338,"dataGaLocation":622},{"text":340,"config":703},{"href":342,"dataGaName":343,"dataGaLocation":622},{"text":345,"config":705},{"href":347,"dataGaName":348,"dataGaLocation":622},{"text":707,"config":708},"Educação",{"href":709,"dataGaName":710,"dataGaLocation":622},"/pt-br/solutions/education/","education",{"text":712,"config":713},"Serviços financeiros",{"href":714,"dataGaName":715,"dataGaLocation":622},"/pt-br/solutions/finance/","financial services",{"title":355,"links":717},[718,720,722,724,727,729,731,733,735,737,739,741],{"text":367,"config":719},{"href":369,"dataGaName":370,"dataGaLocation":622},{"text":372,"config":721},{"href":15,"dataGaName":374,"dataGaLocation":622},{"text":249,"config":723},{"href":377,"dataGaName":378,"dataGaLocation":622},{"text":380,"config":725},{"href":382,"dataGaName":726,"dataGaLocation":622},"docs",{"text":403,"config":728},{"href":405,"dataGaName":406,"dataGaLocation":622},{"text":398,"config":730},{"href":400,"dataGaName":401,"dataGaLocation":622},{"text":408,"config":732},{"href":410,"dataGaName":411,"dataGaLocation":622},{"text":416,"config":734},{"href":418,"dataGaName":419,"dataGaLocation":622},{"text":421,"config":736},{"href":423,"dataGaName":424,"dataGaLocation":622},{"text":426,"config":738},{"href":428,"dataGaName":429,"dataGaLocation":622},{"text":431,"config":740},{"href":433,"dataGaName":434,"dataGaLocation":622},{"text":436,"config":742},{"href":438,"dataGaName":439,"dataGaLocation":622},{"title":454,"links":744},[745,747,749,751,753,755,757,761,766,768,770,772],{"text":461,"config":746},{"href":463,"dataGaName":456,"dataGaLocation":622},{"text":466,"config":748},{"href":468,"dataGaName":469,"dataGaLocation":622},{"text":474,"config":750},{"href":476,"dataGaName":477,"dataGaLocation":622},{"text":479,"config":752},{"href":481,"dataGaName":482,"dataGaLocation":622},{"text":484,"config":754},{"href":486,"dataGaName":487,"dataGaLocation":622},{"text":489,"config":756},{"href":491,"dataGaName":492,"dataGaLocation":622},{"text":758,"config":759},"Sustainability",{"href":760,"dataGaName":758,"dataGaLocation":622},"/sustainability/",{"text":762,"config":763},"Diversidade, inclusão e pertencimento (DIB)",{"href":764,"dataGaName":765,"dataGaLocation":622},"/pt-br/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":494,"config":767},{"href":496,"dataGaName":497,"dataGaLocation":622},{"text":504,"config":769},{"href":506,"dataGaName":507,"dataGaLocation":622},{"text":509,"config":771},{"href":511,"dataGaName":512,"dataGaLocation":622},{"text":773,"config":774},"Declaração de Transparência da Lei da Escravidão Moderna",{"href":775,"dataGaName":776,"dataGaLocation":622},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":514,"links":778},[779,782,787,789,794,799,804],{"text":780,"config":781},"Fale com um especialista",{"href":218,"dataGaName":219,"dataGaLocation":622},{"text":783,"config":784},"Ajuda",{"href":785,"dataGaName":786,"dataGaLocation":622},"https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support","get help",{"text":528,"config":788},{"href":530,"dataGaName":531,"dataGaLocation":622},{"text":790,"config":791},"Status",{"href":792,"dataGaName":793,"dataGaLocation":622},"https://status.gitlab.com/","status",{"text":795,"config":796},"Termos de uso",{"href":797,"dataGaName":798,"dataGaLocation":622},"/terms/","terms of use",{"text":800,"config":801},"Aviso de Privacidade",{"href":802,"dataGaName":803,"dataGaLocation":622},"/pt-br/privacy/","privacy statement",{"text":805,"config":806},"Preferências de cookies",{"dataGaName":807,"dataGaLocation":622,"id":808,"isOneTrustButton":24},"cookie preferences","ot-sdk-btn",{"items":810},[811,813,815],{"text":795,"config":812},{"href":797,"dataGaName":798,"dataGaLocation":622},{"text":800,"config":814},{"href":802,"dataGaName":803,"dataGaLocation":622},{"text":805,"config":816},{"dataGaName":807,"dataGaLocation":622,"id":808,"isOneTrustButton":24},1776436887960]