https://urldefense.com/v3/__https://go.circleci.com/NDg1LVpNSC02MjYAAAGLvrITLbUlRYn1BQfMZ6HYlnbOH5mHnmX8Yp6Zdqb1bKVSHFObjTFb1N7DJEQV0taQMg1JPtzmK9_U6Xs=__;!!IcVJLefWrg!NZWAY85rvHjiKtjAckpJCz9koRXRrAe7Dm6Ysoylt-_3RUOCNwSkCyMtRygxxLMCAJYWLfF7SjMDTInxxcS3kq8byUwY$

Last Checked: May 19, 2023, 01:53 EDT

IP Address: 44.241.220.131
ASN #: AS16509 AMAZON-02, US
Location: Unknown, Unknown, Unknown
URL Reputation:
  • Unknown This URL is not identified as malicious in the PhishTank Database.
  • Unknown PhishCheck thinks this URL is likely not a phish.
  • Unknown OpenPhish: URL not in feed.

Other submissions on 44.241.220.131:

  • https://urldefense.com/v3/__https://ismresearch.co1.qualtrics.com/jfe/form/SV_bDyoiyajr0SralM?Q_DL=68wTUr7FXRQy9n9_bDyoiyajr0SralM_CGC_RSAiT1ObFSTiZcq&Q_CHL=email__;!!I5pVk4LIGAfnvw!jDkgQR81qqYTNFTou2tcTwhyCKufBf5S62z5ekyHfbRkPol8I3bLLzVvGkAhbUkOrgxGYFANGhYlt_d7hqa-3VgD7Sw$

  • https://urldefense.com/v3/__https://ncv.microsoft.com/D0Tkg9Sdp5__;!!I5pVk4LIGAfnvw!kVQbEP1WqQzzB3itBnYPDSKVgmQb3Xl47Cb1pTe3J8y0qh-CgesljFpYgU95tqbK3SBfwYI7oSMLtU_Jg6AoL7BftBeBaNS3Pqg$

  • https://urldefense.com/v3/__https://smartmanufacturingnetwork.us10.list-manage.com/track/click?u=184ffc4699eaae2e1bc350cb2&id=7c4149726b&e=2c50ad894a__;!!I5pVk4LIGAfnvw!lGkym5_BND-qe5DJXDMHIWM9jCo_CdKOoIRFGFNzn3Wwq_k9OiA0G2PPFiDtV1cwANmrTZZKBqQ1fKvMuLs1yCc5mIM$

  • https://urldefense.com/v3/__https://smartmanufacturingnetwork.us10.list-manage.com/track/click?u=184ffc4699eaae2e1bc350cb2&id=4bcf6fcb21&e=2c50ad894a__;!!I5pVk4LIGAfnvw!lGkym5_BND-qe5DJXDMHIWM9jCo_CdKOoIRFGFNzn3Wwq_k9OiA0G2PPFiDtV1cwANmrTZZKBqQ1fKvMuLs1oXAdM8Y$

  • https://urldefense.com/v3/__https://www.fedex.com__;!!I5pVk4LIGAfnvw!hA7zWmd0MiXyVzlbjxonkemZFgsfcVqVEU6QbglQ6ERXqN5GmceN9RzIFV2U-LWY6TuVL9CDcE3LeAmzB0aORb99_TEL86RUCg$

  • https://urldefense.com/v3/__http://email.execonline.com/ls/click?upn=uqt2SM-2BqjAMwz-2FL3MFXk9LbYV1t8lKb9ZEV6pjhimRcNy2wC1RXlTqnY2vjL24GMETHgA4rhUogtaztjLjTLMqJgv9rg55bc9WK1QhgR9XlHayYcD0L8-2Fs9PA5t0qd5mgL4-_A30JFH4-2F8Fs6IsxIWCoA75jrUs9ElAeyZWu9qkQauaSBcioC-2FLxDTy8nLXyHF7hCMY1qqnvyE8J1Wr6MrRSyYpNersVLjZga0nK3K3K6L5Qh5dqEa-2FP373884DsEiOvr8WKbhYAegUKA0YLn2VVQvRBTVD7AiGxJVofyKJOdSmfMEc-2BmLzfDZjjc-2FAKwjWpkXNcUJ0q84PPUqfeIa3QS5rAoYXe2H-2FETCIlo4h2Xj-2FPbMaARxjQRsD3JBZ9S0CBJSQ1-2BFhhjM-2FP8pNb7TaXJhsuv0IhBGGFkw9UpmqhlQ-2FuAHK06NRZvzqr2tyDVfa9Cav3mtjCcvzBzBZrEgeyZJeFLFQ-2FnwNa6ul4TTbTLmq9SgGIBmMomaWQZs7pgeEzf6pPufaReQ4N5K8wdAObubCB0965RMKD5RacZOQkq61CGFkPqHKAieUvzP64S-2FwttSuGYvn7cTCLbgby4rQ6dAxtHBTwVYGWpZxpZr1aPg6aHurrpdrnrkn9uUmSwdGY-2By-2BGYX-2BeK4SrfK4s-2Bgefa9Q-3D-3D__;!!I5pVk4LIGAfnvw!hXyoQ4bu-vDqkbkRmVRP4UUI5wnBz14s6xOdS48sCDFeQRrI_r3CIjWKKqQjmMt5uH0D2MJxvfTDwSo196TpWXtDEJIt$

  • https://urldefense.com/v3/__https://fordbridge-events.com/form-view/56__;!!I5pVk4LIGAfnvw!iqFvyInikgwhmvChaUG4JfMJqMpSsjnZLEPhBqVApMpStVm20nobVdExyJTRqIk0YlNEBDBlOpBJgl7AG773CqmjsD63NQ$

  • https://urldefense.com/v3/__https://yourt.=lueink.app/k/63cfd3a3d9fab100076e385e?lid=&url=https*3A*2F*2Fcalen=ly.com*2Fblueinksales*2Fdiscovery-call__;JSUlJSU!!PIZeeW5wscynRQ!qeQoNA_Yb=BXftnI-GKD2IPNuiDW5bKpLj3-5oI6sUFDACOwpgZPlbO9FfVAhUq-LbVxo2SnAmpedM0Xe9kg=j2uprraGQ$

  • https://urldefense.com/v3/__https://click.comm.delltechnologies.com/?qs=2a7996b9ef3f07127b63084dc86937c9a7298f9be9224609697fd19b67ef31f740cac0465c35cf74ab916b3a33d5f72604001676974925d4b65c9957db5252d8__;!!I5pVk4LIGAfnvw!hoHQbUha4HlXrH4K5-2Elyu8iigyAZ59EUrsdWIb-yNel5jz2I_yQMZXdwOdhC9yrza6GuggPPbuHkfLpDfkIP3IhVNLFFR4UTg0UjerLyzEAg$

  • https://urldefense.com/v3/__https://eruditets.us14.list-manage.com/track/click?u=1d9ed79a2d2f8cbcc4f5a505a&id=098a0f989a&e=9797e7cca4__;!!I5pVk4LIGAfnvw!h55py6NnqO13CrpsfMzuIWgvWkPAoVG0oiJqFSwSRpM85QtGVLg4zvL_Zxnwe4TYKDqYuKzNt8JXSuik0OSfZ_6C$

Other submissions on urldefense.com:

  • https://urldefense.com/v3/__https://www.amazon.com/gp/r.html?C=23J4QFP74FONO&M=urn:rtn:msg:2023030302235042b160ebcf6348b7a4224084e7e0p0na&R=1N0HTIQYB9IB7&T=C&U=https*3A*2F*2Fwww.amazon.com*2Fg*2F8R2FNV9A7JFK9N*3Fref_*3Dpe_906650_284786740&H=MUAI9FDDQQYXJ5Y3E5IRTVHYOKMA&ref_=pe_906650_284786740__;JSUlJSUlJQ!!OOnBcYQ!MGWllQk1Z0tNyIDlIraCYgnaVTwOUjRV2eneGyox3yECjqyvk7QUFpIr4ZB9xNXrVMsyylol1r2dg0D6CspwevFfdC3Nlx8R$

  • https://urldefense.com/v3/__https://sites.google.com/view/agxfreightgp/__;!!OOnBcYQ!NunsBilqeENRe09ImaW2wYWq4vlkJ8oxXPvJw_KWnun36d2kBsJHw-0pzKNq9vDgfPswyRArjRbKwIXAZoOQPf8$

  • https://urldefense.com/v3/__https://sites.google.com/view/agxfreightgp/__;!!OOnBcYQ!OsCWBc1VXQdRe18NPcQLkOOwnow87mFKiBkQxE1R_6CV1OKqNLfLcxgCg8NDBm1aNaYvWIP_QFRzTiHNVieumTm8Cg$

  • https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Ffile.io*2FDfD4z7dVkTfl&data=05*7C01*7C*7C479223b20a384d2f587308db1ee4bf09*7C049f1d45bc1e473dbaf97630814546b0*7C0*7C0*7C638137742698227730*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000*7C*7C*7C&sdata=lbv3SlSeDYghs6pvcjlYneatyNhzO*2FZfh9cySVDKLEw*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSU!!OOnBcYQ!Ks3AG1pz_ofYq5NzdPazrKBf4IR9B7AkjaAbY5NmDBguUgU8w5rD1DOgO10Un5Gsv3kXfoaUgINSz9OY_fkKDXDaMl8$

  • https://urldefense.com/v3/__https://incrementacrm.com/api/link/f59ae1f0b71116523a35db2f41d50454/?url=https*3A*2F*2Fforms.office.com*2FPages*2FResponsePage.aspx*3Fid*3Do8GsgLef-UWVMXN6NzA5rMIaBcYDsVhEqyu_LQaGCkFURVJMVzJMUTNSSzVURlBYR1FWUkhEUVBJSi4u__;JSUlJSUlJQ!!OOnBcYQ!JTRY5OsWpdSCRHmpWVzCZbmeG4lxVulNBAUPZLI_7EtOepinFVr0gqr9VjA8o2h20dZCrARCzhJ9ORHWi3jFYz6yqhwYuQ$

  • https://urldefense.com/v3/__https:/eedu.fa.em3.oraclecloud.com:443/hcmUI/faces/deeplink?objType=WLF_LEARN_ENROLLMENT&action=NONE&objKey=assignmentRecordId*3D300001636304848__;JQ!!IF02HbLKfvgGAZjM2hVeUw!e4qwRT-KUbMUwgIcajoL97I53jTxv-RC9ZCXPPfVUHedVxTQNPBfEMH65rQFZSiY_l4wc9ZJFe4QZdo4sK2D3al_ys1x68diuAENxR0VLD8PwttD1w$

  • https://urldefense.com/v3/__https://eedu.fa.em3.oraclecloud.com:443/hcmUI/faces/deeplink?objType=WLF_LEARN_ENROLLMENT&action=NONE&objKey=assignmentRecordId*3D300001636471454__;JQ!!IF02HbLKfvgGAZjM2hVeUw!YGRBS5-XqOEd6E6oopO4rFORv6KkJTGNSbgd5-9c_LFNimNL543QebLylB-VOHxo63uMzeYvDZZzwAQfQuLysIWbykcH77DJWt8ztXuJt6s6F3w$

  • https://urldefense.com/v3/__https://fb4qa.app.goo.gl/?amv=0&apn=com.aloo40.aloo40&ibi=com.Alo40.Alo40&isi=1334011325&ius=com.Alo40.Alo40&link=https:**Aqqyzo.app.link*1q3mitmddyb__;Ly8v!!OOnBcYQ!NXcBBY02zQhfpbpo1n3HZ0Z1Q090LvXMATrDfI1PEYNSPf00OkeN7vPzhymsVUo4hz3JstHzJIGBL15vNdz42tet$

  • https://urldefense.com/v3/__https://setup.icloud.com/email/prefs/storage?path=STORAGE_AND_BACKUP*CHANGE_STORAGE_PLAN__;Lw!!OOnBcYQ!LwvMDY4gzNnzYIiPGyib386AG2OiyBAz-u0zlsCSA6HAsuKEN3JzyIVWq8PW1V_vBYE0_dMQ2fIeh45dzg$

  • https://urldefense.com/v3/__https://securemail.smarshbusinesscloud.com/login.html?msgUserId=41ef881189343e0d&enterprise=cid_13727_emg&rrRegcode=yTBRT9cS&locale=en_US__;!!OOnBcYQ!NmH4FWO1OZx5O4GHpKZnh8qBSWjXIlD17Gx2R31sdos9Gyfdf4O0gjaUU4p1qKz_k_LQoGuGZ9fNSlzcHl6b0QPjqK3emVSf8rg$

Previous checks:

                               
                             
  • POST
    0 Timed out waiting for a response.

    https://rum-http-intake.logs.datadoghq.com/v1/input/pubdffb4b4dd07f1f43b42276901d58da91?ddsource=browser&ddtags=sdk_version%3A2.17.0%2Cenv%3Aproduction%2Cservice%3Adocs-platform%2Cversion%3A7a074c206c5829df3c986dce5510a85b818a2535&batch_time=1684475580008

  • https://urldefense.com/v3/__https://go.circleci.com/NDg1LVpNSC02MjYAAAGLvrITLbUlRYn1BQfMZ6HYlnbOH5mHnmX8Yp6Zdqb1bKVSHFObjTFb1N7DJEQV0taQMg1JPtzmK9_U6Xs=__;!!IcVJLefWrg!NZWAY85rvHjiKtjAckpJCz9koRXRrAe7Dm6Ysoylt-_3RUOCNwSkCyMtRygxxLMCAJYWLfF7SjMDTInxxcS3kq8byUwY$ https://go.circleci.com/NDg1LVpNSC02MjYAAAGLvrITLbUlRYn1BQfMZ6HYlnbOH5mHnmX8Yp6Zdqb1bKVSHFObjTFb1N7DJEQV0taQMg1JPtzmK9_U6Xs=
  • https://go.circleci.com/NDg1LVpNSC02MjYAAAGLvrITLbUlRYn1BQfMZ6HYlnbOH5mHnmX8Yp6Zdqb1bKVSHFObjTFb1N7DJEQV0taQMg1JPtzmK9_U6Xs=
