[{"data":1,"prerenderedAt":863},["ShallowReactive",2],{"/it-it/topics/ci-cd/continuous-integration-best-practices":3,"navigation-it-it":173,"banner-it-it":604,"footer-it-it":612,"next-steps-it-it":853},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":165,"meta":166,"navigation":167,"path":168,"seo":169,"slug":6,"stem":171,"testContent":6,"type":6,"__hash__":172},"pages/it-it/topics/ci-cd/continuous-integration-best-practices/index.yml","",null,[8,22,30,110,163],{"type":9,"componentName":9,"componentContent":10},"CommonBreadcrumbs",{"crumbs":11},[12,16,20],{"title":13,"config":14},"Industry topics",{"href":15},"/it-it/topics/",{"title":17,"config":18},"CI/CD",{"href":19},"/it-it/topics/ci-cd/",{"title":21},"Continuous integration best practices",{"type":23,"componentName":23,"componentContent":24},"CommonArticleHero",{"title":25,"text":26,"config":27},"Best practice per l'integrazione continua","L'[integrazione continua (CI)](/topics/ci-cd/) aiuta i team di sviluppo a essere più produttivi e a migliorare la qualità complessiva del codice. Tuttavia, l'implementazione della CI è solo uno dei passi che portano a deploy più rapidi. Per ottenere il massimo dal tuo sistema CI, è importante inserire nel flusso di lavoro le best practice per l'integrazione continua.\n",{"id":28,"twoColumns":29},"best-practice-per-l'integrazione-continua",false,{"type":31,"componentName":31,"componentContent":32},"CommonSideNavigationWithTree",{"anchors":33,"components":68},{"text":34,"data":35},"On this page",[36,40,44,48,52,56,60,64],{"text":37,"config":38},"Best practice per la CI: effettua commit subito e spesso",{"href":39},"#ci-best-practice-commit-early-commit-often",{"text":41,"config":42},"Best practice per la CI: leggere la documentazione (e poi rileggerla nuovamente)",{"href":43},"#ci-best-practice-read-the-documentation-and-then-read-it-again",{"text":45,"config":46},"Best practice per la CI: ottimizzare gli stage della pipeline",{"href":47},"#ci-best-practice-optimize-pipeline-stages",{"text":49,"config":50},"Best practice per la CI: creare build semplici e veloci",{"href":51},"#ci-best-practice-make-builds-fast-and-simple",{"text":53,"config":54},"Best practice per la CI: utilizzare gli errori per migliorare i processi",{"href":55},"#ci-best-practice-use-failures-to-improve-processes",{"text":57,"config":58},"Best practice per la CI: l'ambiente di test deve rispecchiare la produzione",{"href":59},"#ci-best-practice-test-environment-should-mirror-production",{"text":61,"config":62},"Scopri le best practice per la CI di GitLab",{"href":63},"#learn-about-best-practices-with-git-lab-ci",{"text":65,"config":66},"Conclusioni",{"href":67},"#conclusion",[69,75,80,85,90,95,100,105],{"type":70,"componentName":70,"componentContent":71},"TopicsCopy",{"header":37,"text":72,"config":73},"Come regola generale, è molto più facile risolvere problemi piccoli piuttosto che grandi. Uno dei maggiori vantaggi dell'integrazione continua è l'integrazione del codice in un repository condiviso che permette di applicare modifiche apportate simultaneamente. Se un team di sviluppo esegue il commit delle modifiche al codice presto e spesso, è più facile individuare i bug perché la quantità di codice da revisionare sarà minore.\n\nEseguendo i test in piccoli lotti, la qualità del codice viene migliorata e i team possono iterare in modo più efficace.\n",{"id":74},"ci-best-practice-commit-early-commit-often",{"type":70,"componentName":70,"componentContent":76},{"header":41,"text":77,"config":78},"I sistemi di integrazione continua rendono la documentazione ampiamente disponibile e questa può risultare molto utile anche dopo aver implementato la CI nel flusso di lavoro. In GitLab, disponiamo di una [documentazione CI/CD](https://docs.gitlab.com/ci/) completa, che viene aggiornata frequentemente per riflettere i processi più recenti.\n\nPuò essere utile fare riferimento alla documentazione nei file README o in altri formati accessibili. Invita i membri del team a leggere prima la documentazione, aggiungi link ai segnalibri, crea documenti di domande frequenti e incorpora queste risorse nel processo di onboarding dei nuovi membri del team.\n",{"id":79},"ci-best-practice-read-the-documentation-and-then-read-it-again",{"type":70,"componentName":70,"componentContent":81},{"header":45,"text":82,"config":83},"Le [pipeline CI](https://about.gitlab.com/topics/ci-cd/cicd-pipeline/) contengono job e stage: i job sono le attività che si svolgono all'interno di uno stage specifico e, una volta passati tutti i job, il codice si sposta alla fase successiva. Per ottenere il massimo dalle pipeline CI, ottimizza gli stage in modo che sia più semplice individuare e correggere gli errori.\n\nGli stage sono un modo semplice per organizzare job simili, ma potrebbero esserci alcuni job nella pipeline eseguibili in maniera sicura in uno stage precedente, senza che ciò influisca negativamente sul progetto nel caso in cui dovessero fallire. Prendi in considerazione l'esecuzione di questi job in uno stage precedente per [accelerare le pipeline CI](https://about.gitlab.com/blog/guide-to-ci-cd-pipelines/).\n",{"id":84},"ci-best-practice-optimize-pipeline-stages",{"type":70,"componentName":70,"componentContent":86},{"header":49,"text":87,"config":88},"Non c'è niente che rallenti una pipeline più della sua complessità. Cerca di mantenere le build veloci: il miglior modo per farlo è renderle il più semplici possibile.\n\nOgni minuto tolto in fase di creazione della build è un minuto risparmiato ad ogni commit degli sviluppatori. Poiché la CI richiede commit frequenti, questo tempo risparmiato si somma. Secondo Martin Fowler, una [build può essere creata in dieci minuti](https://martinfowler.com/articles/continuousIntegration.html): e questa indicazione è perseguibile nella maggior parte dei progetti odierni. Poiché l'integrazione continua richiede commit frequenti, risparmiare tempo in fase di commit può restituire agli sviluppatori molto tempo.\n",{"id":89},"ci-best-practice-make-builds-fast-and-simple",{"type":70,"componentName":70,"componentContent":91},{"header":53,"text":92,"config":93},"Il miglioramento è un processo. Quando i team cambiano il modo in cui [affrontano gli errori](https://opensource.com/article/20/5/cicd-best-practices), si crea un cambiamento culturale che porta a un miglioramento continuo. Invece di chiedere ***chi*** ha causato l'errore, chiedi ***cosa*** lo ha causato. Questo aiuta a passare da una cultura della colpevolizzazione ad una cultura dell'apprendimento.\n\nSe i team eseguono commit frequenti, diventa molto più facile individuare i problemi e risolverli. Se ci sono pattern ricorrenti nelle build non andate a buon fine, è bene analizzarne le cause. Ci sono errori non relativi al codice che innescano le build inutilmente? È possibile incorporare un [parametro](https://docs.gitlab.com/ci/yaml/#keywords) `allow_failure`. Cerca modi per migliorare continuamente, senza colpevolizzare nessuno per gli errori ma cercandone le cause.\n",{"id":94},"ci-best-practice-use-failures-to-improve-processes",{"type":70,"componentName":70,"componentContent":96},{"header":57,"text":97,"config":98},"Nell'integrazione continua, ogni commit attiva una build. Queste build eseguono quindi dei test per capire se l'introduzione di modifiche al codice sta generando anche degli errori. La [piramide di test](https://martinfowler.com/bliki/TestPyramid.html) è un modo per valutare il bilanciamento dei test.  Il test end-to-end viene utilizzato principalmente come salvaguardia, mentre i test unitari sono usati principalmente per individuare gli errori. Una cosa importante da tenere a mente durante i test è l'ambiente. Quando gli ambienti di test e produzione coincidono, gli sviluppatori possono fare affidamento sui risultati ed eseguire deployment in sicurezza.\n\nIn GitLab, [Review Apps](https://docs.gitlab.com/ci/review_apps/) consente di inserire il nuovo codice in un ambiente live simile a quello di produzione per visualizzarne le modifiche. Questa funzionalità aiuta gli sviluppatori a valutare l'impatto delle modifiche.\n\nL'integrazione continua consente di eseguire deployment più velocemente e di ricevere un feedback più tempestivamente. In definitiva, il miglior sistema di integrazione continua è quello che usi realmente. Trova [la CI giusta](https://about.gitlab.com/topics/ci-cd/choose-continuous-integration-tool/) per le tue esigenze e segui queste best practice per sfruttare al meglio il tuo nuovo flusso di lavoro CI.\n",{"id":99},"ci-best-practice-test-environment-should-mirror-production",{"type":70,"componentName":70,"componentContent":101},{"header":61,"text":102,"config":103},"\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube-nocookie.com/embed/jeCF-dUFaZY\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen>\u003C/iframe>\n",{"id":104},"learn-about-best-practices-with-git-lab-ci",{"type":70,"componentName":70,"componentContent":106},{"header":65,"text":107,"config":108},"Adottando le best practice illustrate, i team di sviluppo software, inclusi i team di platform engineering e i team di DevOps, possono migliorare le attività di integrazione continua, semplificando di conseguenza il processo di sviluppo e deployment. Man mano che queste pratiche diventano più radicate nell'ambiente di sviluppo, si perfeziona anche l'allineamento tra gli obiettivi del team tecnico e l'esecuzione operativa.\n\nRicorda che un sistema di integrazione continua efficace non è tale solo per gli strumenti, ma anche per il modo in cui questi vengono utilizzati dal team per stimolare il miglioramento e ottenere risultati rapidi e affidabili.\n",{"id":109},"conclusion",{"type":111,"componentName":111,"componentContent":112},"CommonResourcesContainer",{"header":113,"tabs":114},"Contenuti suggeriti",[115],{"name":116,"items":117,"config":162},"resources",[118,129,137,146,154],{"header":119,"type":120,"image":121,"link":124},"Grafici burn-down e burn-up","Articolo",{"altText":119,"config":122},{"src":123},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749158619/Website/Topics/resources_18.jpg",{"text":125,"config":126},"Scopri di più",{"href":127,"icon":128,"modal":29},"https://docs.gitlab.com/user/project/milestones/burndown_and_burnup_charts/","Article",{"header":130,"type":120,"image":131,"link":134},"Traguardi come sprint Agile",{"altText":130,"config":132},{"src":133},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749158268/Website/Topics/resources_5.jpg",{"text":125,"config":135},{"href":136,"icon":128,"modal":29},"https://docs.gitlab.com/user/project/milestones/#milestones-as-agile-sprints",{"header":138,"type":139,"image":140,"link":143},"Come utilizzare GitLab per lo sviluppo software Agile","Web",{"altText":138,"config":141},{"src":142},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749158430/Website/Topics/alteryx_case_study.jpg",{"text":125,"config":144},{"href":145,"icon":139,"modal":29},"/blog/gitlab-for-agile-software-development/",{"header":147,"type":139,"image":148,"link":151},"Come utilizzare GitLab per Agile, CI/CD, GitOps e altro",{"altText":147,"config":149},{"src":150},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749159329/Website/Topics/conversicaimage.jpg",{"text":125,"config":152},{"href":153,"icon":139,"modal":29},"/blog/gitlab-for-cicd-agile-gitops-cloudnative/",{"header":155,"type":139,"image":156,"link":159},"Come utilizzare GitLab per la pianificazione del portfolio Agile e la gestione dei progetti",{"altText":155,"config":157},{"src":158},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749158681/Website/Topics/agilemultipleteams.jpg",{"text":125,"config":160},{"href":161,"icon":139,"modal":29},"/blog/gitlab-for-agile-portfolio-planning-project-management/",{"key":116},{"type":164,"componentName":164},"CommonNextSteps","yml",{},true,"/it-it/topics/ci-cd/continuous-integration-best-practices",{"title":25,"description":170},"Scopri come ottimizzare il tuo flusso di lavoro con queste best practice per l'integrazione continua.","it-it/topics/ci-cd/continuous-integration-best-practices/index","YC0XquTSD8hdvO0mRhxcPKh9Cpr-ssJ6T32Nsb4agwk",{"logo":174,"freeTrial":179,"sales":184,"login":189,"items":194,"search":520,"minimal":555,"duo":574,"switchNav":583,"pricingDeployment":594},{"config":175},{"href":176,"dataGaName":177,"dataGaLocation":178},"/it-it/","gitlab logo","header",{"text":180,"config":181},"Ottieni una prova gratuita",{"href":182,"dataGaName":183,"dataGaLocation":178},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/it-it&glm_content=default-saas-trial/","free trial",{"text":185,"config":186},"Richiedi una demo",{"href":187,"dataGaName":188,"dataGaLocation":178},"/it-it/sales/?contact-topic=request-demo","sales",{"text":190,"config":191},"Accedi",{"href":192,"dataGaName":193,"dataGaLocation":178},"https://gitlab.com/users/sign_in/","sign in",[195,223,324,329,442,498],{"text":196,"config":197,"menu":199},"Piattaforma",{"dataNavLevelOne":198},"platform",{"type":200,"columns":201},"cards",[202,208,216],{"title":196,"description":203,"link":204},"La piattaforma di orchestrazione intelligente per DevSecOps",{"text":205,"config":206},"Esplora la nostra piattaforma",{"href":207,"dataGaName":198,"dataGaLocation":178},"/it-it/platform/",{"title":209,"description":210,"link":211},"GitLab Duo Agent Platform","L'IA agentica pensata per l'intero ciclo del software",{"text":212,"config":213},"Scopri GitLab Duo",{"href":214,"dataGaName":215,"dataGaLocation":178},"/it-it/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":217,"description":218,"link":219},"Perché scegliere GitLab","Scopri i motivi principali per cui le aziende scelgono GitLab",{"text":125,"config":220},{"href":221,"dataGaName":222,"dataGaLocation":178},"/it-it/why-gitlab/","why gitlab",{"text":224,"left":167,"config":225,"menu":227},"Prodotto",{"dataNavLevelOne":226},"solutions",{"type":228,"link":229,"columns":233,"feature":303},"lists",{"text":230,"config":231},"Vedi tutte le soluzioni",{"href":232,"dataGaName":226,"dataGaLocation":178},"/it-it/solutions/",[234,258,281],{"title":235,"description":236,"link":237,"items":242},"Automazione","CI/CD e automazione per accelerare il deployment",{"config":238},{"icon":239,"href":240,"dataGaName":241,"dataGaLocation":178},"AutomatedCodeAlt","/it-it/solutions/delivery-automation/","automated software delivery",[243,246,249,254],{"text":17,"config":244},{"href":245,"dataGaLocation":178,"dataGaName":17},"/it-it/solutions/continuous-integration/",{"text":209,"config":247},{"href":214,"dataGaLocation":178,"dataGaName":248},"gitlab duo agent platform - product menu",{"text":250,"config":251},"Gestione del codice sorgente",{"href":252,"dataGaLocation":178,"dataGaName":253},"/it-it/solutions/source-code-management/","Source Code Management",{"text":255,"config":256},"Distribuzione software automatizzata",{"href":240,"dataGaLocation":178,"dataGaName":257},"Automated software delivery",{"title":259,"description":260,"link":261,"items":266},"Sicurezza","Distribuisci il codice più rapidamente senza compromettere la sicurezza",{"config":262},{"href":263,"dataGaName":264,"dataGaLocation":178,"icon":265},"/it-it/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[267,271,276],{"text":268,"config":269},"Test di sicurezza delle applicazioni",{"href":263,"dataGaName":270,"dataGaLocation":178},"Application security testing",{"text":272,"config":273},"Sicurezza della catena di fornitura del software",{"href":274,"dataGaLocation":178,"dataGaName":275},"/it-it/solutions/supply-chain/","Software supply chain security",{"text":277,"config":278},"Conformità software",{"href":279,"dataGaName":280,"dataGaLocation":178},"/it-it/solutions/software-compliance/","software compliance",{"title":282,"link":283,"items":288},"Misurazione",{"config":284},{"icon":285,"href":286,"dataGaName":287,"dataGaLocation":178},"DigitalTransformation","/it-it/solutions/visibility-measurement/","visibility and measurement",[289,293,298],{"text":290,"config":291},"Visibilità e misurazione",{"href":286,"dataGaLocation":178,"dataGaName":292},"Visibility and Measurement",{"text":294,"config":295},"Gestione del flusso di valore",{"href":296,"dataGaLocation":178,"dataGaName":297},"/it-it/solutions/value-stream-management/","Value Stream Management",{"text":299,"config":300},"Analisi e approfondimenti",{"href":301,"dataGaLocation":178,"dataGaName":302},"/it-it/solutions/analytics-and-insights/","Analytics and insights",{"title":304,"type":228,"items":305},"GitLab per",[306,312,318],{"text":307,"config":308},"Aziende",{"icon":309,"href":310,"dataGaLocation":178,"dataGaName":311},"Building","/it-it/enterprise/","enterprise",{"text":313,"config":314},"Piccole imprese",{"icon":315,"href":316,"dataGaLocation":178,"dataGaName":317},"Work","/it-it/small-business/","small business",{"text":319,"config":320},"Pubblica amministrazione",{"icon":321,"href":322,"dataGaLocation":178,"dataGaName":323},"Organization","/it-it/solutions/public-sector/","public sector",{"text":325,"config":326},"Prezzi",{"href":327,"dataGaName":328,"dataGaLocation":178,"dataNavLevelOne":328},"/it-it/pricing/","pricing",{"text":330,"config":331,"menu":332},"Risorse",{"dataNavLevelOne":116},{"type":228,"link":333,"columns":337,"feature":431},{"text":334,"config":335},"Visualizza tutte le risorse",{"href":336,"dataGaName":116,"dataGaLocation":178},"/it-it/resources/",[338,371,398],{"title":339,"items":340},"Attività iniziali",[341,346,351,356,361,366],{"text":342,"config":343},"Installazione",{"href":344,"dataGaName":345,"dataGaLocation":178},"/it-it/install/","install",{"text":347,"config":348},"Guide rapide",{"href":349,"dataGaName":350,"dataGaLocation":178},"/it-it/get-started/","quick setup checklists",{"text":352,"config":353},"Formazione",{"href":354,"dataGaLocation":178,"dataGaName":355},"https://university.gitlab.com/","learn",{"text":357,"config":358},"Documentazione di prodotto",{"href":359,"dataGaName":360,"dataGaLocation":178},"https://docs.gitlab.com/","product documentation",{"text":362,"config":363},"Video sulle best practice",{"href":364,"dataGaName":365,"dataGaLocation":178},"/it-it/getting-started-videos/","best practice videos",{"text":367,"config":368},"Integrazioni",{"href":369,"dataGaName":370,"dataGaLocation":178},"/it-it/integrations/","integrations",{"title":372,"items":373},"Scopri",[374,379,384,389,393],{"text":375,"config":376},"Storie di successo dei clienti",{"href":377,"dataGaName":378,"dataGaLocation":178},"/it-it/customers/","customer success stories",{"text":380,"config":381},"Blog",{"href":382,"dataGaName":383,"dataGaLocation":178},"/blog/","blog",{"text":385,"config":386},"Hub delle demo",{"href":387,"dataGaName":388,"dataGaLocation":178},"/demo-hub/","demo hub",{"text":390,"config":391},"The Source",{"href":392,"dataGaName":383,"dataGaLocation":178},"/it-it/the-source/",{"text":394,"config":395},"Operatività da remoto",{"href":396,"dataGaName":397,"dataGaLocation":178},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":399,"items":400},"Collega",[401,406,411,416,421,426],{"text":402,"config":403},"Servizi GitLab",{"href":404,"dataGaName":405,"dataGaLocation":178},"/it-it/services/","services",{"text":407,"config":408},"Contribuisci",{"href":409,"dataGaName":410,"dataGaLocation":178},"https://contributors.gitlab.com","contribute",{"text":412,"config":413},"Community",{"href":414,"dataGaName":415,"dataGaLocation":178},"/community/","community",{"text":417,"config":418},"Forum",{"href":419,"dataGaName":420,"dataGaLocation":178},"https://forum.gitlab.com/","forum",{"text":422,"config":423},"Eventi",{"href":424,"dataGaName":425,"dataGaLocation":178},"/events/","events",{"text":427,"config":428},"Partner",{"href":429,"dataGaName":430,"dataGaLocation":178},"/it-it/partners/","partners",{"config":432,"title":435,"text":436,"link":437},{"background":433,"textColor":434},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Novità in GitLab","Approfitta di un aggiornamento continuo su funzionalità e miglioramenti più recenti.",{"text":438,"config":439},"Leggi le ultime notizie",{"href":440,"dataGaName":441,"dataGaLocation":178},"/it-it/whats-new/","whats new",{"text":443,"config":444,"menu":446},"Azienda",{"dataNavLevelOne":445},"company",{"type":228,"columns":447},[448],{"items":449},[450,455,461,463,468,473,478,483,488,493],{"text":451,"config":452},"Informazioni",{"href":453,"dataGaName":454,"dataGaLocation":178},"/it-it/company/","about",{"text":456,"config":457,"footerGa":460},"Opportunità di lavoro",{"href":458,"dataGaName":459,"dataGaLocation":178},"/jobs/","jobs",{"dataGaName":459},{"text":422,"config":462},{"href":424,"dataGaName":425,"dataGaLocation":178},{"text":464,"config":465},"Leadership",{"href":466,"dataGaName":467,"dataGaLocation":178},"/company/team/e-group/","leadership",{"text":469,"config":470},"Manuale",{"href":471,"dataGaName":472,"dataGaLocation":178},"https://handbook.gitlab.com/","handbook",{"text":474,"config":475},"Rapporti con gli investitori",{"href":476,"dataGaName":477,"dataGaLocation":178},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":479,"config":480},"Trust Center",{"href":481,"dataGaName":482,"dataGaLocation":178},"/it-it/security/","trust center",{"text":484,"config":485},"AI Transparency Center",{"href":486,"dataGaName":487,"dataGaLocation":178},"/it-it/ai-transparency-center/","ai transparency center",{"text":489,"config":490},"Newsletter",{"href":491,"dataGaName":492,"dataGaLocation":178},"/company/contact/#contact-forms","newsletter",{"text":494,"config":495},"Rassegna stampa",{"href":496,"dataGaName":497,"dataGaLocation":178},"/press/","press",{"text":499,"config":500,"menu":501},"Contattaci",{"dataNavLevelOne":445},{"type":228,"columns":502},[503],{"items":504},[505,510,515],{"text":506,"config":507},"Contatta le vendite",{"href":508,"dataGaName":509,"dataGaLocation":178},"/it-it/sales/","talk to sales",{"text":511,"config":512},"Portale di assistenza",{"href":513,"dataGaName":514,"dataGaLocation":178},"https://support.gitlab.com/hc/en-us","support portal",{"text":516,"config":517},"Portale di assistenza clienti GitLab",{"href":518,"dataGaName":519,"dataGaLocation":178},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":521,"login":522,"suggestions":529},"Chiudi",{"text":523,"link":524},"Per cercare nei repository e nei progetti, accedi a",{"text":525,"config":526},"gitlab.com",{"href":192,"dataGaName":527,"dataGaLocation":528},"search login","search",{"text":530,"default":531},"Suggerimenti",[532,534,539,541,546,551],{"text":209,"config":533},{"href":214,"dataGaName":209,"dataGaLocation":528},{"text":535,"config":536},"Suggerimenti di codice di GitLab Duo (IA)",{"href":537,"dataGaName":538,"dataGaLocation":528},"/it-it/solutions/code-suggestions/","Code Suggestions (AI)",{"text":17,"config":540},{"href":245,"dataGaName":17,"dataGaLocation":528},{"text":542,"config":543},"GitLab su AWS",{"href":544,"dataGaName":545,"dataGaLocation":528},"/it-it/partners/technology-partners/aws/","GitLab on AWS",{"text":547,"config":548},"GitLab su Google Cloud",{"href":549,"dataGaName":550,"dataGaLocation":528},"/it-it/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":552,"config":553},"Perché scegliere GitLab?",{"href":221,"dataGaName":554,"dataGaLocation":528},"Why GitLab?",{"freeTrial":556,"mobileIcon":561,"desktopIcon":566,"secondaryButton":569},{"text":557,"config":558},"Inizia una prova gratuita",{"href":559,"dataGaName":183,"dataGaLocation":560},"https://gitlab.com/-/trials/new/","nav",{"altText":562,"config":563},"Icona GitLab",{"src":564,"dataGaName":565,"dataGaLocation":560},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":562,"config":567},{"src":568,"dataGaName":565,"dataGaLocation":560},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":570,"config":571},"Inizia",{"href":572,"dataGaName":573,"dataGaLocation":560},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/it-it/get-started/","get started",{"freeTrial":575,"mobileIcon":579,"desktopIcon":581},{"text":576,"config":577},"Scopri di più su GitLab Duo",{"href":214,"dataGaName":578,"dataGaLocation":560},"gitlab duo",{"altText":562,"config":580},{"src":564,"dataGaName":565,"dataGaLocation":560},{"altText":562,"config":582},{"src":568,"dataGaName":565,"dataGaLocation":560},{"button":584,"mobileIcon":589,"desktopIcon":591},{"text":585,"config":586},"/switch",{"href":587,"dataGaName":588,"dataGaLocation":560},"#contact","switch",{"altText":562,"config":590},{"src":564,"dataGaName":565,"dataGaLocation":560},{"altText":562,"config":592},{"src":593,"dataGaName":565,"dataGaLocation":560},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":595,"mobileIcon":600,"desktopIcon":602},{"text":596,"config":597},"Torna ai prezzi",{"href":327,"dataGaName":598,"dataGaLocation":560,"icon":599},"back to pricing","GoBack",{"altText":562,"config":601},{"src":564,"dataGaName":565,"dataGaLocation":560},{"altText":562,"config":603},{"src":568,"dataGaName":565,"dataGaLocation":560},{"title":605,"button":606,"config":610},"GitLab Orbit è arrivato: il livello di contesto per gli agenti di IA.",{"text":125,"config":607},{"href":608,"dataGaName":609,"dataGaLocation":178},"/it-it/gitlab-orbit/","orbit",{"layout":611,"disabled":29},"release",{"data":613},{"text":614,"source":615,"edit":621,"contribute":626,"config":630,"items":635,"minimal":842},"Git è un marchio di Software Freedom Conservancy e l'uso del termine \"GitLab\" è regolato da un accordo di licenza",{"text":616,"config":617},"Visualizza origine pagina",{"href":618,"dataGaName":619,"dataGaLocation":620},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":622,"config":623},"Modifica questa pagina",{"href":624,"dataGaName":625,"dataGaLocation":620},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":407,"config":627},{"href":628,"dataGaName":629,"dataGaLocation":620},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":631,"facebook":632,"youtube":633,"linkedin":634},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[636,682,735,777,809],{"title":325,"links":637,"subMenu":652},[638,642,647],{"text":639,"config":640},"Visualizza i piani",{"href":327,"dataGaName":641,"dataGaLocation":620},"view plans",{"text":643,"config":644},"Perché scegliere Premium?",{"href":645,"dataGaName":646,"dataGaLocation":620},"/it-it/pricing/premium/","why premium",{"text":648,"config":649},"Perché scegliere Ultimate?",{"href":650,"dataGaName":651,"dataGaLocation":620},"/it-it/pricing/ultimate/","why ultimate",[653],{"title":499,"links":654},[655,658,660,662,667,672,677],{"text":656,"config":657},"Contatta il reparto vendite",{"href":508,"dataGaName":188,"dataGaLocation":620},{"text":511,"config":659},{"href":513,"dataGaName":514,"dataGaLocation":620},{"text":516,"config":661},{"href":518,"dataGaName":519,"dataGaLocation":620},{"text":663,"config":664},"Stato",{"href":665,"dataGaName":666,"dataGaLocation":620},"https://status.gitlab.com/","status",{"text":668,"config":669},"Termini di utilizzo",{"href":670,"dataGaName":671,"dataGaLocation":620},"/terms/","terms of use",{"text":673,"config":674},"Informativa sulla privacy",{"href":675,"dataGaName":676,"dataGaLocation":620},"/it-it/privacy/","privacy statement",{"text":678,"config":679},"Preferenze dei cookie",{"dataGaName":680,"dataGaLocation":620,"id":681,"isOneTrustButton":167},"cookie preferences","ot-sdk-btn",{"title":224,"links":683,"subMenu":692},[684,688],{"text":685,"config":686},"Piattaforma DevSecOps",{"href":207,"dataGaName":687,"dataGaLocation":620},"devsecops platform",{"text":689,"config":690},"Sviluppo assistito dall'IA",{"href":214,"dataGaName":691,"dataGaLocation":620},"ai-assisted development",[693],{"title":694,"links":695},"Argomenti",[696,700,705,710,715,720,725,730],{"text":697,"config":698},"CICD",{"href":19,"dataGaName":699,"dataGaLocation":620},"cicd",{"text":701,"config":702},"GitOps",{"href":703,"dataGaName":704,"dataGaLocation":620},"/it-it/topics/gitops/","gitops",{"text":706,"config":707},"DevOps",{"href":708,"dataGaName":709,"dataGaLocation":620},"/it-it/topics/devops/","devops",{"text":711,"config":712},"Controllo della versione",{"href":713,"dataGaName":714,"dataGaLocation":620},"/it-it/topics/version-control/","version control",{"text":716,"config":717},"DevSecOps",{"href":718,"dataGaName":719,"dataGaLocation":620},"/it-it/topics/devsecops/","devsecops",{"text":721,"config":722},"Cloud native",{"href":723,"dataGaName":724,"dataGaLocation":620},"/it-it/topics/cloud-native/","cloud native",{"text":726,"config":727},"IA per la programmazione",{"href":728,"dataGaName":729,"dataGaLocation":620},"/it-it/topics/devops/ai-for-coding/","ai for coding",{"text":731,"config":732},"IA agentica",{"href":733,"dataGaName":734,"dataGaLocation":620},"/it-it/topics/agentic-ai/","agentic ai",{"title":736,"links":737},"Soluzioni",[738,741,743,748,752,755,758,761,763,765,767,772],{"text":268,"config":739},{"href":263,"dataGaName":740,"dataGaLocation":620},"Application Security Testing",{"text":255,"config":742},{"href":240,"dataGaName":241,"dataGaLocation":620},{"text":744,"config":745},"Sviluppo Agile",{"href":746,"dataGaName":747,"dataGaLocation":620},"/it-it/solutions/agile-delivery/","agile delivery",{"text":749,"config":750},"SCM",{"href":252,"dataGaName":751,"dataGaLocation":620},"source code management",{"text":697,"config":753},{"href":245,"dataGaName":754,"dataGaLocation":620},"continuous integration & delivery",{"text":294,"config":756},{"href":296,"dataGaName":757,"dataGaLocation":620},"value stream management",{"text":701,"config":759},{"href":760,"dataGaName":704,"dataGaLocation":620},"/it-it/solutions/gitops/",{"text":307,"config":762},{"href":310,"dataGaName":311,"dataGaLocation":620},{"text":313,"config":764},{"href":316,"dataGaName":317,"dataGaLocation":620},{"text":319,"config":766},{"href":322,"dataGaName":323,"dataGaLocation":620},{"text":768,"config":769},"Istruzione",{"href":770,"dataGaName":771,"dataGaLocation":620},"/it-it/solutions/education/","education",{"text":773,"config":774},"Servizi finanziari",{"href":775,"dataGaName":776,"dataGaLocation":620},"/it-it/solutions/finance/","financial services",{"title":330,"links":778},[779,781,783,785,788,790,793,795,797,799,801,803,805,807],{"text":342,"config":780},{"href":344,"dataGaName":345,"dataGaLocation":620},{"text":347,"config":782},{"href":349,"dataGaName":350,"dataGaLocation":620},{"text":352,"config":784},{"href":354,"dataGaName":355,"dataGaLocation":620},{"text":357,"config":786},{"href":359,"dataGaName":787,"dataGaLocation":620},"docs",{"text":380,"config":789},{"href":382,"dataGaName":383,"dataGaLocation":620},{"text":791,"config":792},"Novità",{"href":440,"dataGaName":441,"dataGaLocation":620},{"text":375,"config":794},{"href":377,"dataGaName":378,"dataGaLocation":620},{"text":394,"config":796},{"href":396,"dataGaName":397,"dataGaLocation":620},{"text":402,"config":798},{"href":404,"dataGaName":405,"dataGaLocation":620},{"text":407,"config":800},{"href":409,"dataGaName":410,"dataGaLocation":620},{"text":412,"config":802},{"href":414,"dataGaName":415,"dataGaLocation":620},{"text":417,"config":804},{"href":419,"dataGaName":420,"dataGaLocation":620},{"text":422,"config":806},{"href":424,"dataGaName":425,"dataGaLocation":620},{"text":427,"config":808},{"href":429,"dataGaName":430,"dataGaLocation":620},{"title":443,"links":810},[811,813,815,817,819,821,826,831,833,835,837],{"text":451,"config":812},{"href":453,"dataGaName":445,"dataGaLocation":620},{"text":456,"config":814},{"href":458,"dataGaName":459,"dataGaLocation":620},{"text":464,"config":816},{"href":466,"dataGaName":467,"dataGaLocation":620},{"text":469,"config":818},{"href":471,"dataGaName":472,"dataGaLocation":620},{"text":474,"config":820},{"href":476,"dataGaName":477,"dataGaLocation":620},{"text":822,"config":823},"Sostenibilità",{"href":824,"dataGaName":825,"dataGaLocation":620},"/sustainability/","Sustainability",{"text":827,"config":828},"Diversità, inclusione e appartenenza (DIB)",{"href":829,"dataGaName":830,"dataGaLocation":620},"/it-it/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":479,"config":832},{"href":481,"dataGaName":482,"dataGaLocation":620},{"text":489,"config":834},{"href":491,"dataGaName":492,"dataGaLocation":620},{"text":494,"config":836},{"href":496,"dataGaName":497,"dataGaLocation":620},{"text":838,"config":839},"Dichiarazione di trasparenza sulla schiavitù moderna",{"href":840,"dataGaName":841,"dataGaLocation":620},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":843},[844,847,850],{"text":845,"config":846},"Termini",{"href":670,"dataGaName":671,"dataGaLocation":620},{"text":848,"config":849},"Cookies",{"dataGaName":680,"dataGaLocation":620,"id":681,"isOneTrustButton":167},{"text":851,"config":852},"Privacy",{"href":675,"dataGaName":676,"dataGaLocation":620},{"header":854,"blurb":855,"button":856,"secondaryButton":861},"Inizia a sviluppare più velocemente oggi","Scopri cosa può fare il tuo team con la piattaforma di orchestrazione intelligente per DevSecOps.\n",{"text":857,"config":858},"Ottieni la tua prova gratuita",{"href":859,"dataGaName":183,"dataGaLocation":860},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/it-it/","feature",{"text":506,"config":862},{"href":508,"dataGaName":188,"dataGaLocation":860},1786803769676]