[{"data":1,"prerenderedAt":844},["ShallowReactive",2],{"/it-it/get-started/continuous-integration/":3,"navigation-it-it":205,"banner-it-it":624,"footer-it-it":637},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"_id":198,"_type":199,"title":200,"_source":201,"_file":202,"_stem":203,"_extension":204},"/it-it/get-started/continuous-integration","get-started",false,"",{"title":9,"ogTitle":9,"description":10,"ogDescription":10},"Guida rapida per GitLab Continuous Integration","Sarai guidato attraverso il processo di configurazione di un progetto in GitLab e la creazione di una semplice configurazione CI nel codice.",[12,21,28,156],{"type":13,"componentName":13,"componentContent":14},"CommonBreadcrumbs",{"crumbs":15},[16,20],{"title":17,"config":18},"Inizia",{"href":19},"/it-it/get-started/",{"title":9},{"type":22,"componentName":22,"componentContent":23},"CommonArticleHero",{"title":9,"readTime":24,"text":25,"config":26},"20 min per completare","Benvenuto nella guida rapida di GitLab CI, dove sarai guidato attraverso il processo di configurazione di un progetto in GitLab e la creazione di una semplice configurazione CI nel codice. Questa guida ti permetterà di iniziare rapidamente il tuo percorso con GitLab CI.\n\nLe seguenti attività saranno descritte in questa guida rapida:\n\n- Creazione di un nuovo progetto.\n- Realizzazione della tua configurazione CI/CD iniziale ed esecuzione della pipeline.\n- Accesso e revisione dei risultati dell'esecuzione.\n- Introduzione di condizioni basate su regole per determinare l'esecuzione dei job.\n- Sfruttamento della potenza dei Pipeline Templates per l'integrazione fluida di configurazioni vantaggiose.",{"bodyText":27},true,{"type":29,"componentName":29,"componentContent":30},"CommonSideNavigationWithTree",{"anchors":31,"components":62},{"text":32,"data":33},"In questa pagina",[34,38,42,46,50,54,58],{"text":35,"config":36},"Passaggio 1: Crea un nuovo Progetto/Repository",{"href":37},"#step-1",{"text":39,"config":40},"Passaggio 2: Configurazione della CI",{"href":41},"#step-2",{"text":43,"config":44},"Passaggio 3 - Commit delle modifiche ed esecuzione della pipeline",{"href":45},"#step-3",{"text":47,"config":48},"Passaggio 4 - Visualizza l'esecuzione della pipeline e i risultati dei test",{"href":49},"#step-4",{"text":51,"config":52},"Passaggio 5 - Fallimento della pipeline",{"href":53},"#step-5",{"text":55,"config":56},"Passaggio 6 - Implementa condizioni di fallimento a livello di pipeline",{"href":57},"#step-6",{"text":59,"config":60},"Passaggio 7 - Migliora la tua configurazione con i template di pipeline integrati",{"href":61},"#step-7",[63,73],{"type":64,"componentName":64,"componentContent":65},"CommonCopy",{"config":66,"cards":67},{"noDecoration":27},[68],{"config":69,"title":71,"description":72},{"icon":70},"InfoTip","Prima di iniziare","Assicurati di avere un account GitLab. Se non ne hai uno, [registrati qui](https://gitlab.com/users/sign_up).",{"type":74,"componentName":74,"componentContent":75},"GetStartedAccordion",{"groups":76},[77,89,116,124,132,140,148],{"config":78,"header":35,"show":80,"hide":81,"items":82},{"id":79},"step-1","Mostra tutto","Nascondi tutto",[83,86],{"header":84,"content":85},"Panoramica del passaggio","All'interno di un progetto vengono gestiti vari componenti come il tuo codebase, la configurazione CI, la pianificazione, l'analisi e i membri del team. In questa guida creeremo un nuovo progetto completamente vuoto, contenente solo un file readme.",{"header":87,"content":88},"Come fare","* Crea un nuovo progetto cliccando sull'icona più sul lato destro della barra superiore e selezionando **Nuovo progetto/repository**\n* Seleziona **Crea progetto vuoto**. Sotto `Nome progetto` digita **my-project**.\n* Clicca **Crea progetto**.\n* Congratulazioni! Hai creato con successo il tuo primo progetto.",{"config":90,"header":39,"show":80,"hide":81,"items":92},{"id":91},"step-2",[93,95,98,101,104,107,110,113],{"header":84,"content":94},"In GitLab, la configurazione CI è definita nel codice utilizzando la sintassi YAML. Questa configurazione specifica le istruzioni per la macchina runner riguardo all'esecuzione dei job, l'ordine dei job, le condizioni dei job e altro ancora. Per definire la configurazione CI, devi creare un file chiamato **.gitlab-ci.yml**, che dovrebbe essere posizionato alla radice del tuo repository. In questa guida utilizzeremo il Web IDE per creare e modificare questo file.",{"header":96,"content":97},"Creazione del file di configurazione","Per accedere al Web IDE, clicca semplicemente sul pulsante rapido Web IDE situato nel tuo progetto. Una volta all'interno del Web IDE, naviga nell'esploratore file sul lato sinistro. Fai clic destro nell'esploratore file e scegli l'opzione **Nuovo File**. Assegna al file appena creato il nome **.gitlab-ci.yml**.",{"header":99,"content":100},"Definizione degli stage della Pipeline","L'ordine di esecuzione dei job è determinato dagli stage definiti nella configurazione. In questa guida definiremo tre stage: **build, test e package,** in questo ordine specifico. Copia e incolla il seguente codice nel file **.gitlab-ci.yml**:\n\n```\n  stages:\n    - build\n    - test\n    - package\n```",{"header":102,"content":103},"Definizione dei job della pipeline","Immagina uno scenario in cui ti viene chiesto di creare due file di testo. È di fondamentale importanza che la concatenazione di questi file includa la frase \"Hello world.\" Il nostro obiettivo è **costruire**, **testare** e **impacchettare** questo requisito utilizzando i job della pipeline.",{"header":105,"content":106},"Definisci un Build-Job","Specificheremo un job di build che esegue le seguenti attività: creare un file di testo con la parola \"Hello,\", creare un altro file di testo con la parola \"World,\" e generare un terzo file che memorizza il contenuto combinato dei due file. Salveremo il terzo file come artifact, così i job successivi negli stage di test e package potranno accedervi. Inserisci il codice fornito sotto il blocco stages:\n\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```",{"header":108,"content":109},"Definisci un job di test","Per validare l'integrità del nostro build, incorporeremo un job di test. Questo job esaminerà se il file **compiled.txt** contiene effettivamente la frase attesa \"Hello world\". Inserisci il seguente codice sotto il job di build:\n\n```\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world '\n```",{"header":111,"content":112},"Definisci un job di package","Al completamento con successo del test, il nostro prossimo obiettivo è generare un package per il nostro codice. Per raggiungere questo obiettivo, includeremo un job di package. È importante notare che se il test fallisce, l'intera pipeline sarà considerata non riuscita e non procederà. Inserisci il codice fornito sotto il job di test:\n\n```\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```",{"header":114,"content":115},"La tua pipeline completa dovrebbe apparire così","```\n  stages:          # Lista degli stage per i job e il loro ordine di esecuzione\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\nEcco un link al [file di configurazione](https://gitlab.com/tech-marketing/ci-quickstart/-/blob/main/.gitlab-ci.yml) nel nostro progetto di esempio.\n\nCongratulazioni!! Hai costruito la tua prima pipeline CI.",{"config":117,"header":43,"show":80,"hide":81,"items":119},{"id":118},"step-3",[120,122],{"header":84,"content":121},"Per attivare la continuous integration (CI) all'interno del nostro progetto, dobbiamo fare il push del file **.gitlab-ci.yml** nel repository. Una volta che questo file si trova alla radice del repository, ogni commit fatto al progetto avvierà automaticamente una pipeline CI. La pipeline iniziale inizierà immediatamente dopo aver fatto il push di questo file al server.",{"header":87,"content":123},"* Clicca sull'icona Merge situata a sinistra dell'esploratore file.\n* Fornisci un messaggio di commit come \"Aggiunta configurazione CI.\"\n* Clicca su **Commit & Push**.\n* Quando richiesto con \"Commit su un nuovo branch?\" seleziona \"No, Usa il branch corrente main\".\n* Per tornare al tuo progetto, clicca il pulsante **Vai al progetto** situato in basso a sinistra.\n\n**Congratulazioni! Il tuo progetto è ora configurato con successo per avviare automaticamente una pipeline CI per ogni commit del codice.**",{"config":125,"header":47,"show":80,"hide":81,"items":127},{"id":126},"step-4",[128,130],{"header":84,"content":129},"Mentre la pipeline è in esecuzione, puoi monitorare il suo stato nella scheda **CI/CD**. Questa funzionalità ti permette di tracciare facilmente il progresso dei tuoi job, incluso il loro stato di esecuzione (come se sono iniziati, passati, falliti, ecc.), così come qualsiasi output generato dai tuoi script di job.",{"header":87,"content":131},"* Naviga al progetto GitLab e individua il menu di sinistra.\n* Clicca su **CI/CD** nel menu, clicca **Pipelines**.\n* Nella pagina **Pipelines**, individua il pulsante della pipeline nella colonna **Stato**. Cliccaci sopra per aprire il grafico della pipeline.\n* Ora puoi osservare i job e i loro rispettivi stati all'interno del grafico della pipeline.\n* Per esplorare un job specifico, cliccaci sopra per aprire la console del job. Questa console mostra tutti i passaggi eseguiti sulla macchina Runner.\n* Apri la console del job package per visualizzare i passaggi che sono stati elaborati dal runner.\n* Il job package genera un artifact, puoi scaricarlo cliccando il pulsante **download** situato sul lato destro.\n* Seguendo questi passaggi, puoi tracciare efficacemente lo stato della pipeline, ispezionare i dettagli dei job e recuperare qualsiasi artifact o package rilevante prodotto durante l'esecuzione della pipeline.\n\n**Congratulazioni per aver eseguito con successo la tua prima pipeline. La pipeline è riuscita! Hai ora visualizzato i risultati e scaricato l'artifact del job.**",{"config":133,"header":51,"show":80,"hide":81,"items":135},{"id":134},"step-5",[136,138],{"header":84,"content":137},"Cambieremo il valore atteso nel job di test, il job di test fallirà così come l'intera pipeline fallirà.",{"header":87,"content":139},"* Modifica il job **test** cambiando la frase \"Hello World\" in \"hello world\" (con lettere minuscole).\n* Fai il commit delle modifiche al codice e procedi a visualizzare la pipeline, simile al Passaggio 4.\n* Ispezionando la pipeline, osserverai che il job di test è fallito. Inoltre, il job **package** successivo non è iniziato, e la pipeline stessa è fallita come previsto.",{"config":141,"header":55,"show":80,"hide":81,"items":143},{"id":142},"step-6",[144,146],{"header":84,"content":145},"Nel passaggio 5 abbiamo visto che il fallimento del job ha fatto fallire l'intera pipeline. Puoi introdurre logica nella tua pipeline che determina quando un fallimento del job causerà il fallimento dell'intera pipeline con i seguenti passaggi:\n\n* Valuta le condizioni sotto le quali vuoi che un fallimento del job risulti nel fallimento della pipeline. Ad esempio, potresti voler imporre il fallimento della pipeline se un job fallisce sul branch main o predefinito, mentre permetti ai fallimenti dei job su altri branch di procedere con la pipeline.\n* Definisci regole che governano il comportamento di fallimento. Puoi sfruttare variabili come $CI_COMMIT_BRANCH per controllare il branch corrente e prendere decisioni basate su di esso.\n* Imposta le condizioni appropriate e specifica se il job dovrebbe essere marcato come **allow_failure: false** o **allow_failure: true**.",{"header":87,"content":147},"* Aggiungi condizioni rules/if al tuo job di test.\n* Usa la parola chiave **allow_failure** impostata su **true** o **false** basata sul branch.\n\n```\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":149,"header":59,"show":80,"hide":81,"items":151},{"id":150},"step-7",[152,154],{"header":84,"content":153},"Per semplificare la configurazione della pipeline, puoi sfruttare i template di pipeline integrati forniti da GitLab. Questi template offrono configurazioni predefinite per casi d'uso comuni, come scansioni di sicurezza, deployment AWS, ecc.\n\nSegui questi passaggi per utilizzare i template di pipeline integrati:\n\n* Esplora i template di pipeline disponibili offerti da GitLab per vari scenari come building, testing, deployment e altro. Questi template possono essere trovati [qui](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates).\n* Seleziona il template che si allinea con i tuoi requisiti.\n* Incorpora il template nella tua configurazione di pipeline facendovi riferimento nel tuo file **.gitlab-ci.yml**. Puoi tipicamente farlo importando il template usando la parola chiave **include** e specificando il percorso o URL al file template.\n\nIn questa guida aggiungeremo una scansione Code Quality alla nostra configurazione usando il template Code-Quality.",{"header":87,"content":155},"Includi il template code quality nel tuo **.gitlab-ci.yml** aggiungendo questo codice sotto il blocco stages.\n\n```\n  include:\n    - template: Jobs/Code-Quality.gitlab-ci.yml\n```\n\nFai il commit e push di questa modifica.\n\nNoterai che un job Code quality è stato aggiunto alla tua pipeline. Lo scanner Code Quality analizzerà accuratamente qualsiasi modifica al codice committata in questo repository e fornirà feedback prezioso, evidenziando qualsiasi problema di qualità del codice che richiede attenzione e miglioramento. Questa preziosa intuizione ti permette di migliorare la qualità complessiva del tuo codebase e ottimizzarne le prestazioni.\n\nEcco fatto! Con questi passaggi, dovresti essere in grado di iniziare con GitLab CI e automatizzare i processi di build e testing del tuo progetto.",{"type":157,"componentName":157,"componentContent":158},"CommonCardGrid",{"config":159,"title":162,"cards":163},{"columns":160,"theme":161},3,"purple","Prossimi passi",[164,176,187],{"image":165,"title":168,"description":169,"button":170},{"altText":7,"config":166},{"src":167},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663568/tcmwpweaxyr0hsh4m2bf.png?","Vuoi saperne di più su GitLab CI?","Ottieni una rapida introduzione a GitLab CI in questo video informativo. Perfetto per principianti e per coloro che vogliono migliorare la loro comprensione di GitLab CI.",{"text":171,"config":172},"Demo panoramica CI",{"href":173,"dataGaName":174,"dataGaLocation":175},"https://youtu.be/WKR-7clknsA","CI overview demo","body",{"image":177,"title":180,"description":181,"button":182},{"altText":7,"config":178},{"src":179},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663863/zgovjo3vv2ik0nbim6db.png?","Utilizza le Issues","Le GitLab Issues sono utilizzate per tracciare e gestire task, bug o richieste di funzionalità all'interno di un progetto. Forniscono un luogo centralizzato per la collaborazione per discutere, assegnare e tracciare il progresso degli elementi di lavoro.",{"text":183,"config":184},"Issues",{"href":185,"dataGaName":186,"dataGaLocation":175},"https://docs.gitlab.com/ee/user/project/issues/","issues",{"image":188,"title":191,"description":192,"button":193},{"altText":7,"config":189},{"src":190},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663742/ggf3qelfxf5bjjopwagh.png?","Aggiungi scansioni di sicurezza alla tua pipeline","Con le scansioni di sicurezza integrate di GitLab, puoi facilmente incorporarle nella tua configurazione CI. Questo assicura che gli sviluppatori ricevano feedback istantaneo riguardo a qualsiasi rischio potenziale nelle loro modifiche al codice.",{"text":194,"config":195},"Sicurezza delle applicazioni",{"href":196,"dataGaName":197,"dataGaLocation":175},"/blog/getting-started-with-gitlab-application-security/","Application security","content:it-it:get-started:continuous-integration.yml","yaml","Continuous Integration","content","it-it/get-started/continuous-integration.yml","it-it/get-started/continuous-integration","yml",{"_path":206,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"data":208,"_id":620,"_type":199,"title":621,"_source":201,"_file":622,"_stem":623,"_extension":204},"/shared/it-it/main-navigation","it-it",{"logo":209,"freeTrial":214,"sales":219,"login":224,"items":229,"search":561,"minimal":597,"duo":611},{"config":210},{"href":211,"dataGaName":212,"dataGaLocation":213},"/it-it/","gitlab logo","header",{"text":215,"config":216},"Ottieni una prova gratuita",{"href":217,"dataGaName":218,"dataGaLocation":213},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":220,"config":221},"Contatta le vendite",{"href":222,"dataGaName":223,"dataGaLocation":213},"/it-it/sales/","sales",{"text":225,"config":226},"Accedi",{"href":227,"dataGaName":228,"dataGaLocation":213},"https://gitlab.com/users/sign_in/","sign in",[230,274,372,377,482,542],{"text":231,"config":232,"cards":234,"footer":257},"Piattaforma",{"dataNavLevelOne":233},"platform",[235,241,249],{"title":231,"description":236,"link":237},"La piattaforma DevSecOps più completa basata sull'IA",{"text":238,"config":239},"Scopri la nostra piattaforma",{"href":240,"dataGaName":233,"dataGaLocation":213},"/it-it/platform/",{"title":242,"description":243,"link":244},"GitLab Duo (IA)","Sviluppa software più velocemente con l'IA in ogni fase del ciclo di sviluppo",{"text":245,"config":246},"Ti presentiamo GitLab Duo",{"href":247,"dataGaName":248,"dataGaLocation":213},"/it-it/gitlab-duo/","gitlab duo ai",{"title":250,"description":251,"link":252},"Perché scegliere GitLab","Dieci motivi per cui le aziende scelgono GitLab",{"text":253,"config":254},"Scopri di più",{"href":255,"dataGaName":256,"dataGaLocation":213},"/it-it/why-gitlab/","why gitlab",{"title":258,"items":259},"Primi passi con",[260,265,270],{"text":261,"config":262},"Platform engineering",{"href":263,"dataGaName":264,"dataGaLocation":213},"/it-it/solutions/platform-engineering/","platform engineering",{"text":266,"config":267},"Esperienza d'uso degli sviluppatori",{"href":268,"dataGaName":269,"dataGaLocation":213},"/it-it/developer-experience/","Developer experience",{"text":271,"config":272},"MLOps",{"href":273,"dataGaName":271,"dataGaLocation":213},"/it-it/topics/devops/the-role-of-ai-in-devops/",{"text":275,"left":27,"config":276,"link":278,"lists":282,"footer":354},"Prodotti",{"dataNavLevelOne":277},"solutions",{"text":279,"config":280},"Visualizza tutte le soluzioni",{"href":281,"dataGaName":277,"dataGaLocation":213},"/it-it/solutions/",[283,309,332],{"title":284,"description":285,"link":286,"items":291},"Automazione","CI/CD e automazione per accelerare il deployment",{"config":287},{"icon":288,"href":289,"dataGaName":290,"dataGaLocation":213},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[292,296,300,305],{"text":293,"config":294},"CI/CD",{"href":295,"dataGaLocation":213,"dataGaName":293},"/it-it/solutions/continuous-integration/",{"text":297,"config":298},"Sviluppo assistito dall'IA",{"href":247,"dataGaLocation":213,"dataGaName":299},"AI assisted development",{"text":301,"config":302},"Gestione del codice sorgente",{"href":303,"dataGaLocation":213,"dataGaName":304},"/it-it/solutions/source-code-management/","Source Code Management",{"text":306,"config":307},"Distribuzione software automatizzata",{"href":289,"dataGaLocation":213,"dataGaName":308},"Automated software delivery",{"title":310,"description":311,"link":312,"items":317},"Sicurezza","Distribuisci il codice più velocemente senza compromettere la sicurezza",{"config":313},{"href":314,"dataGaName":315,"dataGaLocation":213,"icon":316},"/it-it/solutions/security-compliance/","security and compliance","ShieldCheckLight",[318,323,328],{"text":319,"config":320},"Application Security Testing",{"href":321,"dataGaName":322,"dataGaLocation":213},"/solutions/application-security-testing/","Application security testing",{"text":324,"config":325},"Sicurezza della catena di fornitura del software",{"href":326,"dataGaLocation":213,"dataGaName":327},"/it-it/solutions/supply-chain/","Software supply chain security",{"text":329,"config":330},"Software Compliance",{"href":331,"dataGaName":329,"dataGaLocation":213},"/solutions/software-compliance/",{"title":333,"link":334,"items":339},"Misurazione",{"config":335},{"icon":336,"href":337,"dataGaName":338,"dataGaLocation":213},"DigitalTransformation","/it-it/solutions/visibility-measurement/","visibility and measurement",[340,344,349],{"text":341,"config":342},"Visibilità e misurazione",{"href":337,"dataGaLocation":213,"dataGaName":343},"Visibility and Measurement",{"text":345,"config":346},"Gestione del flusso di valore",{"href":347,"dataGaLocation":213,"dataGaName":348},"/it-it/solutions/value-stream-management/","Value Stream Management",{"text":350,"config":351},"Analisi e approfondimenti",{"href":352,"dataGaLocation":213,"dataGaName":353},"/it-it/solutions/analytics-and-insights/","Analytics and insights",{"title":355,"items":356},"GitLab per",[357,362,367],{"text":358,"config":359},"Aziende",{"href":360,"dataGaLocation":213,"dataGaName":361},"/it-it/enterprise/","enterprise",{"text":363,"config":364},"Piccole imprese",{"href":365,"dataGaLocation":213,"dataGaName":366},"/it-it/small-business/","small business",{"text":368,"config":369},"Pubblica amministrazione",{"href":370,"dataGaLocation":213,"dataGaName":371},"/it-it/solutions/public-sector/","public sector",{"text":373,"config":374},"Prezzi",{"href":375,"dataGaName":376,"dataGaLocation":213,"dataNavLevelOne":376},"/it-it/pricing/","pricing",{"text":378,"config":379,"link":381,"lists":385,"feature":469},"Risorse",{"dataNavLevelOne":380},"resources",{"text":382,"config":383},"Visualizza tutte le risorse",{"href":384,"dataGaName":380,"dataGaLocation":213},"/it-it/resources/",[386,418,441],{"title":387,"items":388},"Per iniziare",[389,394,398,403,408,413],{"text":390,"config":391},"Installazione",{"href":392,"dataGaName":393,"dataGaLocation":213},"/it-it/install/","install",{"text":395,"config":396},"Guide rapide",{"href":19,"dataGaName":397,"dataGaLocation":213},"quick setup checklists",{"text":399,"config":400},"Formazione",{"href":401,"dataGaLocation":213,"dataGaName":402},"https://university.gitlab.com/","learn",{"text":404,"config":405},"Documentazione di prodotto",{"href":406,"dataGaName":407,"dataGaLocation":213},"https://docs.gitlab.com/","product documentation",{"text":409,"config":410},"Video sulle best practice",{"href":411,"dataGaName":412,"dataGaLocation":213},"/it-it/getting-started-videos/","best practice videos",{"text":414,"config":415},"Integrazioni",{"href":416,"dataGaName":417,"dataGaLocation":213},"/it-it/integrations/","integrations",{"title":419,"items":420},"Scopri",[421,426,431,436],{"text":422,"config":423},"Storie di successo dei clienti",{"href":424,"dataGaName":425,"dataGaLocation":213},"/it-it/customers/","customer success stories",{"text":427,"config":428},"Blog",{"href":429,"dataGaName":430,"dataGaLocation":213},"/blog/","blog",{"text":432,"config":433},"Lavorare da remoto",{"href":434,"dataGaName":435,"dataGaLocation":213},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":437,"config":438},"TeamOps",{"href":439,"dataGaName":440,"dataGaLocation":213},"/it-it/teamops/","teamops",{"title":442,"items":443},"Connetti",[444,449,454,459,464],{"text":445,"config":446},"Servizi GitLab",{"href":447,"dataGaName":448,"dataGaLocation":213},"/it-it/services/","services",{"text":450,"config":451},"Community",{"href":452,"dataGaName":453,"dataGaLocation":213},"/community/","community",{"text":455,"config":456},"Forum",{"href":457,"dataGaName":458,"dataGaLocation":213},"https://forum.gitlab.com/","forum",{"text":460,"config":461},"Eventi",{"href":462,"dataGaName":463,"dataGaLocation":213},"/events/","events",{"text":465,"config":466},"Partner",{"href":467,"dataGaName":468,"dataGaLocation":213},"/partners/","partners",{"backgroundColor":470,"textColor":471,"text":472,"image":473,"link":477},"#2f2a6b","#fff","Approfondimenti e informazioni per il futuro dello sviluppo software",{"altText":474,"config":475},"scheda promozionale per The Source",{"src":476},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":478,"config":479},"Leggi le ultime notizie",{"href":480,"dataGaName":481,"dataGaLocation":213},"/it-it/the-source/","the source",{"text":483,"config":484,"lists":486},"Azienda",{"dataNavLevelOne":485},"company",[487],{"items":488},[489,494,500,502,507,512,517,522,527,532,537],{"text":490,"config":491},"Informazioni",{"href":492,"dataGaName":493,"dataGaLocation":213},"/it-it/company/","about",{"text":495,"config":496,"footerGa":499},"Opportunità di lavoro",{"href":497,"dataGaName":498,"dataGaLocation":213},"/jobs/","jobs",{"dataGaName":498},{"text":460,"config":501},{"href":462,"dataGaName":463,"dataGaLocation":213},{"text":503,"config":504},"Leadership",{"href":505,"dataGaName":506,"dataGaLocation":213},"/company/team/e-group/","leadership",{"text":508,"config":509},"Team",{"href":510,"dataGaName":511,"dataGaLocation":213},"/company/team/","team",{"text":513,"config":514},"Manuale",{"href":515,"dataGaName":516,"dataGaLocation":213},"https://handbook.gitlab.com/","handbook",{"text":518,"config":519},"Rapporti con gli investitori",{"href":520,"dataGaName":521,"dataGaLocation":213},"https://ir.gitlab.com/","investor relations",{"text":523,"config":524},"Trust Center",{"href":525,"dataGaName":526,"dataGaLocation":213},"/it-it/security/","trust center",{"text":528,"config":529},"AI Transparency Center",{"href":530,"dataGaName":531,"dataGaLocation":213},"/it-it/ai-transparency-center/","ai transparency center",{"text":533,"config":534},"Newsletter",{"href":535,"dataGaName":536,"dataGaLocation":213},"/company/contact/","newsletter",{"text":538,"config":539},"Rassegna stampa",{"href":540,"dataGaName":541,"dataGaLocation":213},"/press/","press",{"text":543,"config":544,"lists":545},"Contattaci",{"dataNavLevelOne":485},[546],{"items":547},[548,551,556],{"text":220,"config":549},{"href":222,"dataGaName":550,"dataGaLocation":213},"talk to sales",{"text":552,"config":553},"Richiedi assistenza",{"href":554,"dataGaName":555,"dataGaLocation":213},"/support/","get help",{"text":557,"config":558},"Portale clienti",{"href":559,"dataGaName":560,"dataGaLocation":213},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":562,"login":563,"suggestions":570},"Chiudi",{"text":564,"link":565},"Per cercare repository e progetti, accedi a",{"text":566,"config":567},"gitlab.com",{"href":227,"dataGaName":568,"dataGaLocation":569},"search login","search",{"text":571,"default":572},"Suggerimenti",[573,576,581,583,588,593],{"text":242,"config":574},{"href":247,"dataGaName":575,"dataGaLocation":569},"GitLab Duo (AI)",{"text":577,"config":578},"Suggerimenti di codice (IA)",{"href":579,"dataGaName":580,"dataGaLocation":569},"/it-it/solutions/code-suggestions/","Code Suggestions (AI)",{"text":293,"config":582},{"href":295,"dataGaName":293,"dataGaLocation":569},{"text":584,"config":585},"GitLab su AWS",{"href":586,"dataGaName":587,"dataGaLocation":569},"/it-it/partners/technology-partners/aws/","GitLab on AWS",{"text":589,"config":590},"GitLab su Google Cloud",{"href":591,"dataGaName":592,"dataGaLocation":569},"/it-it/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":594,"config":595},"Perché scegliere GitLab?",{"href":255,"dataGaName":596,"dataGaLocation":569},"Why GitLab?",{"freeTrial":598,"mobileIcon":603,"desktopIcon":608},{"text":599,"config":600},"Inizia la prova gratuita",{"href":601,"dataGaName":218,"dataGaLocation":602},"https://gitlab.com/-/trials/new/","nav",{"altText":604,"config":605},"Icona di GitLab",{"src":606,"dataGaName":607,"dataGaLocation":602},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":604,"config":609},{"src":610,"dataGaName":607,"dataGaLocation":602},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":612,"mobileIcon":616,"desktopIcon":618},{"text":613,"config":614},"Scopri di più su GitLab Duo",{"href":247,"dataGaName":615,"dataGaLocation":602},"gitlab duo",{"altText":604,"config":617},{"src":606,"dataGaName":607,"dataGaLocation":602},{"altText":604,"config":619},{"src":610,"dataGaName":607,"dataGaLocation":602},"content:shared:it-it:main-navigation.yml","Main Navigation","shared/it-it/main-navigation.yml","shared/it-it/main-navigation",{"_path":625,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"title":626,"button":627,"config":632,"_id":634,"_type":199,"_source":201,"_file":635,"_stem":636,"_extension":204},"/shared/it-it/banner","La GitLab Duo Agent Platform è ora in beta pubblica!",{"text":628,"config":629},"Prova la Beta",{"href":630,"dataGaName":631,"dataGaLocation":213},"/it-it/gitlab-duo/agent-platform/","duo banner",{"layout":633},"release","content:shared:it-it:banner.yml","shared/it-it/banner.yml","shared/it-it/banner",{"_path":638,"_dir":207,"_draft":6,"_partial":6,"_locale":7,"data":639,"_id":840,"_type":199,"title":841,"_source":201,"_file":842,"_stem":843,"_extension":204},"/shared/it-it/main-footer",{"text":640,"source":641,"edit":647,"contribute":652,"config":657,"items":662,"minimal":832},"Git è un marchio di Software Freedom Conservancy e l'uso del termine \"GitLab\" è regolato da un accordo di licenza",{"text":642,"config":643},"Visualizza origine pagina",{"href":644,"dataGaName":645,"dataGaLocation":646},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":648,"config":649},"Modifica questa pagina",{"href":650,"dataGaName":651,"dataGaLocation":646},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":653,"config":654},"Contribuisci",{"href":655,"dataGaName":656,"dataGaLocation":646},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":658,"facebook":659,"youtube":660,"linkedin":661},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[663,686,740,769,803],{"title":231,"links":664,"subMenu":669},[665],{"text":666,"config":667},"Piattaforma DevSecOps",{"href":240,"dataGaName":668,"dataGaLocation":646},"devsecops platform",[670],{"title":373,"links":671},[672,676,681],{"text":673,"config":674},"Visualizza i piani",{"href":375,"dataGaName":675,"dataGaLocation":646},"view plans",{"text":677,"config":678},"Perché passare a Premium?",{"href":679,"dataGaName":680,"dataGaLocation":646},"/it-it/pricing/premium/","why premium",{"text":682,"config":683},"Perché passare a Ultimate?",{"href":684,"dataGaName":685,"dataGaLocation":646},"/it-it/pricing/ultimate/","why ultimate",{"title":687,"links":688},"Soluzioni",[689,694,697,699,704,709,713,716,719,724,726,728,730,735],{"text":690,"config":691},"Trasformazione digitale",{"href":692,"dataGaName":693,"dataGaLocation":646},"/it-it/topics/digital-transformation/","digital transformation",{"text":695,"config":696},"Sicurezza e conformità",{"href":321,"dataGaName":322,"dataGaLocation":646},{"text":306,"config":698},{"href":289,"dataGaName":290,"dataGaLocation":646},{"text":700,"config":701},"Sviluppo Agile",{"href":702,"dataGaName":703,"dataGaLocation":646},"/it-it/solutions/agile-delivery/","agile delivery",{"text":705,"config":706},"Trasformazione cloud",{"href":707,"dataGaName":708,"dataGaLocation":646},"/it-it/topics/cloud-native/","cloud transformation",{"text":710,"config":711},"SCM",{"href":303,"dataGaName":712,"dataGaLocation":646},"source code management",{"text":293,"config":714},{"href":295,"dataGaName":715,"dataGaLocation":646},"continuous integration & delivery",{"text":345,"config":717},{"href":347,"dataGaName":718,"dataGaLocation":646},"value stream management",{"text":720,"config":721},"GitOps",{"href":722,"dataGaName":723,"dataGaLocation":646},"/it-it/solutions/gitops/","gitops",{"text":358,"config":725},{"href":360,"dataGaName":361,"dataGaLocation":646},{"text":363,"config":727},{"href":365,"dataGaName":366,"dataGaLocation":646},{"text":368,"config":729},{"href":370,"dataGaName":371,"dataGaLocation":646},{"text":731,"config":732},"Istruzione",{"href":733,"dataGaName":734,"dataGaLocation":646},"/it-it/solutions/education/","education",{"text":736,"config":737},"Servizi finanziari",{"href":738,"dataGaName":739,"dataGaLocation":646},"/it-it/solutions/finance/","financial services",{"title":378,"links":741},[742,744,746,748,751,753,755,757,759,761,763,765,767],{"text":390,"config":743},{"href":392,"dataGaName":393,"dataGaLocation":646},{"text":395,"config":745},{"href":19,"dataGaName":397,"dataGaLocation":646},{"text":399,"config":747},{"href":401,"dataGaName":402,"dataGaLocation":646},{"text":404,"config":749},{"href":406,"dataGaName":750,"dataGaLocation":646},"docs",{"text":427,"config":752},{"href":429,"dataGaName":430,"dataGaLocation":646},{"text":422,"config":754},{"href":424,"dataGaName":425,"dataGaLocation":646},{"text":432,"config":756},{"href":434,"dataGaName":435,"dataGaLocation":646},{"text":445,"config":758},{"href":447,"dataGaName":448,"dataGaLocation":646},{"text":437,"config":760},{"href":439,"dataGaName":440,"dataGaLocation":646},{"text":450,"config":762},{"href":452,"dataGaName":453,"dataGaLocation":646},{"text":455,"config":764},{"href":457,"dataGaName":458,"dataGaLocation":646},{"text":460,"config":766},{"href":462,"dataGaName":463,"dataGaLocation":646},{"text":465,"config":768},{"href":467,"dataGaName":468,"dataGaLocation":646},{"title":483,"links":770},[771,773,775,777,779,781,783,787,792,794,796,798],{"text":490,"config":772},{"href":492,"dataGaName":485,"dataGaLocation":646},{"text":495,"config":774},{"href":497,"dataGaName":498,"dataGaLocation":646},{"text":503,"config":776},{"href":505,"dataGaName":506,"dataGaLocation":646},{"text":508,"config":778},{"href":510,"dataGaName":511,"dataGaLocation":646},{"text":513,"config":780},{"href":515,"dataGaName":516,"dataGaLocation":646},{"text":518,"config":782},{"href":520,"dataGaName":521,"dataGaLocation":646},{"text":784,"config":785},"Sustainability",{"href":786,"dataGaName":784,"dataGaLocation":646},"/sustainability/",{"text":788,"config":789},"Diversità, inclusione e appartenenza (DIB)",{"href":790,"dataGaName":791,"dataGaLocation":646},"/it-it/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":523,"config":793},{"href":525,"dataGaName":526,"dataGaLocation":646},{"text":533,"config":795},{"href":535,"dataGaName":536,"dataGaLocation":646},{"text":538,"config":797},{"href":540,"dataGaName":541,"dataGaLocation":646},{"text":799,"config":800},"Dichiarazione di trasparenza sulla schiavitù moderna",{"href":801,"dataGaName":802,"dataGaLocation":646},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":543,"links":804},[805,808,810,812,817,822,827],{"text":806,"config":807},"Contatta un esperto",{"href":222,"dataGaName":223,"dataGaLocation":646},{"text":552,"config":809},{"href":554,"dataGaName":555,"dataGaLocation":646},{"text":557,"config":811},{"href":559,"dataGaName":560,"dataGaLocation":646},{"text":813,"config":814},"Stato",{"href":815,"dataGaName":816,"dataGaLocation":646},"https://status.gitlab.com/","status",{"text":818,"config":819},"Termini di utilizzo",{"href":820,"dataGaName":821,"dataGaLocation":646},"/terms/","terms of use",{"text":823,"config":824},"Informativa sulla privacy",{"href":825,"dataGaName":826,"dataGaLocation":646},"/it-it/privacy/","privacy statement",{"text":828,"config":829},"Preferenze dei cookie",{"dataGaName":830,"dataGaLocation":646,"id":831,"isOneTrustButton":27},"cookie preferences","ot-sdk-btn",{"items":833},[834,836,838],{"text":818,"config":835},{"href":820,"dataGaName":821,"dataGaLocation":646},{"text":823,"config":837},{"href":825,"dataGaName":826,"dataGaLocation":646},{"text":828,"config":839},{"dataGaName":830,"dataGaLocation":646,"id":831,"isOneTrustButton":27},"content:shared:it-it:main-footer.yml","Main Footer","shared/it-it/main-footer.yml","shared/it-it/main-footer",1758662355453]