<html class="js-focus-visible" data-js-focus-visible="" lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>GitLab integration overview - CircleCI</title><meta name="description" content="Learn how to integrate GitLab with CircleCI."><meta property="og:title" content="GitLab integration overview - CircleCI"><meta property="og:description" content="Learn how to integrate GitLab with CircleCI."><meta property="og:url" content="https://circleci.com/docs/gitlab-integration/"><meta property="og:image" content="https://circleci.com/docs/assets/meta/open-graph-cci-docs.jpg"><link href="/docs/assets/meta/favicon.png" rel="icon" type="image/png"><link rel="canonical" href="https://circleci.com/docs/gitlab-integration/"><link rel="alternate" hreflang="en" href="https://circleci.com/docs/gitlab-integration/"><link rel="alternate" hreflang="ja" href="https://circleci.com/docs/ja/gitlab-integration/"><link rel="alternate" hreflang="x-default" href="https://circleci.com/docs/gitlab-integration/"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:domain" content="circleci.com"><meta property="twitter:url" content="https://circleci.com/docs/gitlab-integration/"><meta name="twitter:title" content="GitLab integration overview - CircleCI"><meta name="twitter:description" content="Learn how to integrate GitLab with CircleCI."><meta name="twitter:image" content="https://circleci.com/docs/assets/meta/open-graph-cci-docs.jpg"><meta charset="utf-8"><meta name="next-head-count" content="19"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="true"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"><script type="text/javascript" async="" src="https://cci-growth-utils.s3.us-east-2.amazonaws.com/amplitude-5.2.2.min.js"></script><script type="text/javascript" async="" src="https://cci-growth-utils.s3.us-east-2.amazonaws.com/segment/analytics.js/v1/AbgkrgN4cbRhAVEwlzMkHbwvrXnxHh35/analytics.min.js"></script><script data-cookieconsent="marketing" type="text/plain">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-W9HDVK');</script><script data-cookieconsent="statistics">!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src="https://cci-growth-utils.s3.us-east-2.amazonaws.com/segment/analytics.js/v1/" + key + "/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=e};analytics._writeKey="AbgkrgN4cbRhAVEwlzMkHbwvrXnxHh35";;analytics.SNIPPET_VERSION="4.15.3";


}}();</script><script data-cookieconsent="statistics">window.analytics.load('AbgkrgN4cbRhAVEwlzMkHbwvrXnxHh35', {
      integrations: {
        All: false,
        Amplitude: true,
        Postgres: true,
        "Segment.io": true,
        Hotjar: true
      },
    });</script><meta name="zd-site-verification" content="srxqwtrxsmb1bcawp5j3d1"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""><link rel="preload" href="https://assets-docs.circleci.com/docs/_next/static/css/95e8257575110deb.css" as="style"><link rel="stylesheet" href="https://assets-docs.circleci.com/docs/_next/static/css/95e8257575110deb.css" data-n-p=""><noscript data-n-css=""></noscript><script defer="" nomodule="" src="https://assets-docs.circleci.com/docs/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/webpack-67caddf7d7ed73ef.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/framework-99a79f2f60e1c8da.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/main-85e8c75c2b456252.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/pages/_app-49cae0bbef842a3e.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/757-066e999be4676d2a.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/493-559420d22766e18e.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/987-a21d1b94b2d74664.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/188-ab3ae68e89ce93c4.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/chunks/pages/%5B...slug%5D-199f33bbd95f7cc8.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/7a074c206c5829df3c986dce5510a85b818a2535/_buildManifest.js" defer=""></script><script src="https://assets-docs.circleci.com/docs/_next/static/7a074c206c5829df3c986dce5510a85b818a2535/_ssgManifest.js" defer=""></script><style data-href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap">@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5vAA.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Me5g.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9vAA.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlvAA.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style><script type="text/javascript">var circleci = {config: {"exceptionLoggerClientToken":"ca1befe4db724589813fc4a2a9642d4d","analyticsKey":"AbgkrgN4cbRhAVEwlzMkHbwvrXnxHh35","datadogRumApplicationId":"2a3e19ca-297e-4a53-a2cf-082e827d13d3","datadogRumClientToken":"pubdffb4b4dd07f1f43b42276901d58da91"}};</script><style data-emotion-css="1vs42if">.css-1vs42if{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:linear-gradient(to right,#F7F7F7 0%,#F7F7F7 calc(50% - 860px),#fff calc(50% - 860px),#fff 100%);}</style><style data-emotion-css="quiohg">.css-quiohg{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:linear-gradient(to right,#F7F7F7 0%,#F7F7F7 calc(50% - 860px),#fff calc(50% - 860px),#fff 100%);}</style><style data-emotion-css="w4sqhj">.css-w4sqhj{width:100%;box-shadow:0 -6px 18px -3px #000000bd;z-index:100;background-color:#FFFFFF;position:-webkit-sticky;position:sticky;top:0px;}</style><style data-emotion-css="g79ewj">.css-g79ewj{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:100%;box-shadow:0 -6px 18px -3px #000000bd;z-index:100;background-color:#FFFFFF;position:-webkit-sticky;position:sticky;top:0px;}</style><style data-emotion-css="1l8dtod">.css-1l8dtod{margin:0 auto;width:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:-webkit-sticky;position:sticky;padding:1rem 1rem 0.5rem 1rem;}@media (min-width:1200px){.css-1l8dtod{padding:1rem 1.5rem 0.5rem 1.5rem;}}</style><style data-emotion-css="1sjxx8s">.css-1sjxx8s{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin:0 auto;width:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:-webkit-sticky;position:sticky;padding:1rem 1rem 0.5rem 1rem;}@media (min-width:1200px){.css-1sjxx8s{padding:1rem 1.5rem 0.5rem 1.5rem;}}</style><style data-emotion-css="6irssd">.css-6irssd{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><style data-emotion-css="1lovh0t">.css-1lovh0t{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><style data-emotion-css="1q9np79">.css-1q9np79{display:block;margin-right:0.5rem;}</style><style data-emotion-css="si22pm">.css-si22pm{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:none;text-decoration:none;}</style><style data-emotion-css="1yqyrw2">.css-1yqyrw2{width:126;}</style><style data-emotion-css="x8jb11">.css-x8jb11{color:rgba(22,22,22,1);font-size:1.5rem;font-weight:300;-webkit-letter-spacing:0.01em;-moz-letter-spacing:0.01em;-ms-letter-spacing:0.01em;letter-spacing:0.01em;line-height:1.50;margin-left:0.5rem;text-align:center;-webkit-text-decoration:none;text-decoration:none;}@media (max-width:768px){.css-x8jb11{display:none;}}</style><style data-emotion-css="1m3tj04">.css-1m3tj04{display:none;}@media (min-width:1200px){.css-1m3tj04{display:block;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:0px 80px;}}</style><style data-emotion-css="tki8r1">.css-tki8r1{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:none;}@media (min-width:1200px){.css-tki8r1{display:block;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:0px 80px;}}</style><style data-emotion-css="cssveg">.css-cssveg{position:relative;}</style><style data-emotion-css="409epr">.css-409epr{height:100%;position:absolute;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;left:0;}@media (min-width:1200px){.css-409epr{padding-left:1rem;}}</style><style data-emotion-css="19wtgi5">.css-19wtgi5{width:24px;height:24px;min-width:24px;color:currentColor;}</style><style data-emotion-css="bleycz">.css-bleycz{display:block;width:100%;}</style><style data-emotion-css="xxqz7m">.css-xxqz7m{height:100%;position:absolute;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;right:0;}@media (min-width:1200px){.css-xxqz7m{display:none;padding-right:0.75rem;}}</style><style data-emotion-css="1pgy7j">.css-1pgy7j{width:28px;height:28px;min-width:28px;color:currentColor;}</style><style data-emotion-css="th0ig7">.css-th0ig7{width:100%;border-color:#BFBFBF;border-style:solid;border-width:0px;border-radius:0.25rem;padding:0 2rem;background-color:#FFFFFF;color:#161616;font-size:1rem;line-height:1.50;outline:0;}@media (min-width:1200px){.css-th0ig7{padding:0.5rem 3rem;border-width:1px;}}.css-th0ig7::-webkit-input-placeholder{color:#6A6A6A;}.css-th0ig7::-moz-placeholder{color:#6A6A6A;}.css-th0ig7:-ms-input-placeholder{color:#6A6A6A;}.css-th0ig7::placeholder{color:#6A6A6A;}</style><style data-emotion-css="2ls5mi">.css-2ls5mi{height:auto;width:100%;padding:0.5rem 1rem;border:1px solid rgba(212,212,212,1);background-color:rgba(251,251,251,1);border-radius:0.125rem;line-height:1.50;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;font-weight:400;color:rgba(22,22,22,1);box-sizing:border-box;width:100%;border-color:#BFBFBF;border-style:solid;border-width:0px;border-radius:0.25rem;padding:0 2rem;background-color:#FFFFFF;color:#161616;font-size:1rem;line-height:1.50;outline:0;}.css-2ls5mi:not(:placeholder-shown){border-color:rgba(191,191,191,1);background-color:rgba(255,255,255,1);}.css-2ls5mi:disabled{background-color:rgba(255,255,255,1);border-color:rgba(212,212,212,1);}.css-2ls5mi:disabled::-webkit-input-placeholder{color:rgba(127,127,127,1);opacity:1;}.css-2ls5mi:disabled::-moz-placeholder{color:rgba(127,127,127,1);opacity:1;}.css-2ls5mi:disabled:-ms-input-placeholder{color:rgba(127,127,127,1);opacity:1;}.css-2ls5mi:disabled::placeholder{color:rgba(127,127,127,1);opacity:1;}.css-2ls5mi::-webkit-input-placeholder{color:rgba(64,64,64,1);opacity:1;}.css-2ls5mi::-moz-placeholder{color:rgba(64,64,64,1);opacity:1;}.css-2ls5mi:-ms-input-placeholder{color:rgba(64,64,64,1);opacity:1;}.css-2ls5mi::placeholder{color:rgba(64,64,64,1);opacity:1;}.css-2ls5mi:focus{outline-color:rgba(0,120,202,1);background-color:rgba(255,255,255,1);}.css-2ls5mi:hover:enabled{border-color:rgba(52,52,52,1);background-color:rgba(255,255,255,1);}@media (min-width:1200px){.css-2ls5mi{padding:0.5rem 3rem;border-width:1px;}}.css-2ls5mi::-webkit-input-placeholder{color:#6A6A6A;}.css-2ls5mi::-moz-placeholder{color:#6A6A6A;}.css-2ls5mi:-ms-input-placeholder{color:#6A6A6A;}.css-2ls5mi::placeholder{color:#6A6A6A;}</style><style data-emotion-css="11zozgc">.css-11zozgc{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none;}@media (min-width:1200px){.css-11zozgc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><style data-emotion-css="1gf5w7k">.css-1gf5w7k{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none;}@media (min-width:1200px){.css-1gf5w7k{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><style data-emotion-css="dsh0zb">.css-dsh0zb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#161616;background-color:transparent;background:none;border:none;margin-top:0.125rem;cursor:pointer;}.css-dsh0zb:hover{-webkit-filter:invert(39%) sepia(99%) saturate(634%) hue-rotate(105deg) brightness(83%) contrast(97%);filter:invert(39%) sepia(99%) saturate(634%) hue-rotate(105deg) brightness(83%) contrast(97%);}@media (max-width:768px){.css-dsh0zb:hover{-webkit-filter:none;filter:none;}}</style><style data-emotion-css="14mcfqm">.css-14mcfqm{height:1.5rem;width:1.5rem;background-color:transparent;color:#161616;}</style><style data-emotion-css="1syyx6e">.css-1syyx6e{padding-left:1.5rem;}@media (max-width:768px){.css-1syyx6e{margin:1.5rem 1rem;}}</style><style data-emotion-css="h3y3qz">.css-h3y3qz{background-color:rgba(4,155,74,1) !important;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;height:48px;font-size:18px;line-height:1.5rem !important;font-weight:700;font-style:normal;border-radius:0.25rem;border:none;-webkit-transition:background-color 300ms;transition:background-color 300ms;-webkit-flex:auto 0 0;-ms-flex:auto 0 0;flex:auto 0 0;}.css-h3y3qz:hover:enabled{cursor:pointer;}.css-h3y3qz:disabled{opacity:0.5;cursor:not-allowed;}.css-h3y3qz:hover{background-color:rgba(4,140,67,1) !important;}.css-h3y3qz:active{background-color:#00701B !important;}</style><style data-emotion-css="1x7afpu">.css-1x7afpu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0.5rem 1rem;font-size:0.875rem;font-weight:500;line-height:1.7142857143;border-radius:4px;border:none;-webkit-transition:background-color 300ms;transition:background-color 300ms;-webkit-flex:auto 0 0;-ms-flex:auto 0 0;flex:auto 0 0;color:#FFFFFF;background-color:#0078CA;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;background-color:rgba(4,155,74,1) !important;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;height:48px;font-size:18px;line-height:1.5rem !important;font-weight:700;font-style:normal;border-radius:0.25rem;border:none;-webkit-transition:background-color 300ms;transition:background-color 300ms;-webkit-flex:auto 0 0;-ms-flex:auto 0 0;flex:auto 0 0;}.css-1x7afpu:hover:enabled{cursor:pointer;}.css-1x7afpu:disabled{opacity:0.5;cursor:not-allowed;}.css-1x7afpu:focus:enabled{box-shadow:0px 0px 0 1px #FFFFFF, 0px 0px 0px 0.125rem #3495db, 0px 0px 0.125rem 0.125rem #3495db;}.css-1x7afpu:focus-visible{outline:none;}.css-1x7afpu:hover:enabled{background-color:#0062B0;}.css-1x7afpu:active{background-color:#004A95;}.css-1x7afpu:hover:enabled{cursor:pointer;}.css-1x7afpu:disabled{opacity:0.5;cursor:not-allowed;}.css-1x7afpu:hover{background-color:rgba(4,140,67,1) !important;}.css-1x7afpu:active{background-color:#00701B !important;}</style><style data-emotion-css="ml1eyx">.css-ml1eyx{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-height:1.5rem;height:1.5rem;}@media (min-width:1200px){.css-ml1eyx{display:none;}}</style><style data-emotion-css="qlr832">.css-qlr832{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-height:1.5rem;height:1.5rem;}@media (min-width:1200px){.css-qlr832{display:none;}}</style><style data-emotion-css="hmc50w">.css-hmc50w{display:inline-block;padding-right:0.5rem;cursor:pointer;width:2rem;-webkit-transition:opacity 0.25s ease;transition:opacity 0.25s ease;}</style><style data-emotion-css="1qtr1z7">.css-1qtr1z7{width:24px;height:24px;min-width:24px;color:currentColor;display:inline-block;padding-right:0.5rem;cursor:pointer;width:2rem;-webkit-transition:opacity 0.25s ease;transition:opacity 0.25s ease;}</style><style data-emotion-css="pdp0ok">.css-pdp0ok{height:24px;width:1px;background:#161616;}</style><style data-emotion-css="1j3dzco">.css-1j3dzco{background:none;border:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:64px;width:40px;padding-right:0px;padding-left:0px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-right:-8px;cursor:pointer;color:#161616;}</style><style data-emotion-css="9496lj">.css-9496lj{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;min-height:50px;}</style><style data-emotion-css="acydq">.css-acydq{padding:0 1rem;}@media (min-width:1200px){.css-acydq{padding:0 1.5rem;}}</style><style data-emotion-css="wt4rcw">.css-wt4rcw{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:0 1rem;}@media (min-width:1200px){.css-wt4rcw{padding:0 1.5rem;}}</style><style data-emotion-css="1666bo6">.css-1666bo6 > div{border-bottom-width:0;}</style><style data-emotion-css="1h7v07b">.css-1h7v07b{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;border-bottom-color:#D4D4D4;border-bottom-width:1px;border-bottom-style:solid;}</style><style data-emotion-css="vu8356">.css-vu8356{-webkit-text-decoration:none;text-decoration:none;color:#6A6A6A;}.css-vu8356:hover{color:#161616;}.css-vu8356:active{color:#161616;}</style><style data-emotion-css="1h2mcfj">.css-1h2mcfj{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:56px;color:#6A6A6A;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;font-size:0.875rem;border:none;margin:0;padding:1rem 0.75rem;background-color:#FFFFFF;line-height:1.50;text-transform:uppercase;cursor:pointer;}.css-1h2mcfj:hover{color:#161616;}.css-1h2mcfj[aria-selected='true']{color:#161616;font-weight:700;box-shadow:inset 0 -0.25rem #0078CA;}.js-focus-visible .css-1h2mcfj:focus{outline:none;z-index:1;box-shadow:0 0 0.25rem #0078CA, -1px 1px 0 #0078CA,1px -1px 0 #0078CA, 1px 1px 0 #0078CA,-1px -1px 0 #0078CA;}.js-focus-visible .css-1h2mcfj:focus.css-1h2mcfj[aria-selected='true']{box-shadow:0 0 0.25rem #0078CA, -1px 1px 0 #0078CA,1px -1px 0 #0078CA, 1px 1px 0 #0078CA,-1px -1px 0 #0078CA, inset 0 -0.25rem #0078CA;}.js-focus-visible .css-1h2mcfj:focus:not(.focus-visible),.js-focus-visible .css-1h2mcfj:focus.css-1h2mcfj[aria-selected='true']:not(.focus-visible){outline:none;box-shadow:inset 0 -0.25rem #0078CA;}</style><style data-emotion-css="k9jl6u">.css-k9jl6u{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none;}.css-k9jl6u span:last-of-type{padding-right:0;}@media (min-width:1200px){.css-k9jl6u{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><style data-emotion-css="1chu1ls">.css-1chu1ls{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none;}.css-1chu1ls span:last-of-type{padding-right:0;}@media (min-width:1200px){.css-1chu1ls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><style data-emotion-css="2wgwcz">.css-2wgwcz{padding-right:1.5rem;font-family:'Roboto';}.css-2wgwcz > a{color:#6A6A6A;}.css-2wgwcz > a:hover{color:#161616;}</style><style data-emotion-css="x7gnkn">.css-x7gnkn{color:#0078CA;-webkit-text-decoration:none;text-decoration:none;font-size:1rem;line-height:1.50;font-weight:500;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:3px;column-gap:3px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.css-x7gnkn:hover{color:#0062B0;-webkit-text-decoration:underline;text-decoration:underline;}</style><style data-emotion-css="1alxkfq">.css-1alxkfq{background-color:#008647;height:2px;width:0%;margin:0;padding:0;-webkit-transition-property:width;transition-property:width;-webkit-transition-duration:0.1s;transition-duration:0.1s;-webkit-transition-timing-function:linear;transition-timing-function:linear;position:fixed;top:122px;left:0;z-index:45;}@media (min-width:1200px){.css-1alxkfq{top:128px;}}</style><style data-emotion-css="1yce0ae">.css-1yce0ae{width:100%;top:128;}</style><style data-emotion-css="1cibq5g">.css-1cibq5g{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:100%;top:128;}</style><style data-emotion-css="3giiur">.css-3giiur{width:100%;max-width:1920px;margin:auto;}</style><style data-emotion-css="dgbsjx">.css-dgbsjx{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-flex:inherit;-webkit-flex-grow:inherit;-ms-flex-positive:inherit;flex-grow:inherit;top:128px;width:100%;max-width:1920px;margin:auto;}</style><style data-emotion-css="1y2jjs3">.css-1y2jjs3{display:none;}@media (min-width:1200px){.css-1y2jjs3{display:block;}}</style><style data-emotion-css="klrqbz">.css-klrqbz{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex:1;-ms-flex:1;flex:1;display:none;}@media screen and (min-width:480px){.css-klrqbz{-webkit-flex:1;-ms-flex:1;flex:1;}}@media screen and (min-width:768px){.css-klrqbz{-webkit-flex:0 0 288px;-ms-flex:0 0 288px;flex:0 0 288px;}}@media (min-width:1200px){.css-klrqbz{display:block;}}</style><style data-emotion-css="11fl4l6">.css-11fl4l6{width:100%;background:white;}.css-11fl4l6 ul{padding-left:0.75rem;}.css-11fl4l6 ul + subSection{margin-top:0.5rem;}.css-11fl4l6 li{list-style-type:none;}@media (min-width:1200px){.css-11fl4l6{background:#f7f7f7;border-right:1px solid #e2e0e0;height:calc(100vh - 128px);overflow-y:scroll;padding:0px 22px 0px 0px;position:fixed;width:288px;}}</style><style data-emotion-css="hce1c">.css-hce1c{padding-left:0px !important;margin-top:-1.5rem;}@media (min-width:1200px){.css-hce1c{padding-left:1.5rem !important;margin-top:0px;}}</style><style data-emotion-css="13svt41">.css-13svt41{cursor:pointer;margin-top:1.5rem;position:relative;list-style-type:none;font-size:14px;font-weight:600;color:#555;}</style><style data-emotion-css="1sg2lsz">.css-1sg2lsz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><style data-emotion-css="1m34rt5">.css-1m34rt5{margin-right:6px;width:24px;height:24px;}</style><style data-emotion-css="10tjyd0">.css-10tjyd0{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><style data-emotion-css="1tezdrc">.css-1tezdrc{padding:0.25rem;-webkit-transition:-webkit-transform 0.2s ease;-webkit-transition:transform 0.2s ease;transition:transform 0.2s ease;}</style><style data-emotion-css="1vlg0km">.css-1vlg0km{width:24px;height:24px;min-width:24px;color:#333;padding:0.25rem;-webkit-transition:-webkit-transform 0.2s ease;-webkit-transition:transform 0.2s ease;transition:transform 0.2s ease;}</style><style data-emotion-css="lfzoxb">.css-lfzoxb{padding:3rem 2.5rem 0 2.5rem;}@media (max-width:768px){.css-lfzoxb{padding:1.5rem 1rem;}}</style><style data-emotion-css="1xwsbgo">.css-1xwsbgo{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex:1;-ms-flex:1;flex:1;padding:3rem 2.5rem 0 2.5rem;}@media (max-width:768px){.css-1xwsbgo{padding:1.5rem 1rem;}}</style><style data-emotion-css="lajneu">.css-lajneu{color:#555555;font-size:1rem;line-height:1.5rem;}.css-lajneu p{margin-top:0px;margin-bottom:10px;}.css-lajneu ol,.css-lajneu ul{margin-bottom:10px;margin-top:0;}.css-lajneu .table{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;table-layout:fixed;margin:1.5rem 0;}.css-lajneu .table thead{background:#F7F7F7;}.css-lajneu .table th,.css-lajneu .table td{line-height:1.50;padding:0.5rem;text-align:left;vertical-align:top;}.css-lajneu .table td p{overflow-wrap:anywhere;}.css-lajneu .table th{border-bottom:1px solid #E3E3E3;color:#555555;font-weight:500;font-size:1rem;}.css-lajneu .table tr th:first-of-type code.language-plaintext,.css-lajneu .table tr td:first-of-type code.language-plaintext{white-space:nowrap !important;}.css-lajneu .table.table-striped > tbody > tr:nth-of-type(even){background-color:#F7F7F7;}.css-lajneu .table.table-no-background > tbody > tr:nth-of-type(even){background:none;}.css-lajneu .table.table-migrating-page tr > td:not(:only-child):first-of-type{padding-left:0;padding-right:0.25rem;}.css-lajneu .table.table-migrating-page tr>td+td{padding-left:0.25rem;padding-right:0;}.css-lajneu .table.table-migrating-page tbody > tr:nth-of-type(even){background:none;}.css-lajneu hr{border:0;border-top:1px solid #E3E3E3;width:100%;margin:1.5rem 0;}.css-lajneu .video-wrapper,.css-lajneu .videoblock{height:0;padding-bottom:56.25%;padding-top:25px;position:relative;margin:1.25rem 0;}</style><style data-emotion-css="2va2ht">.css-2va2ht{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}</style><style data-emotion-css="qcooo9">.css-qcooo9{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}</style><style data-emotion-css="16173t9">.css-16173t9{max-width:calc( 960px - 48px - 48px );}@media (min-width:1300px){.css-16173t9{width:calc(100% - 400px);}}</style><style data-emotion-css="1d5kwgy">.css-1d5kwgy{margin-bottom:1rem;margin-top:0;font-size:2.25rem;font-weight:500;color:#161616;line-height:52px;}</style><style data-emotion-css="12ut1uv">.css-12ut1uv{background:#FFFFFF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border:1px solid #D4D4D4;border-radius:4px;box-sizing:border-box;margin:1rem 0;font-size:15px;}@media (max-width:891px){.css-12ut1uv{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0.5rem;}}</style><style data-emotion-css="tkbaat">.css-tkbaat{padding:0.125rem;margin-left:0.5rem;margin-right:1rem;}@media (max-width:891px){.css-tkbaat{margin-left:0.2em;}}</style><style data-emotion-css="ib8kn6">.css-ib8kn6{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:0.125rem;margin-left:0.5rem;margin-right:1rem;}@media (max-width:891px){.css-ib8kn6{margin-left:0.2em;}}</style><style data-emotion-css="2iw00g">.css-2iw00g{width:1.5rem;margin:0.5rem;}</style><style data-emotion-css="gw0ftn">.css-gw0ftn > span{line-height:1.5rem;}</style><style data-emotion-css="qjll1l">.css-qjll1l a{font-size:15px;}</style><style data-emotion-css="1sqa8jq">.css-1sqa8jq{line-height:1.5rem;}.css-1sqa8jq:before{background:#343434;border-radius:50%;content:"\a";display:inline-block;height:3px;margin:0 5px 3px 5px;width:3px;}</style><style data-emotion-css="1ioox4k">.css-1ioox4k{background-color:#2B2B2B;color:#FFFFFF;text-align:center;border-radius:5px;padding:0.25rem 0.5rem;font-size:0.8125rem;font-weight:700;z-index:1;}</style><style data-emotion-css="100omiu">.css-100omiu{border-left:1px solid #ddd;padding:0.125rem 0.25rem;}@media (max-width:891px){.css-100omiu{border-left:none;}}</style><style data-emotion-css="brpd47">.css-brpd47{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border-left:1px solid #ddd;padding:0.125rem 0.25rem;}@media (max-width:891px){.css-brpd47{border-left:none;}}</style><style data-emotion-css="15alkjj">.css-15alkjj{line-height:1.5rem;}</style><style data-emotion-css="wurzvf">.css-wurzvf{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (min-width:1300px){.css-wurzvf{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}}</style><style data-emotion-css="w4wk6o">.css-w4wk6o{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (min-width:1300px){.css-w4wk6o{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}}</style><style data-emotion-css="c06me2">.css-c06me2{max-height:auto;}</style><style data-emotion-css="gjrqsi">@media (max-width:1300px){.css-gjrqsi{margin:1.5rem 0 2.5rem 0;}}@media (min-width:1300px){.css-gjrqsi{position:-webkit-sticky;position:sticky;top:100px;margin-top:-100px;padding-left:3rem;padding-right:0.5rem;max-height:calc(100vh - 140px);overflow-y:auto;width:400px;}}.css-gjrqsi ul{list-style-type:none;margin-bottom:0;}</style><style data-emotion-css="1u486hm">.css-1u486hm{font-size:1rem;font-weight:500;margin:0;}</style><style data-emotion-css="7w93ns">.css-7w93ns{margin-left:0.25rem;padding-left:10px;border-left:2px solid #F1F1F1;}</style><style data-emotion-css="15ss6d4">.css-15ss6d4{list-style-type:none;margin:0.5rem 0;margin-left:0rem;padding:0 8px;}</style><style data-emotion-css="rvafwm">.css-rvafwm a{color:#343434;font-weight:400;}.css-rvafwm a:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><style data-emotion-css="1kc30t0">.css-1kc30t0{list-style-type:none;margin:0.5rem 0;margin-left:1rem;padding:0 8px;}</style><style data-emotion-css="1puo75j">.css-1puo75j{list-style-type:none;margin:0.5rem 0;margin-left:2rem;padding:0 8px;}</style><style data-emotion-css="1d1hm3o">.css-1d1hm3o .toolbar{top:0.2em;right:0.2em !important;padding:6px;}.css-1d1hm3o .toolbar .copy-to-clipboard-button{cursor:pointer;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;opacity:0;background-color:#EDEDED !important;background-position:50% !important;background-repeat:no-repeat !important;border-radius:4px !important;height:30px;width:46px;}.css-1d1hm3o .toolbar .copy-to-clipboard-button:hover{background-color:#E3E3E3 !important;}.css-1d1hm3o .toolbar .copy-to-clipboard-button:active{background-color:#D4D4D4 !important;}.css-1d1hm3o .toolbar .copy-to-clipboard-button span{display:none;}.css-1d1hm3o .toolbar .copy-to-clipboard-button[data-copy-state='copy']{background-image:url('/docs/icons/copy.svg') !important;}.css-1d1hm3o .toolbar .copy-to-clipboard-button[data-copy-state='copy-success']{background-color:#e3e3e3 !important;background-image:url('/docs/icons/check.svg') !important;}.css-1d1hm3o .code-toolbar:hover .copy-to-clipboard-button{opacity:1;}</style><style data-emotion-css="1gt1ibw">.css-1gt1ibw{color:#161616;line-height:1.50;}</style><style data-emotion-css="n6xkmh">.css-n6xkmh{margin-bottom:10px;margin-top:1.25rem;-webkit-scroll-margin-top:100px;-moz-scroll-margin-top:100px;-ms-scroll-margin-top:100px;scroll-margin-top:100px;}</style><style data-emotion-css="sycgw4">.css-sycgw4{box-sizing:border-box;min-width:0;margin:0;color:#161616;font-size:1.75rem;font-weight:700;line-height:1.25;margin-bottom:10px;margin-top:1.25rem;-webkit-scroll-margin-top:100px;-moz-scroll-margin-top:100px;-ms-scroll-margin-top:100px;scroll-margin-top:100px;}</style><style data-emotion-css="bdwfpm">.css-bdwfpm{margin:1.5rem 0;}</style><style data-emotion-css="l2fvwh">.css-l2fvwh{box-sizing:border-box;min-width:0;margin:0;border:1px solid #D4D4D4;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:60px;margin:0.25rem 0;border-left:4px solid #0078CA;}</style><style data-emotion-css="v7m42f">.css-v7m42f{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-column-gap:0.75rem;column-gap:0.75rem;margin:11px;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}@media (min-width:768px){.css-v7m42f{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}</style><style data-emotion-css="1i7vmqf">.css-1i7vmqf{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-column-gap:0.75rem;column-gap:0.75rem;margin:11px;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}@media (min-width:768px){.css-1i7vmqf{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}</style><style data-emotion-css="15qiqgw">.css-15qiqgw{width:20px;height:20px;min-width:20px;color:#0078CA;}</style><style data-emotion-css="1aoesim">.css-1aoesim{-webkit-column-gap:0.75rem;column-gap:0.75rem;row-gap:0.75rem;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1;-ms-flex:1;flex:1;}</style><style data-emotion-css="45kv77">.css-45kv77{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:100%;-webkit-column-gap:0.75rem;column-gap:0.75rem;row-gap:0.75rem;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1;-ms-flex:1;flex:1;}</style><style data-emotion-css="seohoz">.css-seohoz{box-sizing:border-box;min-width:0;margin:0;-webkit-flex:1;-ms-flex:1;flex:1;}</style><style data-emotion-css="1c1tyii">.css-1c1tyii{box-sizing:border-box;min-width:0;margin:0;color:#161616;font-size:1rem;line-height:1.5;}</style><style data-emotion-css="1ng7dzp">.css-1ng7dzp{-webkit-column-gap:0.75rem;column-gap:0.75rem;min-height:36px;}</style><style data-emotion-css="1828gbe">.css-1828gbe{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-column-gap:0.75rem;column-gap:0.75rem;min-height:36px;}</style><style data-emotion-css="1utggbq">.css-1utggbq{padding:0 0 1.5rem 0;}@media (max-width:768px){.css-1utggbq > div{overflow-x:scroll;ms-overflow-style:none;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;display:-webkit-box;}.css-1utggbq > div::-webkit-scrollbar{display:none;}}</style><style data-emotion-css="c4at1j">.css-c4at1j{width:100%;}</style><style data-emotion-css="1ie5e7y">.css-1ie5e7y{display:inline-block;width:1rem;height:1rem;margin-left:-5px;}</style><style data-emotion-css="qzco2h">.css-qzco2h{display:block;width:100%;fill:#0078CA;}</style><style data-emotion-css="1anc138">.css-1anc138{text-align:center;font-style:italic;margin:1.5rem 0;}</style><style data-emotion-css="105956i">.css-105956i{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;max-width:100%;margin:0 0 1rem 0;}</style><style data-emotion-css="2s9iz">.css-2s9iz{margin-bottom:10px;margin-top:10px;-webkit-scroll-margin-top:100px;-moz-scroll-margin-top:100px;-ms-scroll-margin-top:100px;scroll-margin-top:100px;}</style><style data-emotion-css="ycntf9">.css-ycntf9{box-sizing:border-box;min-width:0;margin:0;color:#161616;font-size:1.5rem;font-weight:500;line-height:1.3333333;margin-bottom:10px;margin-top:10px;-webkit-scroll-margin-top:100px;-moz-scroll-margin-top:100px;-ms-scroll-margin-top:100px;scroll-margin-top:100px;}</style><style data-emotion-css="19alzbx">.css-19alzbx{box-sizing:border-box;min-width:0;margin:0;color:#161616;font-size:1.25rem;font-weight:500;line-height:1.4;margin-bottom:10px;margin-top:10px;-webkit-scroll-margin-top:100px;-moz-scroll-margin-top:100px;-ms-scroll-margin-top:100px;scroll-margin-top:100px;}</style><style data-emotion-css="8x3bmd">.css-8x3bmd{margin:1.25rem 0;}</style><style data-emotion-css="ga8g4r">.css-ga8g4r{margin-bottom:10px;margin-top:10px;}</style><style data-emotion-css="1r8h63">.css-1r8h63{box-sizing:border-box;min-width:0;margin:0;color:#161616;font-size:1.5rem;font-weight:500;line-height:1.3333333;margin-bottom:10px;margin-top:10px;}</style><style data-emotion-css="1ogfrk3">.css-1ogfrk3{font-size:13px;text-align:center;margin-top:1.5rem !important;}.css-1ogfrk3 a{font-size:13px;}</style><style data-emotion-css="18c0lxf">.css-18c0lxf{padding:3rem 0;}</style><style data-emotion-css="1ccmuz">.css-1ccmuz{box-sizing:border-box;min-width:0;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:3rem 0;}</style><style data-emotion-css="q792lb">.css-q792lb{width:100%;background:#FFFFFF;}@media (max-width:768px){.css-q792lb{margin-left:0;width:100%;}}</style><style data-emotion-css="14v7fwq">.css-14v7fwq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;border-top:2px solid #343434;padding:1.5rem 0 1.75rem;}@media (min-width:992px){.css-14v7fwq{padding:1rem 0;}}.css-14v7fwq:first-of-type{border-top:none;}@media (max-width:768px){.css-14v7fwq:first-of-type{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}</style><style data-emotion-css="1sak7pk">.css-1sak7pk{color:rgba(22,22,22,1);font-size:1.5rem;font-weight:300;-webkit-letter-spacing:0.01em;-moz-letter-spacing:0.01em;-ms-letter-spacing:0.01em;letter-spacing:0.01em;line-height:1.50;margin-left:0.5rem;text-align:center;-webkit-text-decoration:none;text-decoration:none;}@media (max-width:768px){.css-1sak7pk{display:inline;}}</style><style data-emotion-css="1val13a">.css-1val13a{margin-left:-1rem;margin-right:-1rem;padding:0 1rem 0 1rem;}</style><style data-emotion-css="6kxz8c">.css-6kxz8c{font-size:1.5rem;line-height:1.5rem;padding-top:0.5rem;}</style><style data-emotion-css="o0ojhh">.css-o0ojhh{margin-left:20px;}.css-o0ojhh a{color:#343434;}</style><style data-emotion-css="6ahvz3">.css-6ahvz3{width:25px;height:auto;}</style><style data-emotion-css="181qfh3">@media (max-width:1200px){.css-181qfh3{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;text-align:center;}}</style><style data-emotion-css="11ermg9">.css-11ermg9{margin:0 -0.75rem;padding:0;list-style:none;}@media (min-width:768px){.css-11ermg9{margin-right:0;}}.css-11ermg9 li{display:inline-block;margin:0 0.75rem 0.25rem;}</style><style data-emotion-css="1eiuvq9">.css-1eiuvq9 a{color:#343434;font-weight:500;}</style><style data-emotion-css="bdyjtd">.css-bdyjtd{margin-bottom:0.25rem;color:#6A6A6A;}@media (max-width:1200px){.css-bdyjtd{margin-top:1rem;text-align:center;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}}</style><style data-emotion="css-global 1ccfmri" data-s="">html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0;}main{display:block;}h1{font-size:2em;margin:0.67em 0;}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace,monospace;font-size:1em;}a{background-color:transparent;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder;}code,kbd,samp{font-family:monospace,monospace;font-size:1em;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none;}*,*::after,*::before{box-sizing:border-box;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;}html{font-family:'Roboto',sans-serif;}html,body,#__next,#root{width:100%;min-height:100vh;scroll-padding-top:128px;}#__next,#root{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><style data-emotion="css-global 1x25u27" data-s="">pre.highlight{padding:1em;padding-left:3.8em;margin:0.5em 0;color:#ffffff;background-color:#2b2b2b;white-space:pre-wrap!important;border-radius:4px;word-wrap:break-word;}pre[class*='language-'],code[class*='language-']{color:#ffffff;font-size:14px;text-shadow:none;font-family:Menlo,Monaco,'Courier New',monospace;direction:ltr;text-align:left;white-space:normal;word-spacing:normal;word-break:normal;line-height:24px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;font-weight:normal;font-feature-settings:'liga' 0,'calt' 0;letter-spacing:0px;}@media print{pre[class*='language-'],code[class*='language-']{text-shadow:none;}}pre[class*='language-']{padding:1em;margin:0.5em 0;overflow:auto;background:#2b2b2b;}:not(pre)>code{border-radius:0.3em;color:#555!important;background:#1b1f230d;word-wrap:anywhere;padding:2px;white-space:pre-wrap;font-size:14px;line-height:initial!important;}.namespace{opacity:0.7;}.token.doctype .token.doctype-tag{color:#569cd6;}.token.doctype .token.name{color:#9cdcfe;}.token.comment,.token.prolog{color:#959595;}.token.punctuation,.language-html .language-css .token.punctuation,.language-html .language-javascript .token.punctuation{color:#d4d4d4;}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.inserted,.token.unit{color:#ffffff;}.token.number{color:#b5cea8;}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.deleted{color:#ffffff;}.language-css .token.string.url{-webkit-text-decoration:underline;text-decoration:underline;}.token.operator,.token.entity{color:#d4d4d4;}.token.operator.arrow{color:#569cd6;}.token.atrule{color:#fff176;}.token.atrule .token.rule{color:#c586c0;}.token.atrule .token.url{color:#9cdcfe;}.token.atrule .token.url .token.function{color:#dcdcaa;}.token.atrule .token.url .token.punctuation{color:#d4d4d4;}.token.keyword{color:#569cd6;}.token.keyword.module,.token.keyword.control-flow{color:#c586c0;}.token.function,.token.function .token.maybe-class-name{color:#dcdcaa;}.token.regex{color:#d16969;}.token.important{color:#d4d4d4;font-weight:500;}.token.italic{font-style:italic;}.token.constant{color:#9cdcfe;}.token.class-name,.token.maybe-class-name{color:#4ec9b0;}.token.console{color:#9cdcfe;}.token.parameter{color:#9cdcfe;}.token.interpolation{color:#9cdcfe;}.token.punctuation.interpolation-punctuation{color:#569cd6;}.token.boolean{color:#569cd6;}.token.property,.token.variable,.token.imports .token.maybe-class-name,.token.exports .token.maybe-class-name{color:#fff176;}.token.selector{color:#d7ba7d;}.token.escape{color:#d7ba7d;}.token.tag{color:#569cd6;}.token.tag .token.punctuation{color:#808080;}.token.cdata{color:#808080;}.token.attr-name{color:#9cdcfe;}.token.attr-value,.token.attr-value .token.punctuation{color:#ce9178;}.token.attr-value .token.punctuation.attr-equals{color:#d4d4d4;}.token.entity{color:#569cd6;}.token.namespace{color:#4ec9b0;}pre[class*='language-javascript'],code[class*='language-javascript'],pre[class*='language-jsx'],code[class*='language-jsx'],pre[class*='language-typescript'],code[class*='language-typescript'],pre[class*='language-tsx'],code[class*='language-tsx']{color:#9cdcfe;}pre[class*='language-css'],code[class*='language-css']{color:#ce9178;}pre[class*='language-html'],code[class*='language-html']{color:#d4d4d4;}.language-regex .token.anchor{color:#dcdcaa;}.language-html .token.punctuation{color:#808080;}pre[class*='language-']>code[class*='language-']{position:relative;z-index:1;}.line-highlight.line-highlight{background:#f7ebc6;box-shadow:inset 5px 0 0 #f7d87c;z-index:0;}.line-numbers .line-numbers-rows{border-right:0px!important;top:-4px!important;}.line-numbers .line-numbers-rows span{min-height:24px!important;}.line-numbers .line-numbers-rows span:before{color:#858585!important;}</style><link as="script" rel="prefetch" href="https://assets-docs.circleci.com/docs/_next/static/chunks/188-49293948334ee9c0.js"><style data-react-tooltip="true">.__react_component_tooltip {
  border-radius: 3px;
  display: inline-block;
  font-size: 13px;
  left: -999em;
  opacity: 0;
  padding: 8px 21px;
  position: fixed;
  pointer-events: none;
  transition: opacity 0.3s ease-out;
  top: -999em;
  visibility: hidden;
  z-index: 999;
}
.__react_component_tooltip.allow_hover, .__react_component_tooltip.allow_click {
  pointer-events: auto;
}
.__react_component_tooltip::before, .__react_component_tooltip::after {
  content: "";
  width: 0;
  height: 0;
  position: absolute;
}
.__react_component_tooltip.show {
  opacity: 0.9;
  margin-top: 0;
  margin-left: 0;
  visibility: visible;
}
.__react_component_tooltip.place-top::before {
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  bottom: -8px;
  left: 50%;
  margin-left: -10px;
}
.__react_component_tooltip.place-bottom::before {
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  top: -8px;
  left: 50%;
  margin-left: -10px;
}
.__react_component_tooltip.place-left::before {
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  right: -8px;
  top: 50%;
  margin-top: -5px;
}
.__react_component_tooltip.place-right::before {
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  left: -8px;
  top: 50%;
  margin-top: -5px;
}
.__react_component_tooltip .multi-line {
  display: block;
  padding: 2px 0;
  text-align: center;
}</style><script async="" src="https://static.hotjar.com/c/hotjar-413720.js?sv=6"></script><script async="" src="https://script.hotjar.com/modules.9ac4218629ac8ca6cf73.js" charset="utf-8"></script></head><body><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-W9HDVK" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="__next" data-reactroot=""><div class="layout css-quiohg"><div class="css-g79ewj"><div data-testid="header" class="css-1sjxx8s"><div class="css-1lovh0t"><div data-testid="header-circle-logo" class="css-1q9np79"><a href="https://circleci.com/docs/" data-testid="footer-circleci-logo" class="css-si22pm"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 100" width="126" class="css-1yqyrw2"><circle fill="#161616" cx="30.44" cy="52.5" r="7.471"></circle><path fill="#161616" d="M30.44 21.124c-14.619 0-26.903 10-30.388 23.532-.03.119-.052.244-.052.373 0 .825.669 1.494 1.494 1.494h12.651c.603 0 1.118-.358 1.354-.873 0 0 .019-.035.025-.052 2.608-5.628 8.304-9.533 14.914-9.533 9.077 0 16.436 7.357 16.436 16.435S39.517 68.935 30.44 68.935c-6.61 0-12.305-3.905-14.914-9.532-.007-.018-.026-.053-.026-.053a1.489 1.489 0 0 0-1.354-.873H1.495c-.826 0-1.495.669-1.495 1.494 0 .129.021.254.052.373C3.537 73.876 15.821 83.876 30.44 83.876c17.329 0 31.376-14.048 31.376-31.376S47.769 21.124 30.44 21.124zM112.482 59.855h-4.268a.919.919 0 0 0-.729.361c-2.479 3.664-6.671 6.074-11.428 6.074-7.617 0-13.791-6.175-13.791-13.791 0-7.617 6.174-13.792 13.791-13.792 4.758 0 8.949 2.412 11.429 6.075a.916.916 0 0 0 .728.361h4.268a.92.92 0 0 0 .921-.919.91.91 0 0 0-.101-.413c-3.18-6.299-9.706-10.621-17.244-10.621-10.663 0-19.309 8.645-19.309 19.309 0 10.663 8.646 19.309 19.309 19.309 7.538 0 14.064-4.322 17.243-10.621a.914.914 0 0 0 .102-.413.92.92 0 0 0-.921-.919zM125.355 26.756a3.678 3.678 0 1 1-7.357 0 3.678 3.678 0 0 1 7.357 0zm-.919 43.213V34.11h-5.517v35.858a.92.92 0 0 0 .919.919h3.679a.918.918 0 0 0 .919-.918zM148.355 33.214c-5.564.262-10.008 2.921-12.887 6.981v-5.166a.92.92 0 0 0-.919-.919h-3.678a.92.92 0 0 0-.919.919v34.939c0 .508.41.919.919.919h3.678a.918.918 0 0 0 .919-.919V52.5c0-7.308 5.686-13.286 12.871-13.76a.921.921 0 0 0 .921-.922v-3.686a.92.92 0 0 0-.905-.918zM184.992 59.855h-4.268a.916.916 0 0 0-.729.361c-2.479 3.664-6.671 6.074-11.427 6.074-7.618 0-13.792-6.175-13.792-13.791 0-7.617 6.174-13.792 13.792-13.792 4.756 0 8.948 2.412 11.427 6.075a.917.917 0 0 0 .729.361h4.268a.92.92 0 0 0 .921-.919.898.898 0 0 0-.102-.413c-3.179-6.299-9.705-10.621-17.242-10.621-10.664 0-19.309 8.645-19.309 19.309 0 10.663 8.645 19.309 19.309 19.309 7.537 0 14.063-4.322 17.242-10.621a.914.914 0 0 0 .102-.413.92.92 0 0 0-.921-.919zM196.025 22.158h-3.678a.92.92 0 0 0-.919.919v46.892c0 .508.411.919.919.919h3.678a.92.92 0 0 0 .92-.919V23.077a.92.92 0 0 0-.92-.919zM221.771 33.191c-10.664 0-19.309 8.645-19.309 19.309 0 10.663 8.645 19.309 19.309 19.309 7.538 0 14.062-4.322 17.242-10.621a.913.913 0 0 0-.819-1.332h-4.267a.913.913 0 0 0-.741.379c-2.48 3.653-6.666 6.057-11.415 6.057-6.993 0-12.767-5.206-13.667-11.952h32.031a.92.92 0 0 0 .917-.873c.016-.32.026-.643.026-.966 0-10.665-8.644-19.31-19.307-19.31zm-13.292 15.631c1.61-5.83 6.949-10.114 13.292-10.114s11.681 4.284 13.292 10.114h-26.584zM294.483 21.239a5.517 5.517 0 1 0 0 11.034 5.517 5.517 0 0 0 0-11.034zm4.598 12.871v35.858a.92.92 0 0 1-.919.919h-7.356a.918.918 0 0 1-.919-.919V34.11h9.194zM265.902 71.809c9.014 0 16.576-6.176 18.706-14.524a.832.832 0 0 0 .023-.187.92.92 0 0 0-.919-.92h-7.782a.919.919 0 0 0-.834.537l-.002-.001c-1.599 3.48-5.11 5.899-9.192 5.899-5.584 0-10.113-4.527-10.113-10.113s4.529-10.113 10.113-10.113a10.11 10.11 0 0 1 9.192 5.899l.002-.002a.92.92 0 0 0 .834.538h7.782a.92.92 0 0 0 .919-.92.944.944 0 0 0-.022-.184c-2.128-8.35-9.693-14.527-18.707-14.527-10.661 0-19.308 8.646-19.308 19.309.001 10.664 8.647 19.309 19.308 19.309z"></path></svg><div class="css-x8jb11">Docs</div></a></div><div data-testid="header-search-bar" class="css-tki8r1"><form novalidate="" action="" role="search" class="css-cssveg"><div class="css-409epr"><div size="24" color="currentColor" class="css-19wtgi5"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Search" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path fill-rule="evenodd" clip-rule="evenodd" d="M14 9C14 11.7614 11.7614 14 9 14C6.23858 14 4 11.7614 4 9C4 6.23858 6.23858 4 9 4C11.7614 4 14 6.23858 14 9ZM13.1922 14.6064C12.0236 15.4816 10.5723 16 9 16C5.13401 16 2 12.866 2 9C2 5.13401 5.13401 2 9 2C12.866 2 16 5.13401 16 9C16 10.5723 15.4816 12.0236 14.6064 13.1922L21.7019 20.2877C22.0924 20.6782 22.0924 21.3114 21.7019 21.7019C21.3114 22.0924 20.6782 22.0924 20.2877 21.7019L13.1922 14.6064Z"></path></svg></div></div><div data-testid="search-documentation-reset" class="css-xxqz7m"><div size="28" color="currentColor" class="css-1pgy7j"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Cancel" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M17.9865 7.45711C18.3771 7.06658 18.3771 6.43342 17.9865 6.04289C17.596 5.65237 16.9628 5.65237 16.5723 6.04289L12.0294 10.5858L7.48653 6.04289C7.096 5.65237 6.46284 5.65237 6.07231 6.04289C5.68179 6.43342 5.68179 7.06658 6.07231 7.45711L10.6152 12L6.07231 16.5429C5.68179 16.9334 5.68179 17.5666 6.07231 17.9571C6.46284 18.3476 7.096 18.3476 7.48653 17.9571L12.0294 13.4142L16.5723 17.9571C16.9628 18.3476 17.596 18.3476 17.9865 17.9571C18.377 17.5666 18.377 16.9334 17.9865 16.5429L13.4436 12L17.9865 7.45711Z"></path></svg></div></div><input type="text" placeholder="Search" data-testid="search-documentation-inputbox" value="" class="css-2ls5mi"></form></div></div><div data-testid="header-default-group" class="css-1gf5w7k"><div class="css-cssveg"><button data-testid="globe-btn" class="css-dsh0zb"><div class="css-14mcfqm"><svg fill="none" aria-label="Globe" role="img" height="28px" width="28px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g stroke="currentColor" stroke-miterlimit="10" stroke-width="1.25"><path d="m9.00001 17.3077c4.58819 0 8.30769-3.7195 8.30769-8.30771s-3.7195-8.307693-8.30769-8.307693c-4.58821 0-8.307688 3.719483-8.307688 8.307693s3.719478 8.30771 8.307688 8.30771z"></path><path d="m9 17.3077c1.7639 0 3.1938-3.7195 3.1938-8.30771s-1.4299-8.307693-3.1938-8.307693c-1.76391 0-3.19385 3.719483-3.19385 8.307693s1.42994 8.30771 3.19385 8.30771z"></path><path d="m.692322 6.44307h16.615378"></path><path d="m.692322 11.5569h16.615378"></path></g></svg></div></button></div><div class="css-1syyx6e"><a href="https://circleci.com/signup/" class="css-1x7afpu">Start Building for Free</a></div></div><div data-testid="header-mobile-group" class="css-qlr832"><div size="24" color="currentColor" class="css-1qtr1z7"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Search" data-testid="header-mobile-search-button" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path fill-rule="evenodd" clip-rule="evenodd" d="M14 9C14 11.7614 11.7614 14 9 14C6.23858 14 4 11.7614 4 9C4 6.23858 6.23858 4 9 4C11.7614 4 14 6.23858 14 9ZM13.1922 14.6064C12.0236 15.4816 10.5723 16 9 16C5.13401 16 2 12.866 2 9C2 5.13401 5.13401 2 9 2C12.866 2 16 5.13401 16 9C16 10.5723 15.4816 12.0236 14.6064 13.1922L21.7019 20.2877C22.0924 20.6782 22.0924 21.3114 21.7019 21.7019C21.3114 22.0924 20.6782 22.0924 20.2877 21.7019L13.1922 14.6064Z"></path></svg></div><div class="css-pdp0ok"></div><button class="css-1j3dzco"><div size="24" color="currentColor" class="css-19wtgi5"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Menu" data-testid="header-mobile-menu-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M3 7H21C21.5523 7 22 6.55228 22 6C22 5.44772 21.5523 5 21 5H3C2.44772 5 2 5.44772 2 6C2 6.55228 2.44772 7 3 7ZM3 13H21C21.5523 13 22 12.5523 22 12C22 11.4477 21.5523 11 21 11H3C2.44772 11 2 11.4477 2 12C2 12.5523 2.44772 13 3 13ZM21 19H3C2.44772 19 2 18.5523 2 18C2 17.4477 2.44772 17 3 17H21C21.5523 17 22 17.4477 22 18C22 18.5523 21.5523 19 21 19Z"></path></svg></div></button></div></div><div class="css-9496lj"><div class="css-wt4rcw"><div id="navbar-tablist" role="tablist" aria-label="Navigation Tabs" class="css-1666bo6"><div class="css-1h7v07b"><a href="/developer/" class="css-vu8356"><button id="home" tabindex="-1" aria-selected="false" role="tab" type="button" class="css-1h2mcfj">Home</button></a><a href="/docs/" class="css-vu8356"><button id="docs" tabindex="0" aria-selected="true" role="tab" type="button" class="css-1h2mcfj">Docs</button></a><a href="/developer/orbs/" class="css-vu8356"><button id="orbs" tabindex="-1" aria-selected="false" role="tab" type="button" class="css-1h2mcfj">Orbs</button></a><a href="/developer/images/" class="css-vu8356"><button id="images" tabindex="-1" aria-selected="false" role="tab" type="button" class="css-1h2mcfj">Images</button></a></div></div><div class="css-1chu1ls"><span class="css-2wgwcz"><a href="https://circleci.com/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">CircleCI.com</a></span><span class="css-2wgwcz"><a href="https://circleci.com/training/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Academy</a></span><span class="css-2wgwcz"><a href="https://circleci.com/blog/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Blog</a></span><span class="css-2wgwcz"><a href="https://discuss.circleci.com/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Community</a></span><span class="css-2wgwcz"><a href="https://support.circleci.com/hc/en-us/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Support</a></span></div></div></div></div><div width="0" height="2" class="css-1alxkfq"></div><div class="css-1cibq5g"></div><div class="css-dgbsjx"><nav class="css-klrqbz"><div class="css-11fl4l6"><ul data-testid="sidebar-drawers" class="css-hce1c"><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/circle-logo.svg" alt="About CircleCI icon" class="css-1m34rt5"><div class="css-10tjyd0">About CircleCI</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/continue.svg" alt="Getting started icon" class="css-1m34rt5"><div class="css-10tjyd0">Getting started</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/pipeline.svg" alt="Orchestrate and trigger icon" class="css-1m34rt5"><div class="css-10tjyd0">Orchestrate and trigger</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/builds.svg" alt="Execute jobs on managed compute resources icon" class="css-1m34rt5"><div class="css-10tjyd0">Execute jobs on managed compute resources</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/build-agent.svg" alt="Execute jobs on self-hosted runners icon" class="css-1m34rt5"><div class="css-10tjyd0">Execute jobs on self-hosted runners</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/sparkle.svg" alt="Optimize icon" class="css-1m34rt5"><div class="css-10tjyd0">Optimize</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/insights-new.svg" alt="Project Insights icon" class="css-1m34rt5"><div class="css-10tjyd0">Project Insights</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/orb.svg" alt="Package and re-use config with orbs icon" class="css-1m34rt5"><div class="css-10tjyd0">Package and re-use config with orbs</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/key.svg" alt="Security and permissions icon" class="css-1m34rt5"><div class="css-10tjyd0">Security and permissions</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/webhook.svg" alt="Integration icon" class="css-1m34rt5"><div class="css-10tjyd0">Integration</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/code.svg" alt="Developer toolkit icon" class="css-1m34rt5"><div class="css-10tjyd0">Developer toolkit</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/passed.svg" alt="Test icon" class="css-1m34rt5"><div class="css-10tjyd0">Test</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/getting-started-new.svg" alt="Deploy icon" class="css-1m34rt5"><div class="css-10tjyd0">Deploy</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/admin-new.svg" alt="Server administration v4.1 icon" class="css-1m34rt5"><div class="css-10tjyd0">Server administration v4.1</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/admin-new.svg" alt="Server administration v4.0 icon" class="css-1m34rt5"><div class="css-10tjyd0">Server administration v4.0</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/admin-new.svg" alt="Server administration v3.x icon" class="css-1m34rt5"><div class="css-10tjyd0">Server administration v3.x</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/plans-outline.svg" alt="Plans and pricing icon" class="css-1m34rt5"><div class="css-10tjyd0">Plans and pricing</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li><li class="css-13svt41"><div class="css-1sg2lsz"><img src="/docs/assets/img/icons/sidebar/changelog.svg" alt="Contributing to CircleCI docs icon" class="css-1m34rt5"><div class="css-10tjyd0">Contributing to CircleCI docs</div><div size="24" color="#333" class="css-1vlg0km"><svg role="img" focusable="false" viewBox="0 0 16 16" aria-label="Arrow Right" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M10.7071 7.29289C11.0976 7.68342 11.0976 8.31658 10.7071 8.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L8.58579 8L4.29289 3.70711C3.90237 3.31658 3.90237 2.68342 4.29289 2.29289C4.68342 1.90237 5.31658 1.90237 5.70711 2.29289L10.7071 7.29289Z"></path></svg></div></div></li></ul></div></nav><main class="css-1xwsbgo"><article> <div class="css-lajneu"><div class="css-2va2ht"><div class="css-qcooo9"><div class="css-16173t9"><section data-testid="content-page-heading"><h1 class="css-1d5kwgy">GitLab integration overview</h1><div class="css-12ut1uv"><div class="css-ib8kn6"><div class="css-2iw00g"><div size="24" color="currentColor" class="css-19wtgi5"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Duration" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M12 20C15.866 20 19 16.866 19 13C19 9.13401 15.866 6 12 6C8.13401 6 5 9.13401 5 13C5 16.866 8.13401 20 12 20ZM12 22C7.02944 22 3 17.9706 3 13C3 8.02944 7.02944 4 12 4C16.9706 4 21 8.02944 21 13C21 17.9706 16.9706 22 12 22ZM11 1H13C13.5523 1 14 1.44772 14 2C14 2.55228 13.5523 3 13 3H11C10.4477 3 10 2.55228 10 2C10 1.44772 10.4477 1 11 1ZM19.7782 3.80761L21.1924 5.22183C21.5829 5.61235 21.5829 6.24551 21.1924 6.63604C20.8019 7.02656 20.1687 7.02656 19.7782 6.63604L18.364 5.22183C17.9734 4.8313 17.9734 4.19814 18.364 3.80761C18.7545 3.41709 19.3876 3.41709 19.7782 3.80761ZM13 9V12.5858L14.7071 14.2929C15.0976 14.6834 15.0976 15.3166 14.7071 15.7071C14.3166 16.0976 13.6834 16.0976 13.2929 15.7071L11.2929 13.7071C11.1054 13.5196 11 13.2652 11 13V9C11 8.44772 11.4477 8 12 8C12.5523 8 13 8.44772 13 9Z"></path></svg></div></div><div data-tip="true" data-for="readUpdateTime" class="css-gw0ftn" currentitem="false"><span data-testid="git-file-link"><span class="css-qjll1l"><a href="https://github.com/circleci/circleci-docs/commits/master/jekyll/_cci2/gitlab-integration.adoc" target="_blank" rel="noopener noreferrer" data-testid="external-git-file-link" class="css-x7gnkn">2 weeks ago</a></span></span><span data-testid="content-read-time" class="css-1sqa8jq">12<!-- --> min read</span></div><div class="__react_component_tooltip tbc5f6496-dc88-4b8e-9b7c-899381a8dda3 place-bottom type-dark" id="readUpdateTime" data-id="tooltip"><style aria-hidden="true">
  	.tbc5f6496-dc88-4b8e-9b7c-899381a8dda3 {
	    color: #fff;
	    background: #222;
	    border: 1px solid transparent;
  	}

  	.tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-top {
        margin-top: -10px;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-top::before {
        border-top: 8px solid transparent;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-top::after {
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        bottom: -6px;
        left: 50%;
        margin-left: -8px;
        border-top-color: #222;
        border-top-style: solid;
        border-top-width: 6px;
    }

    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-bottom {
        margin-top: 10px;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-bottom::before {
        border-bottom: 8px solid transparent;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-bottom::after {
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        top: -6px;
        left: 50%;
        margin-left: -8px;
        border-bottom-color: #222;
        border-bottom-style: solid;
        border-bottom-width: 6px;
    }

    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-left {
        margin-left: -10px;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-left::before {
        border-left: 8px solid transparent;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-left::after {
        border-top: 5px solid transparent;
        border-bottom: 5px solid transparent;
        right: -6px;
        top: 50%;
        margin-top: -4px;
        border-left-color: #222;
        border-left-style: solid;
        border-left-width: 6px;
    }

    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-right {
        margin-left: 10px;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-right::before {
        border-right: 8px solid transparent;
    }
    .tbc5f6496-dc88-4b8e-9b7c-899381a8dda3.place-right::after {
        border-top: 5px solid transparent;
        border-bottom: 5px solid transparent;
        left: -6px;
        top: 50%;
        margin-top: -4px;
        border-right-color: #222;
        border-right-style: solid;
        border-right-width: 6px;
    }
  </style><span data-testid="tooltip">Last updated • Read time</span></div></div><div data-testid="FrontMatterTags" class="css-brpd47"><div class="css-2iw00g"><div size="24" color="currentColor" class="css-19wtgi5"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Tag" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M14.2929 2.29289C14.6834 1.90237 15.3166 1.90237 15.7071 2.29289L21.7071 8.29289C22.0977 8.68342 22.0977 9.31658 21.7071 9.70711L9.70714 21.7071C9.42114 21.9931 8.99102 22.0787 8.61735 21.9239C8.24367 21.7691 8.00003 21.4045 8.00003 21V16H3.00003C2.59557 16 2.23093 15.7564 2.07615 15.3827C1.92137 15.009 2.00692 14.5789 2.29292 14.2929L14.2929 2.29289ZM5.41424 14H9.00003C9.55231 14 10 14.4477 10 15V18.5858L19.5858 9L15 4.41421L5.41424 14Z"></path> </svg></div></div><div data-tip="true" data-for="Cloud" currentitem="false"><span class="css-15alkjj">Cloud</span></div><div class="__react_component_tooltip ta56c0393-6460-4e46-9d14-316c8625b171 place-bottom type-dark" id="Cloud" data-id="tooltip"><style aria-hidden="true">
  	.ta56c0393-6460-4e46-9d14-316c8625b171 {
	    color: #fff;
	    background: #222;
	    border: 1px solid transparent;
  	}

  	.ta56c0393-6460-4e46-9d14-316c8625b171.place-top {
        margin-top: -10px;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-top::before {
        border-top: 8px solid transparent;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-top::after {
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        bottom: -6px;
        left: 50%;
        margin-left: -8px;
        border-top-color: #222;
        border-top-style: solid;
        border-top-width: 6px;
    }

    .ta56c0393-6460-4e46-9d14-316c8625b171.place-bottom {
        margin-top: 10px;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-bottom::before {
        border-bottom: 8px solid transparent;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-bottom::after {
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        top: -6px;
        left: 50%;
        margin-left: -8px;
        border-bottom-color: #222;
        border-bottom-style: solid;
        border-bottom-width: 6px;
    }

    .ta56c0393-6460-4e46-9d14-316c8625b171.place-left {
        margin-left: -10px;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-left::before {
        border-left: 8px solid transparent;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-left::after {
        border-top: 5px solid transparent;
        border-bottom: 5px solid transparent;
        right: -6px;
        top: 50%;
        margin-top: -4px;
        border-left-color: #222;
        border-left-style: solid;
        border-left-width: 6px;
    }

    .ta56c0393-6460-4e46-9d14-316c8625b171.place-right {
        margin-left: 10px;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-right::before {
        border-right: 8px solid transparent;
    }
    .ta56c0393-6460-4e46-9d14-316c8625b171.place-right::after {
        border-top: 5px solid transparent;
        border-bottom: 5px solid transparent;
        left: -6px;
        top: 50%;
        margin-top: -4px;
        border-right-color: #222;
        border-right-style: solid;
        border-right-width: 6px;
    }
  </style><span data-testid="tooltip">This document is applicable to CircleCI Cloud</span></div></div></div></section></div><div class="css-w4wk6o"><div class="css-c06me2"><div data-testid="right-bar" class="css-gjrqsi"><h5 data-testid="on-this-page" class="css-1u486hm">On This Page</h5><ul data-testid="toc-list" class="css-7w93ns"><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#overview" class="css-x7gnkn">Overview</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#sign-up" class="css-x7gnkn">Sign up</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#trigger-pipeline" class="css-x7gnkn">Trigger a pipeline in CircleCI</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#project-settings" class="css-x7gnkn">Project settings</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#people" class="css-x7gnkn">People</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#configuration" class="css-x7gnkn">Configuration</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#triggers" class="css-x7gnkn">Triggers</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#project-settings-advanced" class="css-x7gnkn">Advanced</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#project-settings-ssh-keys" class="css-x7gnkn">Project SSH keys</a></span></li><li data-testid="toc-entry" class="css-1puo75j"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#create-gitlab-ssh-key" class="css-x7gnkn">Create GitLab SSH key</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#organization-settings" class="css-x7gnkn">Organization settings</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#organization-settings-people" class="css-x7gnkn">People</a></span></li><li data-testid="toc-entry" class="css-1puo75j"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#inviting-your-first-team-members" class="css-x7gnkn">Inviting your first team members</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#organization-settings-integrations" class="css-x7gnkn">Integrations (GitLab Self-managed only)</a></span></li><li data-testid="toc-entry" class="css-1puo75j"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#establish-the-authenticity-of-an-ssh-host" class="css-x7gnkn">Establish the authenticity of an SSH host</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#roles-and-permissions" class="css-x7gnkn">Roles and permissions</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#organization-role-permissions-matrix" class="css-x7gnkn">Organization role permissions matrix</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#project-role-permissions-matrix" class="css-x7gnkn">Project role permissions matrix</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#user-settings" class="css-x7gnkn">User settings</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#user-account-integrations" class="css-x7gnkn">Account integrations</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#deprecated-system-environment-variables" class="css-x7gnkn">Deprecated system environment variables</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#coming-soon" class="css-x7gnkn">Coming soon</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#account-integrations" class="css-x7gnkn">Account integrations</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#auto-cancel-redundant-workflows" class="css-x7gnkn">Auto-cancel redundant workflows</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#passing-secrets-to-forked-pull-requests" class="css-x7gnkn">Passing secrets to forked pull requests</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#stop-building" class="css-x7gnkn">Stop building</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#ssh-rerun" class="css-x7gnkn">SSH rerun</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#additional-ssh-keys-only" class="css-x7gnkn">Additional SSH keys only</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#free-and-open-source-setting" class="css-x7gnkn">Free and open source setting</a></span></li><li data-testid="toc-entry" class="css-1kc30t0"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#test-insights" class="css-x7gnkn">Test Insights</a></span></li><li data-testid="toc-entry" class="css-15ss6d4"><span class="styled-link css-rvafwm"><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#next-steps" class="css-x7gnkn">Next Steps</a></span></li></ul></div></div><div class="css-16173t9"><div data-prismjs-copy-timeout="3000" class="line-numbers css-1d1hm3o"><div><div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="overview" data-testid="title-overview" class="css-sycgw4">Overview</h2></div></div> <div class="sectionbody"> <div class="paragraph"> <p>This document walks you through integrating a GitLab project with CircleCI. The sections below will introduce you to new concepts and ways to manage your CI/CD pipelines. We also outline what we are working on for future releases.</p> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="sign-up" data-testid="title-sign-up" class="css-sycgw4">Sign up</h2></div></div> <div class="sectionbody"> <div class="paragraph"> <p>GitLab support is open to both new and existing users of CircleCI. Follow the steps on the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../first-steps/#gitlab-signup" class="css-x7gnkn"> <!-- -->Sign up and try CircleCI</a></span> page to connect your GitLab account to create your organization.</p> </div> <div class="css-bdwfpm"><div data-testid="compass-info-alert" role="alert" aria-live="polite" class="css-l2fvwh"><div class="css-1i7vmqf"><div color="#0078CA" class="css-15qiqgw"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Info Circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12C2 6.48 6.48 2 12 2ZM12 6C11.4477 6 11 6.44772 11 7C11 7.55228 11.4477 8 12 8C12.5523 8 13 7.55228 13 7C13 6.44772 12.5523 6 12 6ZM12 10C11.4477 10 11 10.4477 11 11V17C11 17.5523 11.4477 18 12 18C12.5523 18 13 17.5523 13 17V11C13 10.4477 12.5523 10 12 10Z"></path></svg></div><div id="collapsible-flex" class="css-45kv77"><div class="css-seohoz"><span class="css-1c1tyii"> <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"> You will need API access and write permissions on the repository you want to set up. Within GitLab, this is the “maintainer” role or higher. </td></tr></tbody></table> </span></div><div class="css-1828gbe"> <!-- --> </div><div class="css-1828gbe"> <!-- --> </div></div></div></div></div> <div data-testid="compass-tabs" class="css-bdwfpm"><div class="css-bdwfpm"><div id="groupName-signup-tabs" role="tablist" aria-label="Tabs" class="css-1utggbq"><div class="css-1h7v07b"><button id="groupName-signup-GitLab-SaaS" tabindex="0" aria-selected="true" role="tab" type="button" class="css-1h2mcfj" aria-controls="groupName-signup-GitLab-SaaS-panel">GitLab SaaS</button><button id="groupName-signup-GitLab-Self-Managed" tabindex="-1" aria-selected="false" role="tab" type="button" class="css-1h2mcfj" aria-controls="groupName-signup-GitLab-Self-Managed-panel">GitLab Self-Managed</button></div></div><div id="groupName-signup-GitLab-SaaS-panel" style="" role="tabpanel" tabindex="0" aria-labelledby="groupName-signup-GitLab-SaaS" class="css-c4at1j"><div class="groupName-signup tabName-GitLab_SaaS openblock"> <div class="content"> <div class="paragraph"> <p>When you create a new organization and connect your GitLab.com account, you will be prompted to create a new project from a repository. You may select a repo in which you have already created a <code class="language-none" data-testid="code-snippet-highlight">.circleci</code> directory at the root of the repo, with a <code class="language-none" data-testid="code-snippet-highlight">config.yml</code> file in that directory.</p> </div> <div class="paragraph"> <p>If your selected repo does <em>not</em> already have a <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code>, you will be presented with the following options to set up a CircleCI configuration for your project:</p> </div> <div class="ulist"> <ul> <li> <p><strong>Fastest</strong>: Use an existing <code class="language-none" data-testid="code-snippet-highlight">config.yml</code> in one of your repos.</p> <div class="paragraph"> <p>You can select <em>another</em> repository in your account that has previously been set up with a CircleCI configuration. The <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> file may be in the main branch, or a feature branch. The config is imported into your new project—​CircleCI automatically creates a new branch and adds a commit for you.</p> </div> </li> <li> <p><strong>Faster</strong>: Commit a starter CI pipeline to a new branch.</p> <div class="paragraph"> <p>CircleCI automatically creates a new branch and commits a basic configuration file. You may make further changes to the file afterwards in your GitLab repo.</p> </div> </li> <li> <p><strong>Fast</strong>: Use a <code class="language-none" data-testid="code-snippet-highlight">config.yml</code> template that you can edit and save.</p> <div class="paragraph"> <p>You can choose a sample <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> to best fit your project from a variety of templates (for example, Node.js, Python, iOS apps). You can make changes to the file in CircleCI before saving. The config is committed on a new branch.</p> </div> </li> </ul> </div> <div class="paragraph"> <p>The first two options (<strong>Fastest</strong> and <strong>Faster</strong>) automatically trigger a pipeline once you create the project.</p> </div> </div> </div></div><div id="groupName-signup-GitLab-Self-Managed-panel" style="display:none" role="tabpanel" tabindex="0" aria-labelledby="groupName-signup-GitLab-Self-Managed" class="css-c4at1j" hidden=""><div class="groupName-signup tabName-GitLab_Self-Managed openblock"> <div class="content"> <div class="paragraph"> <p>You need:</p> </div> <div class="ulist"> <ul> <li> <p>Your GitLab self-managed instance URL, for example, <code class="language-none" data-testid="code-snippet-highlight">https://test-gitlab.circleci.com</code>.</p> <div class="paragraph"> <p>Your self-managed instance must already contain at least one GitLab project. The authorization attempt will be unsuccessful if your instance does not have any projects. Note that the self-managed instance must be accessible via the public internet, <strong>it cannot be behind a firewall</strong>.</p> </div> </li> <li> <p>A <span><a href="https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn"> <!-- -->personal access token<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span>. This token must have the <code class="language-none" data-testid="code-snippet-highlight">api</code> scope.</p> </li> </ul> </div> <div id="user-content-known-hosts-input" class="ulist"> <ul> <li> <p>Your instance’s SSH public host keys. You can retrieve this from your instance by running <code class="language-none" data-testid="code-snippet-highlight">ssh-keyscan &lt;instance_url&gt;</code>, for example, <code class="language-none" data-testid="code-snippet-highlight">ssh-keyscan test-gitlab.circleci.com</code>, and copying the command’s output.</p> <div class="paragraph"> <p>The output should look something like:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight line-numbers language-shell" tabindex="0"><code class="language-shell" data-testid="code-snippet-highlight">➜  ~ ssh-keyscan test-gitlab.circleci.com

<span class="token comment"># gitlab.com:22 SSH-2.0-GitLab-SSHD</span>
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
<span class="token comment"># gitlab.com:22 SSH-2.0-GitLab-SSHD</span>
gitlab.com ecdsa-sha2-nistp256 <span class="token assign-left variable">AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY</span><span class="token operator">=</span>
<span class="token comment"># gitlab.com:22 SSH-2.0-GitLab-SSHD</span>
gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
<span class="token comment"># gitlab.com:22 SSH-2.0-GitLab-SSHD</span>
<span class="token comment"># gitlab.com:22 SSH-2.0-GitLab-SSHD</span><span aria-hidden="true" class="line-numbers-rows"><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span><span style="height: 0px;"></span></span><span class="line-numbers-sizer" style="display: none;"></span></code></pre> </div> </div> </li> </ul> </div> <div class="paragraph"> <p>Follow the steps on the <strong>Create New Project</strong> page:</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-sm-create-project.png" alt="Create a new project in a self-managed org" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Enter your self-managed instance URL. The field will automatically append <code class="language-none" data-testid="code-snippet-highlight">/api/v4</code>, so the URL that CircleCI uses to connect to your account looks something like <code class="language-none" data-testid="code-snippet-highlight">https://test-gitlab.circleci.com/api/v4</code>. Click <strong>Verify</strong>.</p> </li> <li> <p>Enter your personal access token. Click <strong>Connect</strong>.</p> </li> <li> <p>Copy and paste the SSH host key from your self-managed instance into <strong>known_hosts</strong>. Click <strong>Connect</strong>.</p> </li> <li> <p>Once your account is successfully authorized, select the repository for your CircleCI project, and enter a project name.</p> </li> <li> <p>Finally, click <strong>Create Project</strong>. You will then be redirected to the newly-created project’s Pipelines page.</p> </li> </ol> </div> <div class="paragraph"> <p>The express CircleCI configuration setup is not currently available for GitLab Self-managed projects. You will need to add a <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> file in your repository if it has not yet been set up. If the repository you selected already contains a <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code>, you will need to save a commit in the repo to see your pipeline on the dashboard.</p> </div> </div> </div></div></div></div> <!-- --> <div class="css-bdwfpm"><div data-testid="compass-info-alert" role="alert" aria-live="polite" class="css-l2fvwh"><div class="css-1i7vmqf"><div color="#0078CA" class="css-15qiqgw"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Info Circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12C2 6.48 6.48 2 12 2ZM12 6C11.4477 6 11 6.44772 11 7C11 7.55228 11.4477 8 12 8C12.5523 8 13 7.55228 13 7C13 6.44772 12.5523 6 12 6ZM12 10C11.4477 10 11 10.4477 11 11V17C11 17.5523 11.4477 18 12 18C12.5523 18 13 17.5523 13 17V11C13 10.4477 12.5523 10 12 10Z"></path></svg></div><div id="collapsible-flex" class="css-45kv77"><div class="css-seohoz"><span class="css-1c1tyii"> <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"> If you are new to CircleCI, you may wish to get started with our <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../hello-world" class="css-x7gnkn"> <!-- -->Hello world</a></span> example, or take a look at some of our <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../sample-config" class="css-x7gnkn"> <!-- -->sample configurations</a></span> that demonstrate different types of workflows. The <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../configuration-reference" class="css-x7gnkn"> <!-- -->Configuring CircleCI</a></span> page is a full reference to the keys used in a <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> file. </td></tr></tbody></table> </span></div><div class="css-1828gbe"> <!-- --> </div><div class="css-1828gbe"> <!-- --> </div></div></div></div></div> <div class="paragraph"> <p>When you connect a repo with your CircleCI project, behind the scenes, CircleCI is registering a webhook within your GitLab repository. You may verify this once you have successfully created the project by navigating to your repository’s <strong>Settings &gt; Webhooks</strong> page.</p> </div> <div class="paragraph"> <p>The following limits are currently in place for GitLab integrations:</p> </div> <div class="ulist"> <ul> <li> <p>Each user can create up to three organizations.</p> </li> <li> <p>Each organization under a Free plan can have up to 10 projects.</p> </li> </ul> </div> <div class="paragraph"> <p>If you need more organizations or projects, consider upgrading to a <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../plan-overview" class="css-x7gnkn"> <!-- -->Paid plan</a></span>, or <span><a href="https://support.circleci.com/hc/en-us/requests/new" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn"> <!-- -->contact our Support team<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span>.</p> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="trigger-pipeline" data-testid="title-trigger-pipeline" class="css-sycgw4">Trigger a pipeline in CircleCI</h2></div></div> <div class="sectionbody"> <div data-testid="compass-tabs" class="css-bdwfpm"><div class="css-bdwfpm"><div id="groupName-pipeline-tabs" role="tablist" aria-label="Tabs" class="css-1utggbq"><div class="css-1h7v07b"><button id="groupName-pipeline-GitLab" tabindex="0" aria-selected="true" role="tab" type="button" class="css-1h2mcfj" aria-controls="groupName-pipeline-GitLab-panel">GitLab</button><button id="groupName-pipeline-GitLab-Self-Managed" tabindex="-1" aria-selected="false" role="tab" type="button" class="css-1h2mcfj" aria-controls="groupName-pipeline-GitLab-Self-Managed-panel">GitLab Self-Managed</button></div></div><div id="groupName-pipeline-GitLab-panel" style="" role="tabpanel" tabindex="0" aria-labelledby="groupName-pipeline-GitLab" class="css-c4at1j"><div class="groupName-pipeline tabName-GitLab openblock com"> <div class="content"> <div class="paragraph"> <p>When you create a new project using the <strong>Fastest</strong> (use an existing <code class="language-none" data-testid="code-snippet-highlight">config.yml</code>) or <strong>Faster</strong> (commit a starter CI pipeline) options described in the section above, a pipeline is automatically triggered. You should see the pipeline running shortly after you are taken to the CircleCI dashboard.</p> </div> <div class="paragraph"> <p>If you use the <strong>Fast</strong> config setup, the pipeline is not triggered until you save the <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> by clicking the <strong>Commit and Run</strong> button in the web app.</p> </div> </div> </div></div><div id="groupName-pipeline-GitLab-Self-Managed-panel" style="display:none" role="tabpanel" tabindex="0" aria-labelledby="groupName-pipeline-GitLab-Self-Managed" class="css-c4at1j" hidden=""><div class="groupName-pipeline tabName-GitLab_Self-Managed openblock"> <div class="content"> <div class="paragraph"> <p>If you have not already done so, add a <code class="language-none" data-testid="code-snippet-highlight">.circleci</code> directory to the root of the repository, then add a <code class="language-none" data-testid="code-snippet-highlight">config.yml</code> file in that directory.</p> </div> <div class="paragraph"> <p>When you commit this change in your repository, you should see the pipeline trigger for the first time on the CircleCI dashboard.</p> </div> </div> </div></div></div></div> <!-- --> <div class="paragraph"> <p>Each time you push changes to your GitLab repository, a new pipeline is triggered and you should see it running for the project within the CircleCI web app.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-ga/gitlab-ga-successful-pipeline.png" alt="Successful pipeline run" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> <div class="paragraph"> <p>Editing an existing CircleCI configuration within the web app is not currently available. You may make further changes to the config in your GitLab repo.</p> </div> <div class="paragraph"> <p>Committing further changes in your repo will automatically trigger a pipeline. However, manually triggering a pipeline from the CircleCI web app is also not available at this time.</p> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="project-settings" data-testid="title-project-settings" class="css-sycgw4">Project settings</h2></div></div> <div class="sectionbody"> <div class="paragraph"> <p>Unlike GitHub or Bitbucket projects, the GitLab integration introduces the concept of "standalone" projects that are not specific to a VCS.</p> </div> <div class="paragraph"> <p>A project can have one or more <strong>configurations</strong> which are pipeline definitions, including, but not limited to, a <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> file in your repo.</p> </div> <div class="paragraph"> <p>A project can have one or more <strong>triggers</strong>, which are events from a source of change, including, but not limited to, a VCS. A trigger determines which configuration it should use to start a pipeline.</p> </div> <div class="paragraph"> <p>The following settings are found by clicking the <strong>Project Settings</strong> button within your project. At this time, both configurations and triggers are limited to GitLab.</p> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="people" data-testid="title-people" class="css-ycntf9">People</h3></div></div> <div class="paragraph"> <p>Project roles give control over which users have access to which projects within an organization. This enables teams to have limited access to only their projects, while managers and others can have broader organizational access. The access options are:</p> </div> <div class="ulist"> <ul> <li> <p>Admin: Read and write access to the project and all settings and ability to manage other users' access.</p> </li> <li> <p>Contributor: Read and write access to the project and some settings.</p> </li> <li> <p>Viewer: Read only access to the project and some settings.</p> </li> </ul> </div> <div class="paragraph"> <p>For a complete list of permissions, see the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#roles-and-permissions" class="css-x7gnkn"> <!-- -->Roles and permissions</a></span> section.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-ga/gitlab-project-settings-project-roles.png" alt="Project roles setup page" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="configuration" data-testid="title-configuration" class="css-ycntf9">Configuration</h3></div></div> <div class="paragraph"> <p>Currently, you can add or delete a configuration source for your project. If you followed the steps above to connect GitLab, a GitLab configuration source has been automatically added for you.</p> </div> <div class="paragraph"> <p>For GitLab Self-managed, you are able to select any instance that you have previously added as a configuration source. If you wish to set a different feature branch or repository from a self-managed instance as a new configuration source, you will first need to add a new connection via your <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#organization-settings-integrations" class="css-x7gnkn"> <strong>Organization Settings</strong></a></span>. In either case, you will also need to enter your personal access token again to authorize this connection.</p> </div> <div class="paragraph"> <p>Once you define a configuration source, you can set up a trigger that points to that configuration.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-configuration.png" alt="Configuration setup page" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="triggers" data-testid="title-triggers" class="css-ycntf9">Triggers</h3></div></div> <div class="paragraph"> <p><strong>The scheduled pipelines feature is not currently available for use with GitLab.</strong> GitLab triggers are described below, including how to use filters to trigger pipelines based on certain conditions.</p> </div> <div class="paragraph"> <p>Add a trigger that specifies which configuration source starts a pipeline. If you followed the steps above to connect GitLab, a trigger set with GitLab as the configuration source has been automatically added for you.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-triggers.png" alt="Trigger setup page" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> <div class="paragraph"> <p>Triggers and trigger rules determine how CircleCI handles events from the source of change, in this case, GitLab.</p> </div> <div class="paragraph"> <p>When a trigger is created, CircleCI registers a webhook with GitLab. Push events from GitLab are sent to CircleCI. CircleCI then uses the event data to determine <em>if</em> a pipeline should run, and if so, <em>which</em> pipeline should be run.</p> </div> <div class="paragraph"> <p>In addition to a configuration source, each trigger includes the webhook URL, and in this scenario, a CircleCI-created GitLab token. The webhook URL and GitLab token are used to securely register the webhook within GitLab in order to receive push events from your GitLab repo.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-edit-trigger.png" alt="Trigger details" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> <div class="paragraph"> <p><strong>Trigger filters</strong> allow you to determine when a trigger should initiate a build based on the parameters provided by Gitlab’s webhook. CircleCI provides some common options, for example, only build on merge requests, but you can also build your own rules using the custom filter option. For example, a custom filter would allow you to only build on a specific branch or user.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-preview/gitlab-preview-project-settings-customize-triggers.png" alt="Trigger details" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> <div class="css-bdwfpm"><div data-testid="compass-info-alert" role="alert" aria-live="polite" class="css-l2fvwh"><div class="css-1i7vmqf"><div color="#0078CA" class="css-15qiqgw"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Info Circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12C2 6.48 6.48 2 12 2ZM12 6C11.4477 6 11 6.44772 11 7C11 7.55228 11.4477 8 12 8C12.5523 8 13 7.55228 13 7C13 6.44772 12.5523 6 12 6ZM12 10C11.4477 10 11 10.4477 11 11V17C11 17.5523 11.4477 18 12 18C12.5523 18 13 17.5523 13 17V11C13 10.4477 12.5523 10 12 10Z"></path></svg></div><div id="collapsible-flex" class="css-45kv77"><div class="css-seohoz"><span class="css-1c1tyii"> <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"> Currently, the only fields that can be edited for existing filters are <strong>Trigger Name</strong> and the <strong>Filters</strong> radio buttons. </td></tr></tbody></table> </span></div><div class="css-1828gbe"> <!-- --> </div><div class="css-1828gbe"> <!-- --> </div></div></div></div></div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="project-settings-advanced" data-testid="title-project-settings-advanced" class="css-ycntf9">Advanced</h3></div></div> <div class="ulist"> <ul> <li> <p>You can enable dynamic configuration using setup workflows in CircleCI. To learn about dynamic configuration, read the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../dynamic-config" class="css-x7gnkn"> <!-- -->Dynamic configuration</a></span> guide.</p> </li> <li> <p>At this time, the <strong>Free and Open Source</strong> setting is not currently supported, but there are plans to make this available in the future.</p> </li> <li> <p>At this time, auto-cancel redundant workflows is not supported. Refer to the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../skip-build/#auto-cancelling" class="css-x7gnkn"> <!-- -->Auto cancelling</a></span> section of the <code class="language-none" data-testid="code-snippet-highlight">skip</code> or <code class="language-none" data-testid="code-snippet-highlight">cancel</code> jobs and workflows page for more details.</p> </li> </ul> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="project-settings-ssh-keys" data-testid="title-project-settings-ssh-keys" class="css-ycntf9">Project SSH keys</h3></div></div> <div class="paragraph"> <p>When creating a project, an SSH key is created which is used to checkout code from your repo. Each configuration you create generates a new SSH key to access the code in the repo associated with that configuration. At this time, only <strong>Additional SSH Keys</strong> are applicable to GitLab projects.</p> </div> <div class="sect3"> <div><div class="css-1gt1ibw"><h4 id="create-gitlab-ssh-key" data-testid="title-create-gitlab-ssh-key" class="css-19alzbx">Create GitLab SSH key</h4></div></div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Create an SSH key-pair by following the <span><a href="https://docs.gitlab.com/ee/user/ssh.html" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn"> <!-- -->GitLab instructions<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span>. When prompted to enter a passphrase, do <strong>not</strong> enter one (below is one example command to generate a key on macOS):</p> <div class="listingblock"> <div class="content"> <pre class="highlight line-numbers language-shell" tabindex="0"><code class="language-shell" data-testid="code-snippet-highlight">  ssh-keygen <span class="token parameter variable">-t</span> ed25519 <span class="token parameter variable">-C</span> <span class="token string">"your_email@example.com"</span><span aria-hidden="true" class="line-numbers-rows"><span style="height: 24px;"></span></span><span class="line-numbers-sizer" style="display: none;"></span></code></pre> </div> </div> </li> <li> <p>Go to your project on <span><a href="https://gitlab.com/" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn"> <!-- -->GitLab<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span> and navigate to <strong>Settings &gt; Repository</strong>, and expand the <strong>Deploy keys</strong> section. Enter a title in the "Title" field, then copy and paste the public key you created in step 1. Check <strong>Grant write permissions to this key</strong> box, then click <strong>Add key</strong>.</p> </li> <li> <p>Go to your project settings in the CircleCI app, select <strong>SSH Keys</strong>, and <strong>Add SSH key</strong>. In the "Hostname" field, enter <code class="language-none" data-testid="code-snippet-highlight">gitlab.com</code> and add the private key you created in step 1. Then click <strong>Add SSH Key</strong>.</p> </li> <li> <p>In your <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> file, add the fingerprint to a job using the <code class="language-none" data-testid="code-snippet-highlight">add_ssh_keys</code> key:</p> <div class="listingblock"> <div class="content"> <pre class="highlight line-numbers language-yaml" tabindex="0"><code class="language-yaml" data-testid="code-snippet-highlight">  <span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token number">2.1</span>

  <span class="token key atrule">jobs</span><span class="token punctuation">:</span>
    <span class="token key atrule">deploy-job</span><span class="token punctuation">:</span>
      <span class="token key atrule">steps</span><span class="token punctuation">:</span>
        <span class="token punctuation">-</span> <span class="token key atrule">add_ssh_keys</span><span class="token punctuation">:</span>
            <span class="token key atrule">fingerprints</span><span class="token punctuation">:</span>
              <span class="token punctuation">-</span> <span class="token string">"SO:ME:FIN:G:ER:PR:IN:T"</span><span aria-hidden="true" class="line-numbers-rows"><span style="height: 24px;"></span><span style="height: 24px;"></span><span style="height: 24px;"></span><span style="height: 24px;"></span><span style="height: 24px;"></span><span style="height: 24px;"></span><span style="height: 24px;"></span><span style="height: 24px;"></span></span><span class="line-numbers-sizer" style="display: none;"></span></code></pre> </div> </div> </li> </ol> </div> <div class="paragraph"> <p>When you push to your GitLab repository from a job, CircleCI will use the SSH key you added.</p> </div> <div class="paragraph"> <p>For more information on SSH keys, please visit the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../add-ssh-key" class="css-x7gnkn"> <!-- -->Adding an SSH key to CircleCI</a></span> page.</p> </div> </div> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="organization-settings" data-testid="title-organization-settings" class="css-sycgw4">Organization settings</h2></div></div> <div class="sectionbody"> <div class="paragraph"> <p>The GitLab integration also introduces the concept of "standalone" organizations, which are not tied to a VCS.</p> </div> <div class="paragraph"> <p>A standalone organization allows for managing users and projects independent of the VCS. Organizations as well as users are considered CircleCI organizations and users, with their own roles and permissions that do not rely on those defined in a VCS.</p> </div> <div class="paragraph"> <p>To manage settings on the organization level, click the <strong>Organization Settings</strong> button within the CircleCI web app.</p> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="organization-settings-people" data-testid="title-organization-settings-people" class="css-ycntf9">People</h3></div></div> <div class="paragraph"> <p>Add or remove users, and manage user roles for the organization as well as user invites.</p> </div> <div class="css-bdwfpm"><div data-testid="compass-info-alert" role="alert" aria-live="polite" class="css-l2fvwh"><div class="css-1i7vmqf"><div color="#0078CA" class="css-15qiqgw"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Info Circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12C2 6.48 6.48 2 12 2ZM12 6C11.4477 6 11 6.44772 11 7C11 7.55228 11.4477 8 12 8C12.5523 8 13 7.55228 13 7C13 6.44772 12.5523 6 12 6ZM12 10C11.4477 10 11 10.4477 11 11V17C11 17.5523 11.4477 18 12 18C12.5523 18 13 17.5523 13 17V11C13 10.4477 12.5523 10 12 10Z"></path></svg></div><div id="collapsible-flex" class="css-45kv77"><div class="css-seohoz"><span class="css-1c1tyii"> <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"> You must have at least one org administrator. If you try to remove the last org administrator, you will get an error. </td></tr></tbody></table> </span></div><div class="css-1828gbe"> <!-- --> </div><div class="css-1828gbe"> <!-- --> </div></div></div></div></div> <div class="sect3"> <div><div class="css-1gt1ibw"><h4 id="inviting-your-first-team-members" data-testid="title-inviting-your-first-team-members" class="css-19alzbx">Inviting your first team members</h4></div></div> <div class="paragraph"> <p>Upon creating a new organization, you also have the option to invite team members from the dashboard. Alternatively, you may invite team members from the <strong>People</strong> section within <strong>Organization Settings</strong>.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-preview/gitlab-preview-org-settings-people.png" alt="People section under Organization Settings" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Click the <strong>Invite</strong> button.</p> </li> <li> <p>Enter the email address of the user you wish to invite, and select the appropriate role. You may enter multiple addresses at once, if you wish to assign these users the same role.</p> <div class="paragraph"> <p>Organization administrator as well as organization contributor roles are currently available. Project-specific roles will be coming soon. For more information, refer to the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#about-roles-and-permissions" class="css-x7gnkn"> <!-- -->Roles and permissions</a></span> section.</p> </div> </li> <li> <p>An invited user will receive an email notification (sent from <code class="language-none" data-testid="code-snippet-highlight">noreply@circleci.com</code>), containing a link to accept the invite.</p> <div class="paragraph"> <p>If they do not currently have a CircleCI account, they will need to sign up. If they already have a CircleCI account, they are added to the organization, and if they are logged in, they will see the organization as an option in the organization switcher in the top left corner of the web app.</p> </div> </li> </ol> </div> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="organization-settings-integrations" data-testid="title-organization-settings-integrations" class="css-ycntf9">Integrations (GitLab Self-managed only)</h3></div></div> <div class="paragraph"> <p>For GitLab Self-managed organizations, you may connect additional self-managed instances to be integrated with your organization.</p> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Navigate to <strong>Integrations</strong> within <strong>Organization Settings</strong> to add a new instance.</p> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-sm-integrations.png" alt="Add a new self-managed instance on the Integrations page" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> </li> <li> <p>You will need to enter the instance URL, as described in the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#sign-up" class="css-x7gnkn"> <!-- -->Sign up</a></span> section above.</p> </li> </ol> </div> <div class="css-bdwfpm"><div data-testid="compass-info-alert" role="alert" aria-live="polite" class="css-l2fvwh"><div class="css-1i7vmqf"><div color="#0078CA" class="css-15qiqgw"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="Info Circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="css-bleycz"><path d="M12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12C2 6.48 6.48 2 12 2ZM12 6C11.4477 6 11 6.44772 11 7C11 7.55228 11.4477 8 12 8C12.5523 8 13 7.55228 13 7C13 6.44772 12.5523 6 12 6ZM12 10C11.4477 10 11 10.4477 11 11V17C11 17.5523 11.4477 18 12 18C12.5523 18 13 17.5523 13 17V11C13 10.4477 12.5523 10 12 10Z"></path></svg></div><div id="collapsible-flex" class="css-45kv77"><div class="css-seohoz"><span class="css-1c1tyii"> <table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"> The ability to edit or delete existing integrations is not currently supported. </td></tr></tbody></table> </span></div><div class="css-1828gbe"> <!-- --> </div><div class="css-1828gbe"> <!-- --> </div></div></div></div></div> <div class="paragraph"> <p>For GitLab.com, account integrations can be managed under your <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA#user-account-integrations" class="css-x7gnkn"> <!-- -->user settings</a></span>.</p> </div> <div class="sect3"> <div><div class="css-1gt1ibw"><h4 id="establish-the-authenticity-of-an-ssh-host" data-testid="title-establish-the-authenticity-of-an-ssh-host" class="css-19alzbx">Establish the authenticity of an SSH host</h4></div></div> <div class="paragraph"> <p>For GitLab self-managed instances, it is necessary to add the SSH host keys to a "known hosts" file (<code class="language-none" data-testid="code-snippet-highlight">~/.ssh/known_hosts</code>) so that CircleCI can verify that the host it is connecting to is authentic. The <strong>known_hosts</strong> input stores your instance’s public host keys so CircleCI jobs can verify the remote host’s identity when checking out code.</p> </div> <div class="paragraph"> <p>SSH keys for remote servers can be fetched by running <code class="language-none" data-testid="code-snippet-highlight">ssh-keyscan &lt;host&gt;</code>, for example, <code class="language-none" data-testid="code-snippet-highlight">ssh-keyscan test-gitlab.circleci.com</code>.</p> </div> <div class="paragraph"> <p>When retrieving the host keys, you can confirm that you have the correct key by checking its fingerprints. You can check the fingerprints found in the <strong>Instance Configuration</strong> section of your self-managed instance’s Help pages (<span><a href="https://gitlab.com/help/instance_configuration#ssh-host-keys-fingerprints" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn"> <!-- -->this Instance Configuration page<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span> shows an example).</p> </div> </div> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="roles-and-permissions" data-testid="title-roles-and-permissions" class="css-sycgw4">Roles and permissions</h2></div></div> <div class="sectionbody"> <div class="paragraph"> <p>CircleCI users have different abilities depending on assigned roles in a particular organization.</p> </div> <div class="paragraph"> <p>Your CircleCI user roles and permissions are not derived from your VCS permissions, and they do not allow you to bypass permissions in the VCS. For example, you may be an <em>Organization Administrator</em> within CircleCI, which gives you access to view and modify organization and project settings <em>within your CircleCI organization</em>. However, you will not be able to edit a project’s <code class="language-none" data-testid="code-snippet-highlight">.circleci/config.yml</code> hosted in your VCS without your user also having the write permissions <em>within that VCS’s repository project</em>. Your CircleCI user’s VCS permissions are determined by its associated GitLab identity.</p> </div> <div class="paragraph"> <p>At this time, your GitLab identity can be managed through your CircleCI connection when managing triggers and configuration.</p> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="organization-role-permissions-matrix" data-testid="title-organization-role-permissions-matrix" class="css-ycntf9">Organization role permissions matrix</h3></div></div> <table class="tableblock frame-all grid-all stretch table table-striped"><thead><tr><th class="tableblock halign-left valign-top">ACTIONS</th><th class="tableblock halign-center valign-top" colspan="3">ORGANIZATION ROLES</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Admin</strong></p></td><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Contributor</strong></p></td><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Viewer</strong></p></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Organization</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Create namespace</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage namespace</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org settings</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage org settings</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org access</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage org access</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org credentials</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org policies</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage org policies</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org connections</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage org connections</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org releases</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage org credentials</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org audit logs</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View plan</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage plan</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Insights</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org insights</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Runner</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View runners</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage runners</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Projects</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View projects</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Create projects</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage project settings</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Restore project version</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Delete project canary</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Contexts</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View contexts</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Use contexts</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Edit context variables</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage contexts</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Orbs</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Create/update orb</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View private orb</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Publish dev orb</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Publish orb</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Webhooks</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View org webhooks</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage org webhooks</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View project webhooks</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage project webhooks</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Schedule</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View schedule</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Edit schedule</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Triggers</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View triggers</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Trigger build</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Edit triggers</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Config sources</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View config sources</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Edit config sources</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr></tbody></table> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="project-role-permissions-matrix" data-testid="title-project-role-permissions-matrix" class="css-ycntf9">Project role permissions matrix</h3></div></div> <table class="tableblock frame-all grid-all stretch table table-striped"><thead><tr><th class="tableblock halign-left valign-top">ACTIONS</th><th class="tableblock halign-center valign-top" colspan="3">PROJECT ROLES</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Admin</strong></p></td><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Contributor</strong></p></td><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Viewer</strong></p></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Projects</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View projects</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View project access</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View project credentials</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Restore project version</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Delete project canary</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage project</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Webhooks</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View project webhooks</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Manage project webhooks</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Schedule</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View schedule</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Edit schedule</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Triggers</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View triggers</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Trigger build</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Edit triggers</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr><tr><td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Config sources</strong></p></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td><td class="tableblock halign-left valign-top"></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">View config sources</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td></tr><tr><td class="tableblock halign-center valign-top"><p class="tableblock">Edit config sources</p></td><td class="tableblock halign-center valign-top"><p class="tableblock"><span class="icon"><i class="fa fa-check-circle"></i></span></p></td><td class="tableblock halign-center valign-top"></td><td class="tableblock halign-center valign-top"></td></tr></tbody></table> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="user-settings" data-testid="title-user-settings" class="css-sycgw4">User settings</h2></div></div> <div class="sectionbody"> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="user-account-integrations" data-testid="title-user-account-integrations" class="css-ycntf9">Account integrations</h3></div></div> <div class="paragraph"> <p>In the <strong>User Settings</strong> section of your CircleCI user profile, you have the ability to enable multiple account integrations.</p> </div> <div class="imageblock css-1anc138"> <div class="content"> <img src="/docs/assets/img/docs/gl-ga/gitlab-ga-account-integrations.png" alt="User account integrations page" data-testid="image" loading="lazy" class="css-105956i"> </div> </div> <div class="paragraph"> <p>The ability to connect to multiple account integrations on CircleCI allows you to:</p> </div> <div class="ulist"> <ul> <li> <p>Easily access all source controls on your account</p> </li> <li> <p>Use all authentication methods available on CircleCI</p> </li> </ul> </div> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="deprecated-system-environment-variables" data-testid="title-deprecated-system-environment-variables" class="css-sycgw4">Deprecated system environment variables</h2></div></div> <div class="sectionbody"> <div class="paragraph"> <p>There are a number of built-in environment variables that are not available in GitLab-based projects. VCS support for each environment variable is indicated in the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../variables/#built-in-environment-variables" class="css-x7gnkn"> <!-- -->Built-in environment variables</a></span> table on the Project values and variables page. If your pipelines need these environment variables, we recommend you use suitable replacements from the available <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../pipeline-variables" class="css-x7gnkn"> <!-- -->pipeline values</a></span>.</p> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="coming-soon" data-testid="title-coming-soon" class="css-sycgw4">Coming soon</h2></div></div> <div class="sectionbody"> <div class="paragraph"> <p>The following sections are features of CircleCI which are not currently fully supported for GitLab. These features are planned for future releases.</p> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="account-integrations" data-testid="title-account-integrations" class="css-ycntf9">Account integrations</h3></div></div> <div class="paragraph"> <p>There is currently no method to manage the connection with GitLab outside of the project setup, trigger, and configuration settings. CircleCI is working on enabling users to manage their users’ GitLab identity as part of their user profile’s account integration settings.</p> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="auto-cancel-redundant-workflows" data-testid="title-auto-cancel-redundant-workflows" class="css-ycntf9">Auto-cancel redundant workflows</h3></div></div> <div class="paragraph"> <p>Auto-cancel redundant workflows is not currently supported. It is often used to remove noise from the pipeline page and lower the time to feedback for a commit. Refer to the <span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../skip-build/#auto-cancelling" class="css-x7gnkn"> <!-- -->Skip or cancel jobs and workflows</a></span> page for more details.</p> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="passing-secrets-to-forked-pull-requests" data-testid="title-passing-secrets-to-forked-pull-requests" class="css-ycntf9">Passing secrets to forked pull requests</h3></div></div> <div class="paragraph"> <p>Passing secrets to forked pull requests is not a currently supported option for GitLab integrations.</p> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="stop-building" data-testid="title-stop-building" class="css-ycntf9">Stop building</h3></div></div> <div class="paragraph"> <p>GitLab integrations do not currently support the <strong>Stop Building</strong> option that can normally be found in <strong>Project settings</strong>. The recommendation is to delete your webhooks in your GitLab repo if you no longer want a CircleCI pipeline to run.</p> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="ssh-rerun" data-testid="title-ssh-rerun" class="css-ycntf9">SSH rerun</h3></div></div> <div class="paragraph"> <p>Support for SSH rerun will only work if your user account has a Bitbucket or GitHub integration in addition to GitLab. Your user account’s Bitbucket or GitHub SSH keys can be used for SSH reruns with GitLab. CircleCI will be adding functionality to allow users to manage SSH keys so SSH reruns are possible. SSH reruns do not get passed context secrets. CircleCI is working on providing administrators with greater control over the use of secrets and SSH reruns.</p> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="additional-ssh-keys-only" data-testid="title-additional-ssh-keys-only" class="css-ycntf9">Additional SSH keys only</h3></div></div> <div class="paragraph"> <p>Deploy keys and user keys are not used by GitLab integrations. GitLab keys are stored in <strong>Project Settings &gt; Additional SSH Keys</strong>. However, CircleCI does not recommend manually managing your SSH keys for code checkout. Instead, use the <strong>Set Up Project</strong> option, or <strong>Project Settings &gt; Configuration</strong>, to maintain connections to your repository.</p> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="free-and-open-source-setting" data-testid="title-free-and-open-source-setting" class="css-ycntf9">Free and open source setting</h3></div></div> <div class="paragraph"> <p>Open source plans are not currently available to GitLab customers. CircleCI will keep the open source community up to date as work continues to support this.</p> </div> </div> <div class="sect2"> <div><div class="css-1gt1ibw"><h3 id="test-insights" data-testid="title-test-insights" class="css-ycntf9">Test Insights</h3></div></div> <div class="paragraph"> <p><span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../insights-tests" class="css-x7gnkn"> <!-- -->Test Insights</a></span> is currently not supported for GitLab customers.</p> </div> </div> </div> </div> <div class="sect1"> <div><div class="css-1gt1ibw"><h2 id="next-steps" data-testid="title-next-steps" class="css-sycgw4">Next Steps</h2></div></div> <div class="sectionbody"> <div class="ulist"> <ul> <li> <p><span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../config-intro" class="css-x7gnkn"> <!-- -->Configuration tutorial</a></span></p> </li> <li> <p><span><a data-testid="link" href="/docs/gitlab-integration/?mkt_tok=NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA../hello-world" class="css-x7gnkn"> <!-- -->Hello world</a></span></p> </li> </ul> </div> </div> </div></div><section class="css-8x3bmd"><hr><h3 class="css-1r8h63">Help make this document better</h3><p><span>This guide, as well as the rest of our docs, are open source and available on </span><span><a href="https://github.com/circleci/circleci-docs" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn">GitHub.<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span> <span>We welcome your contributions.</span></p><ul><li><span><a href="https://github.com/circleci/circleci-docs/blob/master/jekyll/_cci2/gitlab-integration.adoc" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn">Suggest an edit to this page<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span> <span>(please read the </span><span><a href="https://github.com/circleci/circleci-docs/blob/master/docs/CONTRIBUTING.md#contributing-to-circleci-docs" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn">contributing guide<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span> <!-- -->first).</li><li><span>To report a problem in the documentation, or to submit feedback and comments, please</span> <span><a href="https://github.com/circleci/circleci-docs/issues/new/choose" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn">open an issue on GitHub.<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span></li><li><span>CircleCI is always seeking ways to improve your experience with our platform. If you would like to share feedback, </span><span><a data-testid="link" href="https://circleci.com/research" class="css-x7gnkn">please join our research community.</a></span></li></ul><h3 class="css-1r8h63">Need support?</h3><p><span>Our support engineers are available to help with service issues, billing, or account related questions, and can help troubleshoot build configurations. Contact our support engineers by</span> <span><a href="https://support.circleci.com/hc/en-us/requests/new" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn">opening a ticket.<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span><span></span></p><p><span>You can also visit our</span> <span><a href="https://support.circleci.com/" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn">support site<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span> <span>to find support articles, community forums, and training resources.</span></p><hr><div class="css-1ogfrk3"><span><a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn"><span style="box-sizing:border-box;display:inline-block;overflow:hidden;width:80px;height:15px;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><img alt="Creative Commons License" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fixed" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"><noscript><img alt="Creative Commons License" src="https://licensebuttons.net/l/by-nc-sa/4.0/80x15.png" decoding="async" data-nimg="fixed" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></a></span><p>CircleCI Documentation by<!-- --> <span><a data-testid="link" href="https://circleci.com/docs" class="css-x7gnkn">CircleCI</a></span> <!-- -->is licensed under a<!-- --> <span><a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank" rel="noopener noreferrer" data-testid="external-link" class="css-x7gnkn">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.<span color="currentColor" class="css-1ie5e7y"><svg role="img" focusable="false" viewBox="0 0 24 24" aria-label="New Window Link" data-testid="external-icon" class="css-qzco2h"><path fill-rule="evenodd" d="M9,4 L15,4 L15.0752385,4.00278786 L15.2007255,4.02024007 L15.3121422,4.04973808 L15.4232213,4.09367335 L15.5207085,4.14599544 L15.6170221,4.21292768 L15.7071408,4.29291093 C15.7425006,4.32828725 15.7746868,4.3656744 15.8036651,4.40469337 L15.8753285,4.51593788 L15.9287742,4.62866395 L15.9641546,4.73400701 L15.9932723,4.88337887 L16,5 L16,11 C16,11.5522847 15.5522847,12 15,12 C14.4871642,12 14.0644928,11.6139598 14.0067277,11.1166211 L14,11 L14,7.414 L10.0502525,11.363961 C9.65972827,11.7544853 9.02656329,11.7544853 8.63603899,11.363961 C8.27555502,11.0034771 8.24782547,10.436246 8.55285035,10.0439548 L8.63603895,9.94974748 L12.585,5.999 L9,6 C8.48716416,6 8.06449284,5.61395981 8.00672773,5.11662113 L8,5 C8,4.48716416 8.38604019,4.06449284 8.88337887,4.00672773 L9,4 Z"></path></svg></span></a></span></p></div></section></div></div></div></div></div></div> </article><footer class="css-1ccmuz"><div class="css-q792lb"><div class="css-14v7fwq"><a href="https://circleci.com/docs/" data-testid="footer-circleci-logo" class="css-si22pm"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 100" width="126" class="css-1yqyrw2"><circle fill="#161616" cx="30.44" cy="52.5" r="7.471"></circle><path fill="#161616" d="M30.44 21.124c-14.619 0-26.903 10-30.388 23.532-.03.119-.052.244-.052.373 0 .825.669 1.494 1.494 1.494h12.651c.603 0 1.118-.358 1.354-.873 0 0 .019-.035.025-.052 2.608-5.628 8.304-9.533 14.914-9.533 9.077 0 16.436 7.357 16.436 16.435S39.517 68.935 30.44 68.935c-6.61 0-12.305-3.905-14.914-9.532-.007-.018-.026-.053-.026-.053a1.489 1.489 0 0 0-1.354-.873H1.495c-.826 0-1.495.669-1.495 1.494 0 .129.021.254.052.373C3.537 73.876 15.821 83.876 30.44 83.876c17.329 0 31.376-14.048 31.376-31.376S47.769 21.124 30.44 21.124zM112.482 59.855h-4.268a.919.919 0 0 0-.729.361c-2.479 3.664-6.671 6.074-11.428 6.074-7.617 0-13.791-6.175-13.791-13.791 0-7.617 6.174-13.792 13.791-13.792 4.758 0 8.949 2.412 11.429 6.075a.916.916 0 0 0 .728.361h4.268a.92.92 0 0 0 .921-.919.91.91 0 0 0-.101-.413c-3.18-6.299-9.706-10.621-17.244-10.621-10.663 0-19.309 8.645-19.309 19.309 0 10.663 8.646 19.309 19.309 19.309 7.538 0 14.064-4.322 17.243-10.621a.914.914 0 0 0 .102-.413.92.92 0 0 0-.921-.919zM125.355 26.756a3.678 3.678 0 1 1-7.357 0 3.678 3.678 0 0 1 7.357 0zm-.919 43.213V34.11h-5.517v35.858a.92.92 0 0 0 .919.919h3.679a.918.918 0 0 0 .919-.918zM148.355 33.214c-5.564.262-10.008 2.921-12.887 6.981v-5.166a.92.92 0 0 0-.919-.919h-3.678a.92.92 0 0 0-.919.919v34.939c0 .508.41.919.919.919h3.678a.918.918 0 0 0 .919-.919V52.5c0-7.308 5.686-13.286 12.871-13.76a.921.921 0 0 0 .921-.922v-3.686a.92.92 0 0 0-.905-.918zM184.992 59.855h-4.268a.916.916 0 0 0-.729.361c-2.479 3.664-6.671 6.074-11.427 6.074-7.618 0-13.792-6.175-13.792-13.791 0-7.617 6.174-13.792 13.792-13.792 4.756 0 8.948 2.412 11.427 6.075a.917.917 0 0 0 .729.361h4.268a.92.92 0 0 0 .921-.919.898.898 0 0 0-.102-.413c-3.179-6.299-9.705-10.621-17.242-10.621-10.664 0-19.309 8.645-19.309 19.309 0 10.663 8.645 19.309 19.309 19.309 7.537 0 14.063-4.322 17.242-10.621a.914.914 0 0 0 .102-.413.92.92 0 0 0-.921-.919zM196.025 22.158h-3.678a.92.92 0 0 0-.919.919v46.892c0 .508.411.919.919.919h3.678a.92.92 0 0 0 .92-.919V23.077a.92.92 0 0 0-.92-.919zM221.771 33.191c-10.664 0-19.309 8.645-19.309 19.309 0 10.663 8.645 19.309 19.309 19.309 7.538 0 14.062-4.322 17.242-10.621a.913.913 0 0 0-.819-1.332h-4.267a.913.913 0 0 0-.741.379c-2.48 3.653-6.666 6.057-11.415 6.057-6.993 0-12.767-5.206-13.667-11.952h32.031a.92.92 0 0 0 .917-.873c.016-.32.026-.643.026-.966 0-10.665-8.644-19.31-19.307-19.31zm-13.292 15.631c1.61-5.83 6.949-10.114 13.292-10.114s11.681 4.284 13.292 10.114h-26.584zM294.483 21.239a5.517 5.517 0 1 0 0 11.034 5.517 5.517 0 0 0 0-11.034zm4.598 12.871v35.858a.92.92 0 0 1-.919.919h-7.356a.918.918 0 0 1-.919-.919V34.11h9.194zM265.902 71.809c9.014 0 16.576-6.176 18.706-14.524a.832.832 0 0 0 .023-.187.92.92 0 0 0-.919-.92h-7.782a.919.919 0 0 0-.834.537l-.002-.001c-1.599 3.48-5.11 5.899-9.192 5.899-5.584 0-10.113-4.527-10.113-10.113s4.529-10.113 10.113-10.113a10.11 10.11 0 0 1 9.192 5.899l.002-.002a.92.92 0 0 0 .834.538h7.782a.92.92 0 0 0 .919-.92.944.944 0 0 0-.022-.184c-2.128-8.35-9.693-14.527-18.707-14.527-10.661 0-19.308 8.646-19.308 19.309.001 10.664 8.647 19.309 19.308 19.309z"></path></svg><div class="css-1sak7pk">Docs</div></a><div class="css-1val13a"><div class="css-6kxz8c"><span class="css-o0ojhh"><a href="https://circleci.com/blog/feed.xml" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn"><svg aria-labelledby="svg-inline--fa-title-Xb3eBHgBgwm8" data-prefix="fas" data-icon="rss" class="svg-inline--fa fa-rss  css-6ahvz3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-hidden="true"><title id="svg-inline--fa-title-Xb3eBHgBgwm8">CircleCI RSS feed</title><path fill="currentColor" d="M25.57 176.1C12.41 175.4 .9117 185.2 .0523 198.4s9.173 24.65 22.39 25.5c120.1 7.875 225.7 112.7 233.6 233.6C256.9 470.3 267.4 480 279.1 480c.5313 0 1.062-.0313 1.594-.0625c13.22-.8438 23.25-12.28 22.39-25.5C294.6 310.3 169.7 185.4 25.57 176.1zM32 32C14.33 32 0 46.31 0 64s14.33 32 32 32c194.1 0 352 157.9 352 352c0 17.69 14.33 32 32 32s32-14.31 32-32C448 218.6 261.4 32 32 32zM63.1 351.9C28.63 351.9 0 380.6 0 416s28.63 64 63.1 64s64.08-28.62 64.08-64S99.37 351.9 63.1 351.9z"></path></svg></a></span><span class="css-o0ojhh"><a href="https://www.facebook.com/circleci" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn"><svg aria-labelledby="svg-inline--fa-title-kyBax1YceycW" data-prefix="fab" data-icon="facebook-square" class="svg-inline--fa fa-facebook-square  css-6ahvz3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-hidden="true"><title id="svg-inline--fa-title-kyBax1YceycW">CircleCI Facebook</title><path fill="currentColor" d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.3V327.7h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0 -48-48z"></path></svg></a></span><span class="css-o0ojhh"><a href="https://twitter.com/circleci" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn"><svg aria-labelledby="svg-inline--fa-title-QO1le5pJBia9" data-prefix="fab" data-icon="twitter" class="svg-inline--fa fa-twitter  css-6ahvz3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true"><title id="svg-inline--fa-title-QO1le5pJBia9">CircleCI Twitter</title><path fill="currentColor" d="M459.4 151.7c.325 4.548 .325 9.097 .325 13.65 0 138.7-105.6 298.6-298.6 298.6-59.45 0-114.7-17.22-161.1-47.11 8.447 .974 16.57 1.299 25.34 1.299 49.06 0 94.21-16.57 130.3-44.83-46.13-.975-84.79-31.19-98.11-72.77 6.498 .974 12.99 1.624 19.82 1.624 9.421 0 18.84-1.3 27.61-3.573-48.08-9.747-84.14-51.98-84.14-102.1v-1.299c13.97 7.797 30.21 12.67 47.43 13.32-28.26-18.84-46.78-51.01-46.78-87.39 0-19.49 5.197-37.36 14.29-52.95 51.65 63.67 129.3 105.3 216.4 109.8-1.624-7.797-2.599-15.92-2.599-24.04 0-57.83 46.78-104.9 104.9-104.9 30.21 0 57.5 12.67 76.67 33.14 23.72-4.548 46.46-13.32 66.6-25.34-7.798 24.37-24.37 44.83-46.13 57.83 21.12-2.273 41.58-8.122 60.43-16.24-14.29 20.79-32.16 39.31-52.63 54.25z"></path></svg></a></span><span class="css-o0ojhh"><a href="https://github.com/circleci" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn"><svg aria-labelledby="svg-inline--fa-title-hBoy9WVkejfc" data-prefix="fab" data-icon="github" class="svg-inline--fa fa-github  css-6ahvz3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" aria-hidden="true"><title id="svg-inline--fa-title-hBoy9WVkejfc">CircleCI GitHub</title><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a></span><span class="css-o0ojhh"><a href="https://twitch.tv/circleci" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn"><svg aria-labelledby="svg-inline--fa-title-smZ8O3jBgJgF" data-prefix="fab" data-icon="twitch" class="svg-inline--fa fa-twitch  css-6ahvz3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" aria-hidden="true"><title id="svg-inline--fa-title-smZ8O3jBgJgF">CircleCI Twitch</title><path fill="currentColor" d="M391.2 103.5H352.5v109.7h38.63zM285 103H246.4V212.8H285zM120.8 0 24.31 91.42V420.6H140.1V512l96.53-91.42h77.25L487.7 256V0zM449.1 237.8l-77.22 73.12H294.6l-67.6 64v-64H140.1V36.58H449.1z"></path></svg></a></span><span class="css-o0ojhh"><a href="https://www.linkedin.com/company/circleci" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn"><svg aria-labelledby="svg-inline--fa-title-6swGHNa1Sg0e" data-prefix="fab" data-icon="linkedin-in" class="svg-inline--fa fa-linkedin-in  css-6ahvz3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" aria-hidden="true"><title id="svg-inline--fa-title-6swGHNa1Sg0e">CircleCI LinkedIn</title><path fill="currentColor" d="M100.3 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.6 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.3 61.9 111.3 142.3V448z"></path></svg></a></span></div></div></div><div class="css-14v7fwq"><nav class="css-181qfh3"><ul class="css-11ermg9"><li><span class="css-1eiuvq9"><a href="https://circleci.com/terms-of-service/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Terms of Use</a></span></li><li><span class="css-1eiuvq9"><a href="https://circleci.com/legal/privacy/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Privacy Policy</a></span></li><li><span class="css-1eiuvq9"><a href="https://circleci.com/legal/cookie-policy/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Cookie Policy</a></span></li><li><span class="css-1eiuvq9"><a href="https://circleci.com/security/" target="_blank" rel="noopener noreferrer" data-testid="link" class="css-x7gnkn">Security</a></span></li></ul></nav><div class="css-bdyjtd">© 2023 Circle Internet Services, Inc., All Rights Reserved.</div></div></div></footer></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"error":null,"content":"\u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"overview\"\u003eOverview\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThis document walks you through integrating a GitLab project with CircleCI. The sections below will introduce you to new concepts and ways to manage your CI/CD pipelines. We also outline what we are working on for future releases.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"sign-up\"\u003eSign up\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eGitLab support is open to both new and existing users of CircleCI. Follow the steps on the \u003ca href=\"../first-steps/#gitlab-signup\"\u003eSign up and try CircleCI\u003c/a\u003e page to connect your GitLab account to create your organization.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e You will need API access and write permissions on the repository you want to set up. Within GitLab, this is the “maintainer” role or higher. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"openblock tab signup GitLab_SaaS\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you create a new organization and connect your GitLab.com account, you will be prompted to create a new project from a repository. You may select a repo in which you have already created a \u003ccode\u003e.circleci\u003c/code\u003e directory at the root of the repo, with a \u003ccode\u003econfig.yml\u003c/code\u003e file in that directory.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf your selected repo does \u003cem\u003enot\u003c/em\u003e already have a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e, you will be presented with the following options to set up a CircleCI configuration for your project:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003e\u003cstrong\u003eFastest\u003c/strong\u003e: Use an existing \u003ccode\u003econfig.yml\u003c/code\u003e in one of your repos.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYou can select \u003cem\u003eanother\u003c/em\u003e repository in your account that has previously been set up with a CircleCI configuration. The \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file may be in the main branch, or a feature branch. The config is imported into your new project\u0026#8212;\u0026#8203;CircleCI automatically creates a new branch and adds a commit for you.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003e\u003cstrong\u003eFaster\u003c/strong\u003e: Commit a starter CI pipeline to a new branch.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCircleCI automatically creates a new branch and commits a basic configuration file. You may make further changes to the file afterwards in your GitLab repo.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003e\u003cstrong\u003eFast\u003c/strong\u003e: Use a \u003ccode\u003econfig.yml\u003c/code\u003e template that you can edit and save.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYou can choose a sample \u003ccode\u003e.circleci/config.yml\u003c/code\u003e to best fit your project from a variety of templates (for example, Node.js, Python, iOS apps). You can make changes to the file in CircleCI before saving. The config is committed on a new branch.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe first two options (\u003cstrong\u003eFastest\u003c/strong\u003e and \u003cstrong\u003eFaster\u003c/strong\u003e) automatically trigger a pipeline once you create the project.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"openblock tab signup GitLab_Self-Managed\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYou need:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eYour GitLab self-managed instance URL, for example, \u003ccode\u003e\u003ca href=\"https://test-gitlab.circleci.com\" class=\"bare\"\u003ehttps://test-gitlab.circleci.com\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYour self-managed instance must already contain at least one GitLab project. The authorization attempt will be unsuccessful if your instance does not have any projects. Note that the self-managed instance must be accessible via the public internet, \u003cstrong\u003eit cannot be behind a firewall\u003c/strong\u003e.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eA \u003ca href=\"https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html\"\u003epersonal access token\u003c/a\u003e. This token must have the \u003ccode\u003eapi\u003c/code\u003e scope.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv id=\"known-hosts-input\" class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eYour instance\u0026#8217;s SSH public host keys. You can retrieve this from your instance by running \u003ccode\u003essh-keyscan \u0026lt;instance_url\u0026gt;\u003c/code\u003e, for example, \u003ccode\u003essh-keyscan test-gitlab.circleci.com\u003c/code\u003e, and copying the command\u0026#8217;s output.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe output should look something like:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"listingblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cpre class=\"highlight\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e➜  ~ ssh-keyscan test-gitlab.circleci.com\n\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\ngitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\ngitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\ngitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\u003c/code\u003e\u003c/pre\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFollow the steps on the \u003cstrong\u003eCreate New Project\u003c/strong\u003e page:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-sm-create-project.png\" alt=\"Create a new project in a self-managed org\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eEnter your self-managed instance URL. The field will automatically append \u003ccode\u003e/api/v4\u003c/code\u003e, so the URL that CircleCI uses to connect to your account looks something like \u003ccode\u003e\u003ca href=\"https://test-gitlab.circleci.com/api/v4\" class=\"bare\"\u003ehttps://test-gitlab.circleci.com/api/v4\u003c/a\u003e\u003c/code\u003e. Click \u003cstrong\u003eVerify\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eEnter your personal access token. Click \u003cstrong\u003eConnect\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eCopy and paste the SSH host key from your self-managed instance into \u003cstrong\u003eknown_hosts\u003c/strong\u003e. Click \u003cstrong\u003eConnect\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eOnce your account is successfully authorized, select the repository for your CircleCI project, and enter a project name.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eFinally, click \u003cstrong\u003eCreate Project\u003c/strong\u003e. You will then be redirected to the newly-created project\u0026#8217;s Pipelines page.\u003c/p\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe express CircleCI configuration setup is not currently available for GitLab Self-managed projects. You will need to add a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file in your repository if it has not yet been set up. If the repository you selected already contains a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e, you will need to save a commit in the repo to see your pipeline on the dashboard.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e If you are new to CircleCI, you may wish to get started with our \u003ca href=\"../hello-world/\"\u003eHello world\u003c/a\u003e example, or take a look at some of our \u003ca href=\"../sample-config/\"\u003esample configurations\u003c/a\u003e that demonstrate different types of workflows. The \u003ca href=\"../configuration-reference/\"\u003eConfiguring CircleCI\u003c/a\u003e page is a full reference to the keys used in a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you connect a repo with your CircleCI project, behind the scenes, CircleCI is registering a webhook within your GitLab repository. You may verify this once you have successfully created the project by navigating to your repository\u0026#8217;s \u003cstrong\u003eSettings \u0026gt; Webhooks\u003c/strong\u003e page.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe following limits are currently in place for GitLab integrations:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eEach user can create up to three organizations.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eEach organization under a Free plan can have up to 10 projects.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf you need more organizations or projects, consider upgrading to a \u003ca href=\"../plan-overview/\"\u003ePaid plan\u003c/a\u003e, or \u003ca href=\"https://support.circleci.com/hc/en-us/requests/new\"\u003econtact our Support team\u003c/a\u003e.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"trigger-pipeline\"\u003eTrigger a pipeline in CircleCI\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"openblock tab pipeline GitLab com\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you create a new project using the \u003cstrong\u003eFastest\u003c/strong\u003e (use an existing \u003ccode\u003econfig.yml\u003c/code\u003e) or \u003cstrong\u003eFaster\u003c/strong\u003e (commit a starter CI pipeline) options described in the section above, a pipeline is automatically triggered. You should see the pipeline running shortly after you are taken to the CircleCI dashboard.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf you use the \u003cstrong\u003eFast\u003c/strong\u003e config setup, the pipeline is not triggered until you save the \u003ccode\u003e.circleci/config.yml\u003c/code\u003e by clicking the \u003cstrong\u003eCommit and Run\u003c/strong\u003e button in the web app.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"openblock tab pipeline GitLab_Self-Managed\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf you have not already done so, add a \u003ccode\u003e.circleci\u003c/code\u003e directory to the root of the repository, then add a \u003ccode\u003econfig.yml\u003c/code\u003e file in that directory.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you commit this change in your repository, you should see the pipeline trigger for the first time on the CircleCI dashboard.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eEach time you push changes to your GitLab repository, a new pipeline is triggered and you should see it running for the project within the CircleCI web app.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-successful-pipeline.png\" alt=\"Successful pipeline run\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eEditing an existing CircleCI configuration within the web app is not currently available. You may make further changes to the config in your GitLab repo.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCommitting further changes in your repo will automatically trigger a pipeline. However, manually triggering a pipeline from the CircleCI web app is also not available at this time.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"project-settings\"\u003eProject settings\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eUnlike GitHub or Bitbucket projects, the GitLab integration introduces the concept of \"standalone\" projects that are not specific to a VCS.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eA project can have one or more \u003cstrong\u003econfigurations\u003c/strong\u003e which are pipeline definitions, including, but not limited to, a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file in your repo.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eA project can have one or more \u003cstrong\u003etriggers\u003c/strong\u003e, which are events from a source of change, including, but not limited to, a VCS. A trigger determines which configuration it should use to start a pipeline.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe following settings are found by clicking the \u003cstrong\u003eProject Settings\u003c/strong\u003e button within your project. At this time, both configurations and triggers are limited to GitLab.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"people\"\u003ePeople\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eProject roles give control over which users have access to which projects within an organization. This enables teams to have limited access to only their projects, while managers and others can have broader organizational access. The access options are:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eAdmin: Read and write access to the project and all settings and ability to manage other users' access.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eContributor: Read and write access to the project and some settings.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eViewer: Read only access to the project and some settings.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor a complete list of permissions, see the \u003ca href=\"#roles-and-permissions\"\u003eRoles and permissions\u003c/a\u003e section.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-project-settings-project-roles.png\" alt=\"Project roles setup page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"configuration\"\u003eConfiguration\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCurrently, you can add or delete a configuration source for your project. If you followed the steps above to connect GitLab, a GitLab configuration source has been automatically added for you.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab Self-managed, you are able to select any instance that you have previously added as a configuration source. If you wish to set a different feature branch or repository from a self-managed instance as a new configuration source, you will first need to add a new connection via your \u003ca href=\"#organization-settings-integrations\"\u003e\u003cstrong\u003eOrganization Settings\u003c/strong\u003e\u003c/a\u003e. In either case, you will also need to enter your personal access token again to authorize this connection.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eOnce you define a configuration source, you can set up a trigger that points to that configuration.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-configuration.png\" alt=\"Configuration setup page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"triggers\"\u003eTriggers\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003e\u003cstrong\u003eThe scheduled pipelines feature is not currently available for use with GitLab.\u003c/strong\u003e GitLab triggers are described below, including how to use filters to trigger pipelines based on certain conditions.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAdd a trigger that specifies which configuration source starts a pipeline. If you followed the steps above to connect GitLab, a trigger set with GitLab as the configuration source has been automatically added for you.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-triggers.png\" alt=\"Trigger setup page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eTriggers and trigger rules determine how CircleCI handles events from the source of change, in this case, GitLab.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen a trigger is created, CircleCI registers a webhook with GitLab. Push events from GitLab are sent to CircleCI. CircleCI then uses the event data to determine \u003cem\u003eif\u003c/em\u003e a pipeline should run, and if so, \u003cem\u003ewhich\u003c/em\u003e pipeline should be run.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIn addition to a configuration source, each trigger includes the webhook URL, and in this scenario, a CircleCI-created GitLab token. The webhook URL and GitLab token are used to securely register the webhook within GitLab in order to receive push events from your GitLab repo.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-edit-trigger.png\" alt=\"Trigger details\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003e\u003cstrong\u003eTrigger filters\u003c/strong\u003e allow you to determine when a trigger should initiate a build based on the parameters provided by Gitlab’s webhook. CircleCI provides some common options, for example, only build on merge requests, but you can also build your own rules using the custom filter option. For example, a custom filter would allow you to only build on a specific branch or user.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-preview/gitlab-preview-project-settings-customize-triggers.png\" alt=\"Trigger details\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e Currently, the only fields that can be edited for existing filters are \u003cstrong\u003eTrigger Name\u003c/strong\u003e and the \u003cstrong\u003eFilters\u003c/strong\u003e radio buttons. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"project-settings-advanced\"\u003eAdvanced\u003c/h3\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eYou can enable dynamic configuration using setup workflows in CircleCI. To learn about dynamic configuration, read the \u003ca href=\"../dynamic-config/\"\u003eDynamic configuration\u003c/a\u003e guide.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eAt this time, the \u003cstrong\u003eFree and Open Source\u003c/strong\u003e setting is not currently supported, but there are plans to make this available in the future.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eAt this time, auto-cancel redundant workflows is not supported. Refer to the \u003ca href=\"../skip-build/#auto-cancelling\"\u003eAuto cancelling\u003c/a\u003e section of the \u003ccode\u003eskip\u003c/code\u003e or \u003ccode\u003ecancel\u003c/code\u003e jobs and workflows page for more details.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"project-settings-ssh-keys\"\u003eProject SSH keys\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen creating a project, an SSH key is created which is used to checkout code from your repo. Each configuration you create generates a new SSH key to access the code in the repo associated with that configuration. At this time, only \u003cstrong\u003eAdditional SSH Keys\u003c/strong\u003e are applicable to GitLab projects.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect3\"\u003e \u003ch4 id=\"create-gitlab-ssh-key\"\u003eCreate GitLab SSH key\u003c/h4\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eCreate an SSH key-pair by following the \u003ca href=\"https://docs.gitlab.com/ee/user/ssh.html\"\u003eGitLab instructions\u003c/a\u003e. When prompted to enter a passphrase, do \u003cstrong\u003enot\u003c/strong\u003e enter one (below is one example command to generate a key on macOS):\u003c/p\u003e \u003cdiv class=\"listingblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cpre class=\"highlight\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e  ssh-keygen -t ed25519 -C \"your_email@example.com\"\u003c/code\u003e\u003c/pre\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eGo to your project on \u003ca href=\"https://gitlab.com/\"\u003eGitLab\u003c/a\u003e and navigate to \u003cstrong\u003eSettings \u0026gt; Repository\u003c/strong\u003e, and expand the \u003cstrong\u003eDeploy keys\u003c/strong\u003e section. Enter a title in the \"Title\" field, then copy and paste the public key you created in step 1. Check \u003cstrong\u003eGrant write permissions to this key\u003c/strong\u003e box, then click \u003cstrong\u003eAdd key\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eGo to your project settings in the CircleCI app, select \u003cstrong\u003eSSH Keys\u003c/strong\u003e, and \u003cstrong\u003eAdd SSH key\u003c/strong\u003e. In the \"Hostname\" field, enter \u003ccode\u003egitlab.com\u003c/code\u003e and add the private key you created in step 1. Then click \u003cstrong\u003eAdd SSH Key\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eIn your \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file, add the fingerprint to a job using the \u003ccode\u003eadd_ssh_keys\u003c/code\u003e key:\u003c/p\u003e \u003cdiv class=\"listingblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cpre class=\"highlight\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e  version: 2.1\n\n  jobs:\n    deploy-job:\n      steps:\n        - add_ssh_keys:\n            fingerprints:\n              - \"SO:ME:FIN:G:ER:PR:IN:T\"\u003c/code\u003e\u003c/pre\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you push to your GitLab repository from a job, CircleCI will use the SSH key you added.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor more information on SSH keys, please visit the \u003ca href=\"../add-ssh-key/\"\u003eAdding an SSH key to CircleCI\u003c/a\u003e page.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"organization-settings\"\u003eOrganization settings\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe GitLab integration also introduces the concept of \"standalone\" organizations, which are not tied to a VCS.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eA standalone organization allows for managing users and projects independent of the VCS. Organizations as well as users are considered CircleCI organizations and users, with their own roles and permissions that do not rely on those defined in a VCS.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eTo manage settings on the organization level, click the \u003cstrong\u003eOrganization Settings\u003c/strong\u003e button within the CircleCI web app.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"organization-settings-people\"\u003ePeople\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAdd or remove users, and manage user roles for the organization as well as user invites.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e You must have at least one org administrator. If you try to remove the last org administrator, you will get an error. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"sect3\"\u003e \u003ch4 id=\"inviting-your-first-team-members\"\u003eInviting your first team members\u003c/h4\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eUpon creating a new organization, you also have the option to invite team members from the dashboard. Alternatively, you may invite team members from the \u003cstrong\u003ePeople\u003c/strong\u003e section within \u003cstrong\u003eOrganization Settings\u003c/strong\u003e.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-preview/gitlab-preview-org-settings-people.png\" alt=\"People section under Organization Settings\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eClick the \u003cstrong\u003eInvite\u003c/strong\u003e button.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eEnter the email address of the user you wish to invite, and select the appropriate role. You may enter multiple addresses at once, if you wish to assign these users the same role.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eOrganization administrator as well as organization contributor roles are currently available. Project-specific roles will be coming soon. For more information, refer to the \u003ca href=\"#about-roles-and-permissions\"\u003eRoles and permissions\u003c/a\u003e section.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eAn invited user will receive an email notification (sent from \u003ccode\u003enoreply@circleci.com\u003c/code\u003e), containing a link to accept the invite.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf they do not currently have a CircleCI account, they will need to sign up. If they already have a CircleCI account, they are added to the organization, and if they are logged in, they will see the organization as an option in the organization switcher in the top left corner of the web app.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"organization-settings-integrations\"\u003eIntegrations (GitLab Self-managed only)\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab Self-managed organizations, you may connect additional self-managed instances to be integrated with your organization.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eNavigate to \u003cstrong\u003eIntegrations\u003c/strong\u003e within \u003cstrong\u003eOrganization Settings\u003c/strong\u003e to add a new instance.\u003c/p\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-sm-integrations.png\" alt=\"Add a new self-managed instance on the Integrations page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eYou will need to enter the instance URL, as described in the \u003ca href=\"#sign-up\"\u003eSign up\u003c/a\u003e section above.\u003c/p\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e The ability to edit or delete existing integrations is not currently supported. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab.com, account integrations can be managed under your \u003ca href=\"#user-account-integrations\"\u003euser settings\u003c/a\u003e.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect3\"\u003e \u003ch4 id=\"establish-the-authenticity-of-an-ssh-host\"\u003eEstablish the authenticity of an SSH host\u003c/h4\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab self-managed instances, it is necessary to add the SSH host keys to a \"known hosts\" file (\u003ccode\u003e~/.ssh/known_hosts\u003c/code\u003e) so that CircleCI can verify that the host it is connecting to is authentic. The \u003cstrong\u003eknown_hosts\u003c/strong\u003e input stores your instance\u0026#8217;s public host keys so CircleCI jobs can verify the remote host\u0026#8217;s identity when checking out code.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eSSH keys for remote servers can be fetched by running \u003ccode\u003essh-keyscan \u0026lt;host\u0026gt;\u003c/code\u003e, for example, \u003ccode\u003essh-keyscan test-gitlab.circleci.com\u003c/code\u003e.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen retrieving the host keys, you can confirm that you have the correct key by checking its fingerprints. You can check the fingerprints found in the \u003cstrong\u003eInstance Configuration\u003c/strong\u003e section of your self-managed instance\u0026#8217;s Help pages (\u003ca href=\"https://gitlab.com/help/instance_configuration#ssh-host-keys-fingerprints\"\u003ethis Instance Configuration page\u003c/a\u003e shows an example).\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"roles-and-permissions\"\u003eRoles and permissions\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCircleCI users have different abilities depending on assigned roles in a particular organization.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYour CircleCI user roles and permissions are not derived from your VCS permissions, and they do not allow you to bypass permissions in the VCS. For example, you may be an \u003cem\u003eOrganization Administrator\u003c/em\u003e within CircleCI, which gives you access to view and modify organization and project settings \u003cem\u003ewithin your CircleCI organization\u003c/em\u003e. However, you will not be able to edit a project’s \u003ccode\u003e.circleci/config.yml\u003c/code\u003e hosted in your VCS without your user also having the write permissions \u003cem\u003ewithin that VCS\u0026#8217;s repository project\u003c/em\u003e. Your CircleCI user’s VCS permissions are determined by its associated GitLab identity.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAt this time, your GitLab identity can be managed through your CircleCI connection when managing triggers and configuration.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"organization-role-permissions-matrix\"\u003eOrganization role permissions matrix\u003c/h3\u003e \u003ctable class=\"tableblock frame-all grid-all stretch table table-striped\"\u003e \u003ccolgroup\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003c/colgroup\u003e \u003cthead\u003e \u003ctr\u003e \u003cth class=\"tableblock halign-left valign-top\"\u003eACTIONS\u003c/th\u003e \u003cth class=\"tableblock halign-center valign-top\" colspan=\"3\"\u003eORGANIZATION ROLES\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eAdmin\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eContributor\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eViewer\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eOrganization\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eCreate namespace\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage namespace\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org settings\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org settings\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org access\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org access\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org credentials\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org policies\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org policies\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org connections\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org connections\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org releases\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org credentials\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org audit logs\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView plan\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage plan\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eInsights\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org insights\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eRunner\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView runners\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage runners\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eProjects\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView projects\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eCreate projects\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project settings\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eRestore project version\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eDelete project canary\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eContexts\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView contexts\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eUse contexts\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit context variables\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage contexts\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eOrbs\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eCreate/update orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView private orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003ePublish dev orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003ePublish orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eWebhooks\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eSchedule\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eTriggers\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eTrigger build\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eConfig sources\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"project-role-permissions-matrix\"\u003eProject role permissions matrix\u003c/h3\u003e \u003ctable class=\"tableblock frame-all grid-all stretch table table-striped\"\u003e \u003ccolgroup\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003c/colgroup\u003e \u003cthead\u003e \u003ctr\u003e \u003cth class=\"tableblock halign-left valign-top\"\u003eACTIONS\u003c/th\u003e \u003cth class=\"tableblock halign-center valign-top\" colspan=\"3\"\u003ePROJECT ROLES\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eAdmin\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eContributor\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eViewer\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eProjects\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView projects\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project access\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project credentials\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eRestore project version\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eDelete project canary\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eWebhooks\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eSchedule\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eTriggers\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eTrigger build\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eConfig sources\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"user-settings\"\u003eUser settings\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"user-account-integrations\"\u003eAccount integrations\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIn the \u003cstrong\u003eUser Settings\u003c/strong\u003e section of your CircleCI user profile, you have the ability to enable multiple account integrations.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-account-integrations.png\" alt=\"User account integrations page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe ability to connect to multiple account integrations on CircleCI allows you to:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eEasily access all source controls on your account\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eUse all authentication methods available on CircleCI\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"deprecated-system-environment-variables\"\u003eDeprecated system environment variables\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThere are a number of built-in environment variables that are not available in GitLab-based projects. VCS support for each environment variable is indicated in the \u003ca href=\"../variables/#built-in-environment-variables\"\u003eBuilt-in environment variables\u003c/a\u003e table on the Project values and variables page. If your pipelines need these environment variables, we recommend you use suitable replacements from the available \u003ca href=\"../pipeline-variables/\"\u003epipeline values\u003c/a\u003e.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"coming-soon\"\u003eComing soon\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe following sections are features of CircleCI which are not currently fully supported for GitLab. These features are planned for future releases.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"account-integrations\"\u003eAccount integrations\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThere is currently no method to manage the connection with GitLab outside of the project setup, trigger, and configuration settings. CircleCI is working on enabling users to manage their users’ GitLab identity as part of their user profile\u0026#8217;s account integration settings.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"auto-cancel-redundant-workflows\"\u003eAuto-cancel redundant workflows\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAuto-cancel redundant workflows is not currently supported. It is often used to remove noise from the pipeline page and lower the time to feedback for a commit. Refer to the \u003ca href=\"../skip-build/#auto-cancelling\"\u003eSkip or cancel jobs and workflows\u003c/a\u003e page for more details.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"passing-secrets-to-forked-pull-requests\"\u003ePassing secrets to forked pull requests\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003ePassing secrets to forked pull requests is not a currently supported option for GitLab integrations.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"stop-building\"\u003eStop building\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eGitLab integrations do not currently support the \u003cstrong\u003eStop Building\u003c/strong\u003e option that can normally be found in \u003cstrong\u003eProject settings\u003c/strong\u003e. The recommendation is to delete your webhooks in your GitLab repo if you no longer want a CircleCI pipeline to run.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"ssh-rerun\"\u003eSSH rerun\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eSupport for SSH rerun will only work if your user account has a Bitbucket or GitHub integration in addition to GitLab. Your user account\u0026#8217;s Bitbucket or GitHub SSH keys can be used for SSH reruns with GitLab. CircleCI will be adding functionality to allow users to manage SSH keys so SSH reruns are possible. SSH reruns do not get passed context secrets. CircleCI is working on providing administrators with greater control over the use of secrets and SSH reruns.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"additional-ssh-keys-only\"\u003eAdditional SSH keys only\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eDeploy keys and user keys are not used by GitLab integrations. GitLab keys are stored in \u003cstrong\u003eProject Settings \u0026gt; Additional SSH Keys\u003c/strong\u003e. However, CircleCI does not recommend manually managing your SSH keys for code checkout. Instead, use the \u003cstrong\u003eSet Up Project\u003c/strong\u003e option, or \u003cstrong\u003eProject Settings \u0026gt; Configuration\u003c/strong\u003e, to maintain connections to your repository.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"free-and-open-source-setting\"\u003eFree and open source setting\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eOpen source plans are not currently available to GitLab customers. CircleCI will keep the open source community up to date as work continues to support this.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"test-insights\"\u003eTest Insights\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003e\u003ca href=\"../insights-tests/\"\u003eTest Insights\u003c/a\u003e is currently not supported for GitLab customers.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"next-steps\"\u003eNext Steps\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003e\u003ca href=\"../config-intro/\"\u003eConfiguration tutorial\u003c/a\u003e\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003e\u003ca href=\"../hello-world/\"\u003eHello world\u003c/a\u003e\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e","frontMatter":{"draft":false,"categories":[],"last_modified_at":"03-May-23","hide":false,"search":true,"toc":true,"suggested":false,"sitemap":true,"readtime":true,"contentTags":{"platform":["Cloud"]},"lang":"en","title":"GitLab integration overview","slug":"gitlab-integration","ext":".adoc","tags":[],"excerpt":"\u003cdiv class=\"sect1\"\u003e\n\u003ch2 id=\"overview\"\u003eOverview\u003c/h2\u003e\n\u003cdiv class=\"sectionbody\"\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e","asciidoc":true,"layout":"classic-docs","liquid":"","description":"Learn how to integrate GitLab with CircleCI.","category":null,"tag":null,"excerpt_origin":"body","document":"#\u003cAsciidoctor::Document@55160 {doctype: \"article\", doctitle: \"GitLab integration overview\", blocks: 10}\u003e","date":"2023-05-18 22:54:25 +0000","content":"\u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"overview\"\u003eOverview\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThis document walks you through integrating a GitLab project with CircleCI. The sections below will introduce you to new concepts and ways to manage your CI/CD pipelines. We also outline what we are working on for future releases.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"sign-up\"\u003eSign up\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eGitLab support is open to both new and existing users of CircleCI. Follow the steps on the \u003ca href=\"../first-steps/#gitlab-signup\"\u003eSign up and try CircleCI\u003c/a\u003e page to connect your GitLab account to create your organization.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e You will need API access and write permissions on the repository you want to set up. Within GitLab, this is the “maintainer” role or higher. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"openblock tab signup GitLab_SaaS\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you create a new organization and connect your GitLab.com account, you will be prompted to create a new project from a repository. You may select a repo in which you have already created a \u003ccode\u003e.circleci\u003c/code\u003e directory at the root of the repo, with a \u003ccode\u003econfig.yml\u003c/code\u003e file in that directory.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf your selected repo does \u003cem\u003enot\u003c/em\u003e already have a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e, you will be presented with the following options to set up a CircleCI configuration for your project:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003e\u003cstrong\u003eFastest\u003c/strong\u003e: Use an existing \u003ccode\u003econfig.yml\u003c/code\u003e in one of your repos.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYou can select \u003cem\u003eanother\u003c/em\u003e repository in your account that has previously been set up with a CircleCI configuration. The \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file may be in the main branch, or a feature branch. The config is imported into your new project\u0026#8212;\u0026#8203;CircleCI automatically creates a new branch and adds a commit for you.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003e\u003cstrong\u003eFaster\u003c/strong\u003e: Commit a starter CI pipeline to a new branch.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCircleCI automatically creates a new branch and commits a basic configuration file. You may make further changes to the file afterwards in your GitLab repo.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003e\u003cstrong\u003eFast\u003c/strong\u003e: Use a \u003ccode\u003econfig.yml\u003c/code\u003e template that you can edit and save.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYou can choose a sample \u003ccode\u003e.circleci/config.yml\u003c/code\u003e to best fit your project from a variety of templates (for example, Node.js, Python, iOS apps). You can make changes to the file in CircleCI before saving. The config is committed on a new branch.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe first two options (\u003cstrong\u003eFastest\u003c/strong\u003e and \u003cstrong\u003eFaster\u003c/strong\u003e) automatically trigger a pipeline once you create the project.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"openblock tab signup GitLab_Self-Managed\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYou need:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eYour GitLab self-managed instance URL, for example, \u003ccode\u003e\u003ca href=\"https://test-gitlab.circleci.com\" class=\"bare\"\u003ehttps://test-gitlab.circleci.com\u003c/a\u003e\u003c/code\u003e.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYour self-managed instance must already contain at least one GitLab project. The authorization attempt will be unsuccessful if your instance does not have any projects. Note that the self-managed instance must be accessible via the public internet, \u003cstrong\u003eit cannot be behind a firewall\u003c/strong\u003e.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eA \u003ca href=\"https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html\"\u003epersonal access token\u003c/a\u003e. This token must have the \u003ccode\u003eapi\u003c/code\u003e scope.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv id=\"known-hosts-input\" class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eYour instance\u0026#8217;s SSH public host keys. You can retrieve this from your instance by running \u003ccode\u003essh-keyscan \u0026lt;instance_url\u0026gt;\u003c/code\u003e, for example, \u003ccode\u003essh-keyscan test-gitlab.circleci.com\u003c/code\u003e, and copying the command\u0026#8217;s output.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe output should look something like:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"listingblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cpre class=\"highlight\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e➜  ~ ssh-keyscan test-gitlab.circleci.com\n\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\ngitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\ngitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\ngitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\n# gitlab.com:22 SSH-2.0-GitLab-SSHD\u003c/code\u003e\u003c/pre\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFollow the steps on the \u003cstrong\u003eCreate New Project\u003c/strong\u003e page:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-sm-create-project.png\" alt=\"Create a new project in a self-managed org\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eEnter your self-managed instance URL. The field will automatically append \u003ccode\u003e/api/v4\u003c/code\u003e, so the URL that CircleCI uses to connect to your account looks something like \u003ccode\u003e\u003ca href=\"https://test-gitlab.circleci.com/api/v4\" class=\"bare\"\u003ehttps://test-gitlab.circleci.com/api/v4\u003c/a\u003e\u003c/code\u003e. Click \u003cstrong\u003eVerify\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eEnter your personal access token. Click \u003cstrong\u003eConnect\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eCopy and paste the SSH host key from your self-managed instance into \u003cstrong\u003eknown_hosts\u003c/strong\u003e. Click \u003cstrong\u003eConnect\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eOnce your account is successfully authorized, select the repository for your CircleCI project, and enter a project name.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eFinally, click \u003cstrong\u003eCreate Project\u003c/strong\u003e. You will then be redirected to the newly-created project\u0026#8217;s Pipelines page.\u003c/p\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe express CircleCI configuration setup is not currently available for GitLab Self-managed projects. You will need to add a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file in your repository if it has not yet been set up. If the repository you selected already contains a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e, you will need to save a commit in the repo to see your pipeline on the dashboard.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e If you are new to CircleCI, you may wish to get started with our \u003ca href=\"../hello-world/\"\u003eHello world\u003c/a\u003e example, or take a look at some of our \u003ca href=\"../sample-config/\"\u003esample configurations\u003c/a\u003e that demonstrate different types of workflows. The \u003ca href=\"../configuration-reference/\"\u003eConfiguring CircleCI\u003c/a\u003e page is a full reference to the keys used in a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you connect a repo with your CircleCI project, behind the scenes, CircleCI is registering a webhook within your GitLab repository. You may verify this once you have successfully created the project by navigating to your repository\u0026#8217;s \u003cstrong\u003eSettings \u0026gt; Webhooks\u003c/strong\u003e page.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe following limits are currently in place for GitLab integrations:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eEach user can create up to three organizations.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eEach organization under a Free plan can have up to 10 projects.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf you need more organizations or projects, consider upgrading to a \u003ca href=\"../plan-overview/\"\u003ePaid plan\u003c/a\u003e, or \u003ca href=\"https://support.circleci.com/hc/en-us/requests/new\"\u003econtact our Support team\u003c/a\u003e.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"trigger-pipeline\"\u003eTrigger a pipeline in CircleCI\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"openblock tab pipeline GitLab com\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you create a new project using the \u003cstrong\u003eFastest\u003c/strong\u003e (use an existing \u003ccode\u003econfig.yml\u003c/code\u003e) or \u003cstrong\u003eFaster\u003c/strong\u003e (commit a starter CI pipeline) options described in the section above, a pipeline is automatically triggered. You should see the pipeline running shortly after you are taken to the CircleCI dashboard.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf you use the \u003cstrong\u003eFast\u003c/strong\u003e config setup, the pipeline is not triggered until you save the \u003ccode\u003e.circleci/config.yml\u003c/code\u003e by clicking the \u003cstrong\u003eCommit and Run\u003c/strong\u003e button in the web app.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"openblock tab pipeline GitLab_Self-Managed\"\u003e \u003cdiv class=\"content\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf you have not already done so, add a \u003ccode\u003e.circleci\u003c/code\u003e directory to the root of the repository, then add a \u003ccode\u003econfig.yml\u003c/code\u003e file in that directory.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you commit this change in your repository, you should see the pipeline trigger for the first time on the CircleCI dashboard.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eEach time you push changes to your GitLab repository, a new pipeline is triggered and you should see it running for the project within the CircleCI web app.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-successful-pipeline.png\" alt=\"Successful pipeline run\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eEditing an existing CircleCI configuration within the web app is not currently available. You may make further changes to the config in your GitLab repo.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCommitting further changes in your repo will automatically trigger a pipeline. However, manually triggering a pipeline from the CircleCI web app is also not available at this time.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"project-settings\"\u003eProject settings\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eUnlike GitHub or Bitbucket projects, the GitLab integration introduces the concept of \"standalone\" projects that are not specific to a VCS.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eA project can have one or more \u003cstrong\u003econfigurations\u003c/strong\u003e which are pipeline definitions, including, but not limited to, a \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file in your repo.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eA project can have one or more \u003cstrong\u003etriggers\u003c/strong\u003e, which are events from a source of change, including, but not limited to, a VCS. A trigger determines which configuration it should use to start a pipeline.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe following settings are found by clicking the \u003cstrong\u003eProject Settings\u003c/strong\u003e button within your project. At this time, both configurations and triggers are limited to GitLab.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"people\"\u003ePeople\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eProject roles give control over which users have access to which projects within an organization. This enables teams to have limited access to only their projects, while managers and others can have broader organizational access. The access options are:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eAdmin: Read and write access to the project and all settings and ability to manage other users' access.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eContributor: Read and write access to the project and some settings.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eViewer: Read only access to the project and some settings.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor a complete list of permissions, see the \u003ca href=\"#roles-and-permissions\"\u003eRoles and permissions\u003c/a\u003e section.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-project-settings-project-roles.png\" alt=\"Project roles setup page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"configuration\"\u003eConfiguration\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCurrently, you can add or delete a configuration source for your project. If you followed the steps above to connect GitLab, a GitLab configuration source has been automatically added for you.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab Self-managed, you are able to select any instance that you have previously added as a configuration source. If you wish to set a different feature branch or repository from a self-managed instance as a new configuration source, you will first need to add a new connection via your \u003ca href=\"#organization-settings-integrations\"\u003e\u003cstrong\u003eOrganization Settings\u003c/strong\u003e\u003c/a\u003e. In either case, you will also need to enter your personal access token again to authorize this connection.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eOnce you define a configuration source, you can set up a trigger that points to that configuration.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-configuration.png\" alt=\"Configuration setup page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"triggers\"\u003eTriggers\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003e\u003cstrong\u003eThe scheduled pipelines feature is not currently available for use with GitLab.\u003c/strong\u003e GitLab triggers are described below, including how to use filters to trigger pipelines based on certain conditions.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAdd a trigger that specifies which configuration source starts a pipeline. If you followed the steps above to connect GitLab, a trigger set with GitLab as the configuration source has been automatically added for you.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-triggers.png\" alt=\"Trigger setup page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eTriggers and trigger rules determine how CircleCI handles events from the source of change, in this case, GitLab.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen a trigger is created, CircleCI registers a webhook with GitLab. Push events from GitLab are sent to CircleCI. CircleCI then uses the event data to determine \u003cem\u003eif\u003c/em\u003e a pipeline should run, and if so, \u003cem\u003ewhich\u003c/em\u003e pipeline should be run.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIn addition to a configuration source, each trigger includes the webhook URL, and in this scenario, a CircleCI-created GitLab token. The webhook URL and GitLab token are used to securely register the webhook within GitLab in order to receive push events from your GitLab repo.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-project-settings-edit-trigger.png\" alt=\"Trigger details\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003e\u003cstrong\u003eTrigger filters\u003c/strong\u003e allow you to determine when a trigger should initiate a build based on the parameters provided by Gitlab’s webhook. CircleCI provides some common options, for example, only build on merge requests, but you can also build your own rules using the custom filter option. For example, a custom filter would allow you to only build on a specific branch or user.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-preview/gitlab-preview-project-settings-customize-triggers.png\" alt=\"Trigger details\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e Currently, the only fields that can be edited for existing filters are \u003cstrong\u003eTrigger Name\u003c/strong\u003e and the \u003cstrong\u003eFilters\u003c/strong\u003e radio buttons. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"project-settings-advanced\"\u003eAdvanced\u003c/h3\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eYou can enable dynamic configuration using setup workflows in CircleCI. To learn about dynamic configuration, read the \u003ca href=\"../dynamic-config/\"\u003eDynamic configuration\u003c/a\u003e guide.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eAt this time, the \u003cstrong\u003eFree and Open Source\u003c/strong\u003e setting is not currently supported, but there are plans to make this available in the future.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eAt this time, auto-cancel redundant workflows is not supported. Refer to the \u003ca href=\"../skip-build/#auto-cancelling\"\u003eAuto cancelling\u003c/a\u003e section of the \u003ccode\u003eskip\u003c/code\u003e or \u003ccode\u003ecancel\u003c/code\u003e jobs and workflows page for more details.\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"project-settings-ssh-keys\"\u003eProject SSH keys\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen creating a project, an SSH key is created which is used to checkout code from your repo. Each configuration you create generates a new SSH key to access the code in the repo associated with that configuration. At this time, only \u003cstrong\u003eAdditional SSH Keys\u003c/strong\u003e are applicable to GitLab projects.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect3\"\u003e \u003ch4 id=\"create-gitlab-ssh-key\"\u003eCreate GitLab SSH key\u003c/h4\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eCreate an SSH key-pair by following the \u003ca href=\"https://docs.gitlab.com/ee/user/ssh.html\"\u003eGitLab instructions\u003c/a\u003e. When prompted to enter a passphrase, do \u003cstrong\u003enot\u003c/strong\u003e enter one (below is one example command to generate a key on macOS):\u003c/p\u003e \u003cdiv class=\"listingblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cpre class=\"highlight\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e  ssh-keygen -t ed25519 -C \"your_email@example.com\"\u003c/code\u003e\u003c/pre\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eGo to your project on \u003ca href=\"https://gitlab.com/\"\u003eGitLab\u003c/a\u003e and navigate to \u003cstrong\u003eSettings \u0026gt; Repository\u003c/strong\u003e, and expand the \u003cstrong\u003eDeploy keys\u003c/strong\u003e section. Enter a title in the \"Title\" field, then copy and paste the public key you created in step 1. Check \u003cstrong\u003eGrant write permissions to this key\u003c/strong\u003e box, then click \u003cstrong\u003eAdd key\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eGo to your project settings in the CircleCI app, select \u003cstrong\u003eSSH Keys\u003c/strong\u003e, and \u003cstrong\u003eAdd SSH key\u003c/strong\u003e. In the \"Hostname\" field, enter \u003ccode\u003egitlab.com\u003c/code\u003e and add the private key you created in step 1. Then click \u003cstrong\u003eAdd SSH Key\u003c/strong\u003e.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eIn your \u003ccode\u003e.circleci/config.yml\u003c/code\u003e file, add the fingerprint to a job using the \u003ccode\u003eadd_ssh_keys\u003c/code\u003e key:\u003c/p\u003e \u003cdiv class=\"listingblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cpre class=\"highlight\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e  version: 2.1\n\n  jobs:\n    deploy-job:\n      steps:\n        - add_ssh_keys:\n            fingerprints:\n              - \"SO:ME:FIN:G:ER:PR:IN:T\"\u003c/code\u003e\u003c/pre\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen you push to your GitLab repository from a job, CircleCI will use the SSH key you added.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor more information on SSH keys, please visit the \u003ca href=\"../add-ssh-key/\"\u003eAdding an SSH key to CircleCI\u003c/a\u003e page.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"organization-settings\"\u003eOrganization settings\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe GitLab integration also introduces the concept of \"standalone\" organizations, which are not tied to a VCS.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eA standalone organization allows for managing users and projects independent of the VCS. Organizations as well as users are considered CircleCI organizations and users, with their own roles and permissions that do not rely on those defined in a VCS.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eTo manage settings on the organization level, click the \u003cstrong\u003eOrganization Settings\u003c/strong\u003e button within the CircleCI web app.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"organization-settings-people\"\u003ePeople\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAdd or remove users, and manage user roles for the organization as well as user invites.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e You must have at least one org administrator. If you try to remove the last org administrator, you will get an error. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"sect3\"\u003e \u003ch4 id=\"inviting-your-first-team-members\"\u003eInviting your first team members\u003c/h4\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eUpon creating a new organization, you also have the option to invite team members from the dashboard. Alternatively, you may invite team members from the \u003cstrong\u003ePeople\u003c/strong\u003e section within \u003cstrong\u003eOrganization Settings\u003c/strong\u003e.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-preview/gitlab-preview-org-settings-people.png\" alt=\"People section under Organization Settings\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eClick the \u003cstrong\u003eInvite\u003c/strong\u003e button.\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eEnter the email address of the user you wish to invite, and select the appropriate role. You may enter multiple addresses at once, if you wish to assign these users the same role.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eOrganization administrator as well as organization contributor roles are currently available. Project-specific roles will be coming soon. For more information, refer to the \u003ca href=\"#about-roles-and-permissions\"\u003eRoles and permissions\u003c/a\u003e section.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eAn invited user will receive an email notification (sent from \u003ccode\u003enoreply@circleci.com\u003c/code\u003e), containing a link to accept the invite.\u003c/p\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIf they do not currently have a CircleCI account, they will need to sign up. If they already have a CircleCI account, they are added to the organization, and if they are logged in, they will see the organization as an option in the organization switcher in the top left corner of the web app.\u003c/p\u003e \u003c/div\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"organization-settings-integrations\"\u003eIntegrations (GitLab Self-managed only)\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab Self-managed organizations, you may connect additional self-managed instances to be integrated with your organization.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"olist arabic\"\u003e \u003col class=\"arabic\"\u003e \u003cli\u003e \u003cp\u003eNavigate to \u003cstrong\u003eIntegrations\u003c/strong\u003e within \u003cstrong\u003eOrganization Settings\u003c/strong\u003e to add a new instance.\u003c/p\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-sm-integrations.png\" alt=\"Add a new self-managed instance on the Integrations page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eYou will need to enter the instance URL, as described in the \u003ca href=\"#sign-up\"\u003eSign up\u003c/a\u003e section above.\u003c/p\u003e \u003c/li\u003e \u003c/ol\u003e \u003c/div\u003e \u003cdiv class=\"admonitionblock note\"\u003e \u003ctable\u003e \u003ctr\u003e \u003ctd class=\"icon\"\u003e \u003ci class=\"fa icon-note\" title=\"Note\"\u003e\u003c/i\u003e \u003c/td\u003e \u003ctd class=\"content\"\u003e The ability to edit or delete existing integrations is not currently supported. \u003c/td\u003e \u003c/tr\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab.com, account integrations can be managed under your \u003ca href=\"#user-account-integrations\"\u003euser settings\u003c/a\u003e.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect3\"\u003e \u003ch4 id=\"establish-the-authenticity-of-an-ssh-host\"\u003eEstablish the authenticity of an SSH host\u003c/h4\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eFor GitLab self-managed instances, it is necessary to add the SSH host keys to a \"known hosts\" file (\u003ccode\u003e~/.ssh/known_hosts\u003c/code\u003e) so that CircleCI can verify that the host it is connecting to is authentic. The \u003cstrong\u003eknown_hosts\u003c/strong\u003e input stores your instance\u0026#8217;s public host keys so CircleCI jobs can verify the remote host\u0026#8217;s identity when checking out code.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eSSH keys for remote servers can be fetched by running \u003ccode\u003essh-keyscan \u0026lt;host\u0026gt;\u003c/code\u003e, for example, \u003ccode\u003essh-keyscan test-gitlab.circleci.com\u003c/code\u003e.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eWhen retrieving the host keys, you can confirm that you have the correct key by checking its fingerprints. You can check the fingerprints found in the \u003cstrong\u003eInstance Configuration\u003c/strong\u003e section of your self-managed instance\u0026#8217;s Help pages (\u003ca href=\"https://gitlab.com/help/instance_configuration#ssh-host-keys-fingerprints\"\u003ethis Instance Configuration page\u003c/a\u003e shows an example).\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"roles-and-permissions\"\u003eRoles and permissions\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eCircleCI users have different abilities depending on assigned roles in a particular organization.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eYour CircleCI user roles and permissions are not derived from your VCS permissions, and they do not allow you to bypass permissions in the VCS. For example, you may be an \u003cem\u003eOrganization Administrator\u003c/em\u003e within CircleCI, which gives you access to view and modify organization and project settings \u003cem\u003ewithin your CircleCI organization\u003c/em\u003e. However, you will not be able to edit a project’s \u003ccode\u003e.circleci/config.yml\u003c/code\u003e hosted in your VCS without your user also having the write permissions \u003cem\u003ewithin that VCS\u0026#8217;s repository project\u003c/em\u003e. Your CircleCI user’s VCS permissions are determined by its associated GitLab identity.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAt this time, your GitLab identity can be managed through your CircleCI connection when managing triggers and configuration.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"organization-role-permissions-matrix\"\u003eOrganization role permissions matrix\u003c/h3\u003e \u003ctable class=\"tableblock frame-all grid-all stretch table table-striped\"\u003e \u003ccolgroup\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003c/colgroup\u003e \u003cthead\u003e \u003ctr\u003e \u003cth class=\"tableblock halign-left valign-top\"\u003eACTIONS\u003c/th\u003e \u003cth class=\"tableblock halign-center valign-top\" colspan=\"3\"\u003eORGANIZATION ROLES\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eAdmin\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eContributor\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eViewer\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eOrganization\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eCreate namespace\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage namespace\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org settings\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org settings\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org access\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org access\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org credentials\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org policies\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org policies\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org connections\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org connections\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org releases\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org credentials\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org audit logs\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView plan\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage plan\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eInsights\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org insights\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eRunner\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView runners\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage runners\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eProjects\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView projects\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eCreate projects\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project settings\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eRestore project version\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eDelete project canary\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eContexts\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView contexts\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eUse contexts\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit context variables\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage contexts\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eOrbs\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eCreate/update orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView private orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003ePublish dev orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003ePublish orb\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eWebhooks\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView org webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage org webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eSchedule\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eTriggers\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eTrigger build\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eConfig sources\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"project-role-permissions-matrix\"\u003eProject role permissions matrix\u003c/h3\u003e \u003ctable class=\"tableblock frame-all grid-all stretch table table-striped\"\u003e \u003ccolgroup\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003ccol style=\"width: 25%;\"\u003e \u003c/colgroup\u003e \u003cthead\u003e \u003ctr\u003e \u003cth class=\"tableblock halign-left valign-top\"\u003eACTIONS\u003c/th\u003e \u003cth class=\"tableblock halign-center valign-top\" colspan=\"3\"\u003ePROJECT ROLES\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eAdmin\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eContributor\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eViewer\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eProjects\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView projects\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project access\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project credentials\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eRestore project version\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eDelete project canary\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eWebhooks\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eManage project webhooks\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eSchedule\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit schedule\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eTriggers\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eTrigger build\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit triggers\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cstrong\u003eConfig sources\u003c/strong\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-left valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eView config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003eEdit config sources\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003cp class=\"tableblock\"\u003e\u003cspan class=\"icon\"\u003e\u003ci class=\"fa fa-check-circle\"\u003e\u003c/i\u003e\u003c/span\u003e\u003c/p\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003ctd class=\"tableblock halign-center valign-top\"\u003e\u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"user-settings\"\u003eUser settings\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"user-account-integrations\"\u003eAccount integrations\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eIn the \u003cstrong\u003eUser Settings\u003c/strong\u003e section of your CircleCI user profile, you have the ability to enable multiple account integrations.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"imageblock\"\u003e \u003cdiv class=\"content\"\u003e \u003cimg src=\"/docs/assets/img/docs/gl-ga/gitlab-ga-account-integrations.png\" alt=\"User account integrations page\"\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe ability to connect to multiple account integrations on CircleCI allows you to:\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003eEasily access all source controls on your account\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003eUse all authentication methods available on CircleCI\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"deprecated-system-environment-variables\"\u003eDeprecated system environment variables\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThere are a number of built-in environment variables that are not available in GitLab-based projects. VCS support for each environment variable is indicated in the \u003ca href=\"../variables/#built-in-environment-variables\"\u003eBuilt-in environment variables\u003c/a\u003e table on the Project values and variables page. If your pipelines need these environment variables, we recommend you use suitable replacements from the available \u003ca href=\"../pipeline-variables/\"\u003epipeline values\u003c/a\u003e.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"coming-soon\"\u003eComing soon\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThe following sections are features of CircleCI which are not currently fully supported for GitLab. These features are planned for future releases.\u003c/p\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"account-integrations\"\u003eAccount integrations\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eThere is currently no method to manage the connection with GitLab outside of the project setup, trigger, and configuration settings. CircleCI is working on enabling users to manage their users’ GitLab identity as part of their user profile\u0026#8217;s account integration settings.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"auto-cancel-redundant-workflows\"\u003eAuto-cancel redundant workflows\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eAuto-cancel redundant workflows is not currently supported. It is often used to remove noise from the pipeline page and lower the time to feedback for a commit. Refer to the \u003ca href=\"../skip-build/#auto-cancelling\"\u003eSkip or cancel jobs and workflows\u003c/a\u003e page for more details.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"passing-secrets-to-forked-pull-requests\"\u003ePassing secrets to forked pull requests\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003ePassing secrets to forked pull requests is not a currently supported option for GitLab integrations.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"stop-building\"\u003eStop building\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eGitLab integrations do not currently support the \u003cstrong\u003eStop Building\u003c/strong\u003e option that can normally be found in \u003cstrong\u003eProject settings\u003c/strong\u003e. The recommendation is to delete your webhooks in your GitLab repo if you no longer want a CircleCI pipeline to run.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"ssh-rerun\"\u003eSSH rerun\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eSupport for SSH rerun will only work if your user account has a Bitbucket or GitHub integration in addition to GitLab. Your user account\u0026#8217;s Bitbucket or GitHub SSH keys can be used for SSH reruns with GitLab. CircleCI will be adding functionality to allow users to manage SSH keys so SSH reruns are possible. SSH reruns do not get passed context secrets. CircleCI is working on providing administrators with greater control over the use of secrets and SSH reruns.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"additional-ssh-keys-only\"\u003eAdditional SSH keys only\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eDeploy keys and user keys are not used by GitLab integrations. GitLab keys are stored in \u003cstrong\u003eProject Settings \u0026gt; Additional SSH Keys\u003c/strong\u003e. However, CircleCI does not recommend manually managing your SSH keys for code checkout. Instead, use the \u003cstrong\u003eSet Up Project\u003c/strong\u003e option, or \u003cstrong\u003eProject Settings \u0026gt; Configuration\u003c/strong\u003e, to maintain connections to your repository.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"free-and-open-source-setting\"\u003eFree and open source setting\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003eOpen source plans are not currently available to GitLab customers. CircleCI will keep the open source community up to date as work continues to support this.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect2\"\u003e \u003ch3 id=\"test-insights\"\u003eTest Insights\u003c/h3\u003e \u003cdiv class=\"paragraph\"\u003e \u003cp\u003e\u003ca href=\"../insights-tests/\"\u003eTest Insights\u003c/a\u003e is currently not supported for GitLab customers.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"sect1\"\u003e \u003ch2 id=\"next-steps\"\u003eNext Steps\u003c/h2\u003e \u003cdiv class=\"sectionbody\"\u003e \u003cdiv class=\"ulist\"\u003e \u003cul\u003e \u003cli\u003e \u003cp\u003e\u003ca href=\"../config-intro/\"\u003eConfiguration tutorial\u003c/a\u003e\u003c/p\u003e \u003c/li\u003e \u003cli\u003e \u003cp\u003e\u003ca href=\"../hello-world/\"\u003eHello world\u003c/a\u003e\u003c/p\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003c/div\u003e","file_name":"_cci2/gitlab-integration.adoc"}},"__lang":"en","__namespaces":{"common":{"appName":"Docs","metaTitle":"Welcome to CircleCI Documentation","metaDescription":"Welcome to CircleCI Documentation","signupButtons":{"github":{"text":"Sign up with GitHub","allRepos":"All Repos","publicRepos":"Public Repos Only","link":"https://circleci.com/auth/vcs-connect?connection=Github"},"bitbucket":{"text":"Sign up with BitBucket","link":"https://circleci.com/auth/vcs-connect?connection=Bitbucket/"},"email":{"text":"Sign up with Email"}}},"header":{"loginButton":{"loggedIn":{"text":"Go to Application","href":"https://app.circleci.com/"},"loggedOut":{"text":"Start Building for Free","href":"https://circleci.com/signup/"}}},"search":{"searchBarPlaceholder":"Search Documentation","docsTab":{"long":"Documentation","short":"Docs"},"orbsTab":{"long":"Orbs","short":"Orbs"},"imagesTab":{"long":"Convenience Images","short":"Images"},"noResults":"No {{type}} results"},"content":{"copyLink":{"copy":"Copy link","copied":"Copied!"},"pageMeta":{"lastUpdateReadTime":"Last updated • Read time","cloudServer":"This document is applicable to CircleCI {{platform}}"},"helpmakebetter":{"title":"Help make this document better","github":"\u003c0\u003eThis guide, as well as the rest of our docs, are open source and available on \u003c/0\u003e\u003c1\u003eGitHub.\u003c/1\u003e \u003c2\u003eWe welcome your contributions.\u003c/2\u003e","suggest":"\u003c0\u003eSuggest an edit to this page\u003c/0\u003e \u003c1\u003e(please read the \u003c/1\u003e\u003c2\u003econtributing guide\u003c/2\u003e \u003c3\u003efirst).\u003c/3\u003e","report":"\u003c0\u003eTo report a problem in the documentation, or to submit feedback and comments, please\u003c/0\u003e \u003c1\u003eopen an issue on GitHub.\u003c/1\u003e","improve":"\u003c0\u003eCircleCI is always seeking ways to improve your experience with our platform. If you would like to share feedback, \u003c/0\u003e\u003c1\u003eplease join our research community.\u003c/1\u003e"},"need_support?":"Need support?","our_engineers":"\u003c0\u003eOur support engineers are available to help with service issues, billing, or account related questions, and can help troubleshoot build configurations. Contact our support engineers by\u003c/0\u003e \u003c1\u003eopening a ticket.\u003c/1\u003e\u003c2\u003e\u003c/2\u003e","on_this_page":"On This Page","support_site":"\u003c0\u003eYou can also visit our\u003c/0\u003e \u003c1\u003esupport site\u003c/1\u003e \u003c2\u003eto find support articles, community forums, and training resources.\u003c/2\u003e","translationInProgress":"This page is in the process of being translated."}},"__N_SSP":true},"page":"/[...slug]","query":{"mkt_tok":"NDg1LVpNSC02MjYAAAGLvrITLdJVkBeQOmSxy8RbGBs7MIjKMAJZ0KmE4xsdSY5mGg6b_9n37SHdZSqehDQcc3ao4rvXM7TSaT1x99gi1pN5Wg8X1CrXZc9XcS2S86Kq4zzGyc-ZOA","slug":["gitlab-integration"]},"buildId":"7a074c206c5829df3c986dce5510a85b818a2535","assetPrefix":"https://assets-docs.circleci.com/docs","runtimeConfig":{"basePath":"/docs","exceptionLoggerClientToken":"ca1befe4db724589813fc4a2a9642d4d","analyticsKey":"AbgkrgN4cbRhAVEwlzMkHbwvrXnxHh35","datadogRumApplicationId":"2a3e19ca-297e-4a53-a2cf-082e827d13d3","datadogRumClientToken":"pubdffb4b4dd07f1f43b42276901d58da91"},"isFallback":false,"gssp":true,"appGip":true,"locale":"en","locales":["en","ja"],"defaultLocale":"en","scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px none; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px; white-space: nowrap; overflow-wrap: normal;"></p></next-route-announcer><iframe id="_hjSafeContext_96914317" title="_hjSafeContext" tabindex="-1" aria-hidden="true" src="about:blank" style="display: none !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important;"></iframe></body></html>

                             

Screenshot: