[{"data":1,"prerenderedAt":7935},["ShallowReactive",2],{"/de-de/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation":3,"navigation-de-de":38,"banner-de-de":456,"footer-de-de":469,"footer-source-/de-de/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation/":678,"blogAuthors-de-de":684,"next-steps-de-de":7920},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":28,"_id":31,"_type":32,"title":33,"_source":34,"_file":35,"_stem":36,"_extension":37},"/de-de/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"Effiziente DevSecOps-Workflows: Praktische python-gitlab-API-Automatisierung","Die Python-GitLab-Bibliothek ist eine nützliche Basis für die GitLab-API. In diesem Tutorial erfährst du mehr über praktische Beispiele und bewährte Verfahren.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659883/Blog/Hero%20Images/post-cover-image.jpg","https://about.gitlab.com/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Effiziente DevSecOps-Workflows: Praktische python-gitlab-API-Automatisierung\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-02-01\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21,"tags":22,"updatedDate":27},[18],"Michael Friedrich","2023-02-01","Ein oft zitiertes Sprichwort aus einer Konferenzpräsentation lautet:\n„Manuelle Arbeit ist ein Fehler“. Bei sich wiederholenden Aufgaben in\nArbeitsabläufen ist es ratsam, so viel wie möglich zu automatisieren. Ein\nBeispiel dafür ist die Nutzung einer REST-API zur Bestandsaufnahme von\nEinstellungen oder das Erstellen neuer Kommentare in GitLab-Issues und\nMerge-Anfragen mittels API-Aktionen.\n\n\n## GitLab-API-Interaktion: Möglichkeiten und Unterstützung durch\nAPI-Abstraktionsbibliotheken\n\n\nDie Interaktion mit der REST-API von GitLab kann auf verschiedene Weise\nerfolgen: entweder durch HTTP-Anfragen mit curl (oder hurl) in der\nBefehlszeile oder durch das Schreiben von Skripten in einer\nProgrammiersprache. Letzteres kann dazu führen, dass der Code für\nHTTP-Anfragen und das Parsen der JSON-Antworten neu entwickelt werden muss.\nGlücklicherweise unterstützt die umfangreiche GitLab-Community viele\nProgrammiersprachen mit API-Abstraktionsbibliotheken.\n\n\nDiese Bibliotheken bieten Unterstützung für alle API-Attribute, fügen\nHilfsfunktionen zum Abrufen, Erstellen und Löschen von Objekten hinzu und\nhelfen Entwicklern dabei, sich auf ihre Kernaufgaben zu konzentrieren. Die\n[python-gitlab Bibliothek](https://python-gitlab.readthedocs.io/en/stable/)\nist ein besonders funktionsreiches und einfach zu verwendendes Beispiel für\neine solche Bibliothek in Python.\n\n\nIn diesem Blogbeitrag wird die grundlegende Nutzung der\npython-gitlab-Bibliothek erläutert, einschließlich der Arbeit mit\nAPI-Objekten, Attributen, Paginierung und Resultsets. Zudem werden\nspezifischere Anwendungsfälle vorgestellt, in denen Daten gesammelt,\nZusammenfassungen gedruckt und Daten in die API geschrieben werden, um\nKommentare und Commits zu erstellen. Viele dieser Anwendungsfälle basieren\nauf Fragen aus der Community in Foren, auf Hacker News oder in Issues.\n\n\n## Inhaltsverzeichnis\n\n- [GitLab-API-Interaktion: Möglichkeiten und Unterstützung durch\nAPI-Abstraktionsbibliotheken](#gitlab-api-interaktion-möglichkeiten-und-unterstützung-durch-api-abstraktionsbibliotheken)\n\n- [Los geht's: python-gitlab Install](#los-geht's-python-gitlab-install)\n\n- [GitLab API Python: Konfiguration](#gitlab-api-python-konfiguration)\n\n- [Objekte verwalten: das\nGitLab-Objekt](#objekte-verwalten-das-gitlab-objekt)\n  - [Objektmanager und Laden von Objekten](#objektmanager-und-laden-von-objekten)\n  - [Paginierung der Ergebnisse](#paginierung-der-ergebnisse)\n  - [Arbeiten mit Objektbeziehungen](#arbeiten-mit-objektbeziehungen)\n  - [Arbeiten mit verschiedenen Objektsammlungsbereichen](#arbeiten-mit-verschiedenen-objektsammlungsbereichen)\n- [DevSecOps-Anwendungsfälle für\nAPI-Leseaktionen](#devsecops-anwendungsfälle-für-api-leseaktionen)\n  - [Zweige nach Zusammenführungsstatus auflisten](#zweige-nach-zusammenführungsstatus-auflisten)\n  - [Drucken von Projekteinstellungen zur Überprüfung: MR-Genehmigungsregeln](#drucken-von-projekteinstellungen-zur-überprüfung-mr-genehmigungsregeln)\n  - [Inventarisierung: Abrufen aller CI/CD-Variablen, die geschützt oder maskiert sind](#inventarisierung-abrufen-aller-cicd-variablen-die-geschützt-oder-maskiert-sind)\n  - [Herunterladen einer Datei aus dem Repository](#herunterladen-einer-datei-aus-dem-repository)\n  - [Hilfe zur Migration: Auflistung aller zertifikatsbasierten Kubernetes-Cluster](#hilfe-zur-migration-auflistung-aller-zertifikatsbasierten-kubernetes-cluster)\n  - [Team-Effizienz: Prüfe, ob bestehende Merge-Requests nach dem Mergen einer großen Refactoring-MR neu gebasht werden müssen](#team-effizienz-prüfe-ob-bestehende-merge-requests-nach-dem-mergen-einer-großen-refactoring-mr-neu-gebasht-werden-müssen)\n- [DevSecOps-Anwendungsfälle für\nAPI-Schreibaktionen](#devsecops-anwendungsfälle-für-api-schreibaktionen)\n  - [Verschieben von Epics zwischen Gruppen](#verschieben-von-epics-zwischen-gruppen)\n  - [Automatisierung des Verschiebens von Epics](#automatisierung-des-verschiebens-von-epics)\n  - [Compliance: Sicherstellen, dass Projekteinstellungen nicht überschrieben werden](#compliance-sicherstellen-dass-projekteinstellungen-nicht-überschrieben-werden)\n  - [Notizen machen, Fälligkeitsübersicht erstellen](#notizen-machen-fälligkeitsübersicht-erstellen)\n\n## Los geht's: python-gitlab Install\n\n\nDie Dokumentation von python-gitlab bietet eine umfassende Einführung in die\nNutzung, einschließlich Anleitungen für den Einstieg, Informationen zu\nObjekttypen und deren Methoden sowie kombinierte Workflow-Beispiele.\nErgänzend dazu ist die Dokumentation der GitLab-API-Ressourcen hilfreich, da\nsie die verfügbaren Objektattribute detailliert beschreibt. Zusammen sind\ndiese beiden Dokumentationen die besten Ressourcen für den Einstieg.\n\n\nDie Code-Beispiele in diesem Blogbeitrag setzen Python 3.8+ und die\npython-gitlab-Bibliothek voraus. Weitere notwendige Abhängigkeiten sind in\nder Datei requirements.txt aufgeführt. Ein Beispiel erfordert die Bibliothek\npyyaml zum Parsen von YAML-Konfigurationen. Um den Code der Anwendungsfälle\nnachzuvollziehen und zu üben, empfiehlt es sich, das Projekt zu klonen, die\nAnforderungen zu installieren und die Skripte auszuführen.\n\n\n```shell\n\ngit clone\nhttps://gitlab.com/gitlab-de/use-cases/gitlab-api/gitlab-api-python.git\n\n\ncd gitlab-api-python\n\n\nbrew install python\n\n\npip3 install -r requirements.txt\n\n\npython3 \u003Cscriptname>.py\n\n```\n\nDie Skripte verwenden absichtlich keine gemeinsam genutzte Bibliothek, die\nz. B. generische Funktionen für das Lesen von Parametern oder zusätzliche\nHilfsfunktionen bereitstellt. Die Idee ist, einfach zu verstehende Beispiele\nzu zeigen, die eigenständig zum Testen verwendet werden können und lediglich\ndie Installation der python-gitlab-Bibliothek erfordern.\n\n\nEs wird empfohlen, den Code für den Produktionseinsatz zu verbessern. Dies\nkann auch beim Aufbau eines gewarteten API-Tooling-Projekts helfen, das z.\nB. Container-Images und CI/CD-Vorlagen für Entwickler enthält, die auf einer\nDevSecOps-Plattform genutzt werden können.\n\n\n## GitLab API Python: Konfiguration\n\n\nOhne Konfiguration führt python-gitlab unauthentifizierte Anfragen an den\nStandardserver https://gitlab.com aus. Die häufigsten\nKonfigurationseinstellungen beziehen sich auf die GitLab-Instanz, mit der\neine Verbindung hergestellt werden soll, und die Authentifizierungsmethode\ndurch Angabe von Zugriffstokens. python-gitlab unterstützt verschiedene\nArten der Konfiguration: Eine Konfigurationsdatei oder Umgebungsvariablen.\n\n\nDie Konfigurationsdatei ist für die API-Bibliotheksbindungen und die CLI\nverfügbar (die CLI wird in diesem Blogpost nicht erläutert). Die\nKonfigurationsdatei unterstützt Credential Helpers für den direkten Zugriff\nauf Token.\n\n\nUmgebungsvariablen als alternative Konfigurationsmethode bieten eine\neinfache Möglichkeit, das Skript auf dem Terminal auszuführen, in\nContainer-Images zu integrieren und sie für die Ausführung in\nCI/CD-Pipelines vorzubereiten.\n\n\nDie Konfiguration muss in den Kontext des Python-Skripts geladen werden.\nBeginne mit dem Import der os-Bibliothek, um die Umgebungsvariablen mit der\nMethode os.environ.get() abzurufen. Der erste Parameter gibt den Schlüssel\nan, der zweite Parameter legt den Standardwert fest, wenn die Variable in\nder Umgebung nicht verfügbar ist.\n\n\n```python\n\nimport os\n\n\ngl_server = os.environ.get('GL_SERVER', 'https://gitlab.com')\n\n\nprint(gl_server)\n\n```\n\n\nDie Parametrisierung auf dem Terminal kann direkt nur für den Befehl\nerfolgen oder in die Shell-Umgebung exportiert werden.\n\n\n```shell\n\n$ GL_SERVER=’https://gitlab.company.com’ python3 script.py\n\n\n$ export GL_SERVER=’https://gitlab.company.com’\n\n$ python3 script.py\n\n```\n\n\nEs wird empfohlen, Sicherheitsprüfungen hinzuzufügen, um sicherzustellen,\ndass alle Variablen gesetzt sind, bevor das Programm weiter ausgeführt wird.\nDer folgende Ausschnitt importiert die erforderlichen Bibliotheken, liest\ndie Umgebungsvariable GL_SERVER und erwartet, dass der Benutzer die Variable\nGL_TOKEN setzt. Wenn dies nicht der Fall ist, gibt das Skript Fehler aus und\nruft sys.exit(1) auf, um einen Fehlerstatus anzuzeigen.\n\n\n```python\n\nimport gitlab\n\nimport os\n\nimport sys\n\n\nGITLAB_SERVER = os.environ.get('GL_SERVER', 'https://gitlab.com')\n\nGITLAB_TOKEN = os.environ.get('GL_TOKEN')\n\n\nif not GITLAB_TOKEN:\n    print(\"Please set the GL_TOKEN env variable.\")\n    sys.exit(1)\n```\n\n\nFolgend siehst du ein ausführlicheres Beispiel, das eine Verbindung zur API\nherstellt und eine tatsächliche Datenabfrage durchführt.\n\n\n## Objekte verwalten: das GitLab-Objekt\n\n\nFür jede Interaktion mit der API muss das GitLab-Objekt instanziiert werden.\nDies ist der Einstiegspunkt für die Konfiguration des GitLab-Servers für die\nVerbindung, die Authentifizierung mithilfe von Zugriffstokens und weitere\nglobale Einstellungen für die Paginierung, das Laden von Objekten und mehr.\n\n\nIm folgenden Beispiel wird eine nicht authentifizierte Anfrage an gitlab.com\nausgeführt. Es ist möglich, auf öffentliche API-Endpunkte zuzugreifen und\nzum Beispiel eine bestimmte [.gitignore Vorlage für\nPython](https://python-gitlab.readthedocs.io/en/stable/gl_objects/templates.html#gitignore-templates)\nabzurufen.\n\n\n[python_gitlab_object_unauthenticated.py](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/python_gitlab_object_unauthenticated.py)\n\n\n```python\n\nimport gitlab\n\n\ngl = gitlab.Gitlab()\n\n\n# Get .gitignore templates without authentication\n\ngitignore_templates = gl.gitignores.get('Python')\n\n\nprint(gitignore_templates.content)\n\n```\n\n\nDie nächsten Abschnitte geben weitere Einblicke in:\n\n\n- Objektmanager und Laden von Objekten\n\n- Paginierung von Ergebnissen\n\n- Arbeiten mit Objektbeziehungen\n\n- Arbeiten mit verschiedenen Objektsammlungsbereichen\n\n\n### Objektmanager und Laden von Objekten\n\n\nDie python-gitlab-Bibliothek ermöglicht den Zugriff auf GitLab-Ressourcen\nüber sogenannte\n„[Manager](https://python-gitlab.readthedocs.io/en/stable/api-usage.html#managers)\".\nJeder Managertyp implementiert Methoden zur Arbeit mit den Datensätzen\n(list, get, etc.).\n\n\nDas Skript zeigt, wie man auf Untergruppen, direkte Projekte, alle Projekte\neinschließlich Untergruppen, Issues, Epics und To-dos zugreifen kann. Diese\nMethoden und der API-Endpunkt erfordern eine Authentifizierung für den\nZugriff auf alle Attribute. Der Codeschnipsel verwendet daher Variablen, um\ndas Authentifizierungs-Token abzurufen sowie die GROUP_ID-Variable, um eine\nHauptgruppe anzugeben, bei der die Suche beginnen soll.\n\n\n```python\n\n#!/usr/bin/env python\n\n\nimport gitlab\n\nimport os\n\nimport sys\n\n\nGITLAB_SERVER = os.environ.get('GL_SERVER', 'https://gitlab.com')\n\n# https://gitlab.com/gitlab-de/use-cases/\n\nGROUP_ID = os.environ.get('GL_GROUP_ID', 16058698)\n\nGITLAB_TOKEN = os.environ.get('GL_TOKEN')\n\n\nif not GITLAB_TOKEN:\n    print(\"Please set the GL_TOKEN env variable.\")\n    sys.exit(1)\n\ngl = gitlab.Gitlab(GITLAB_SERVER, private_token=GITLAB_TOKEN)\n\n\n# Main\n\nmain_group = gl.groups.get(GROUP_ID)\n\n\nprint(\"Sub groups\")\n\nfor sg in main_group.subgroups.list():\n    print(\"Subgroup name: {sg}\".format(sg=sg.name))\n\nprint(\"Projects (direct)\")\n\nfor p in main_group.projects.list():\n    print(\"Project name: {p}\".format(p=p.name))\n\nprint(\"Projects (including subgroups)\")\n\nfor p in main_group.projects.list(include_subgroups=True, all=True):\n     print(\"Project name: {p}\".format(p=p.name))\n\nprint(\"Issues\")\n\nfor i in main_group.issues.list(state='opened'):\n    print(\"Issue title: {t}\".format(t=i.title))\n\nprint(\"Epics\")\n\nfor e in main_group.issues.list():\n    print(\"Epic title: {t}\".format(t=e.title))\n\nprint(\"Todos\")\n\nfor t in gl.todos.list(state='pending'):\n    print(\"Todo: {t} url: {u}\".format(t=t.body, u=t.target_url\n```\n\n\nDu kannst das Skript\n[`python_gitlab_object_manager_methods.py`](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/python_gitlab_object_manager_methods.py)\nausführen, indem du die GROUP_ID-Variable auf GitLab.com SaaS für deine\neigene zu analysierende Gruppe überschreibst. Die Variable GL_SERVER muss\nfür selbstverwaltete Instanzziele angegeben werden. GL_TOKEN muss das\npersönliche Zugriffstoken enthalten.\n\n\n```shell\n\nexport GL_TOKEN=xxx\n\n\nexport GL_SERVER=”https://gitlab.company.com”\n\n\nexport GL_SERVER=”https://gitlab.com”\n\n\nexport GL_GROUP_ID=1234\n\n\npython3 python_gitlab_object_manager_methods.py\n\n```\n\nIn Zukunft werden die Beispiel-Snippets die Python-Header und das Parsen von\nUmgebungsvariablen nicht mehr zeigen, um sich auf den Algorithmus und die\nFunktionalität zu konzentrieren. Alle Skripte sind Open Source unter der\nMIT-Lizenz und in [diesem\nProjekt](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python)\nverfügbar.\n\n\n### Paginierung der Ergebnisse\n\n\nStandardmäßig gibt die GitLab-API nicht alle Ergebnissätze zurück und\nerfordert, dass die Clients die Paginierung verwenden, um durch alle\nErgebnisseiten zu iterieren. Mit der python-gitlab-Bibliothek können\nBenutzer die Einstellungen global im GitLab-Objekt oder bei jedem\nlist()-Aufruf\n[festlegen](https://python-gitlab.readthedocs.io/en/stable/api-usage.html#pagination).\nStandardmäßig würden alle Ergebnissätze API-Anfragen auslösen, was die\nSkriptausführung verlangsamen kann. Die empfohlene Methode ist die\nVerwendung von iterator=True, die ein Generatorobjekt zurückgibt, und\nAPI-Aufrufe werden beim Zugriff auf das Objekt bei Bedarf ausgelöst.\n\n\nDas folgende Beispiel sucht nach dem Gruppennamen everyonecancontribute und\nverwendet eine\n[Paginierung](https://docs.gitlab.com/ee/api/rest/index.html#pagination) der\nSchlüsselsätze mit 100 Ergebnissen auf jeder Seite. Der Iterator wird bei\ngl.groups.list(iterator=True) auf true gesetzt, um bei Bedarf neue\nErgebnissätze abzurufen. Wird der gesuchte Gruppenname gefunden, bricht die\nSchleife ab und gibt eine Zusammenfassung aus, einschließlich der Messung\nder Dauer der gesamten Suchanfrage.\n\n\n```python\n\nSEARCH_GROUP_NAME=\"everyonecancontribute\"\n\n\n# Use keyset pagination\n\n# https://python-gitlab.readthedocs.io/en/stable/api-usage.html#pagination\n\ngl = gitlab.Gitlab(GITLAB_SERVER, private_token=GITLAB_TOKEN,\n    pagination=\"keyset\", order_by=\"id\", per_page=100)\n\n# Iterate over the list, and fire new API calls in case the result set does\nnot match yet\n\ngroups = gl.groups.list(iterator=True)\n\n\nfound_page = 0\n\nstart = timer()\n\n\nfor group in groups:\n    if SEARCH_GROUP_NAME == group.name:\n        # print(group) # debug\n        found_page = groups.current_page\n        break\n\nend = timer()\n\n\nduration = f'{end-start:.2f}'\n\n\nif found_page > 0:\n    print(\"Pagination API example for Python with GitLab{desc} - found group {g} on page {p}, duration {d}s\".format(\n        desc=\", the DevSecOps platform\", g=SEARCH_GROUP_NAME, p=found_page, d=duration))\nelse:\n    print(\"Could not find group name '{g}', duration {d}\".format(g=SEARCH_GROUP_NAME, d=duration))\n```\n\n\nBeim Ausführen von python_gitlab_pagination.py wurde die Gruppe\n[everyonecancontribute](https://gitlab.com/everyonecancontribute) auf Seite\n5 gefunden.\n\n\n```shell\n\n$ python3 python_gitlab_pagination.py\n\nPagination API example for Python with GitLab, the DevSecOps platform -\nfound group everyonecancontribute on page 5, duration 8.51s\n\n```\n\n\n### Arbeiten mit Objektbeziehungen\n\n\nBei der Arbeit mit Objektbeziehungen – z. B. beim Sammeln aller Projekte in\neiner bestimmten Gruppe – müssen zusätzliche Schritte unternommen werden.\nDie zurückgegebenen Projektobjekte enthalten standardmäßig nur begrenzte\nAttribute. Für verwaltbare Objekte ist ein zusätzlicher get()-Aufruf\nerforderlich, der das vollständige Projektobjekt von der API im Hintergrund\nanfordert. Dieser On-Demand-Workflow hilft, Wartezeiten und Datenverkehr zu\nvermeiden, indem er die sofort zurückgegebenen Attribute reduziert.\n\n\nDas folgende Beispiel veranschaulicht das Problem, indem es eine Schleife\ndurch alle Projekte in einer Gruppe durchläuft und versucht, die Funktion\nproject.branches.list() aufzurufen, was eine Ausnahme im try/except-Flow\nauslöst. Im zweiten Beispiel wird ein verwaltbares Projektobjekt ermittelt\nund der Funktionsaufruf erneut versucht.\n\n\n```python\n\n# Main\n\ngroup = gl.groups.get(GROUP_ID)\n\n\n# Collect all projects in group and subgroups\n\nprojects = group.projects.list(include_subgroups=True, all=True)\n\n\nfor project in projects:\n    # Try running a method on a weak object\n    try:\n       print(\"🤔 Project: {pn} 💡 Branches: {b}\\n\".format(\n        pn=project.name,\n        b=\", \".join([x.name for x in project.branches.list()])))\n    except Exception as e:\n        print(\"Got exception: {e} \\n ===================================== \\n\".format(e=e))\n\n    # Retrieve a full manageable project object\n    # https://python-gitlab.readthedocs.io/en/stable/gl_objects/groups.html#examples\n    manageable_project = gl.projects.get(project.id)\n\n    # Print a method available on a manageable object\n    print(\"🤔 Project: {pn} 💡 Branches: {b}\\n\".format(\n        pn=manageable_project.name,\n        b=\", \".join([x.name for x in manageable_project.branches.list()])))\n```\n\n\nDer Exception-Handler in der python-gitlab-Bibliothek gibt die Fehlermeldung\naus und verlinkt auch auf die Dokumentation. Es ist hilfreich, bei der\nFehlersuche zu beachten, dass Objekte möglicherweise nicht verwaltet werden\nkönnen, wenn du nicht auf Objektattribute oder Funktionsaufrufe zugreifen\nkannst.\n\n\n```shell\n\n$ python3 python_gitlab_manageable_objects.py\n\n\n🤔 Project: GitLab API Playground 💡 Branches: cicd-demo-automated-comments,\ndocs-mr-approval-settings, main\n\n\nGot exception: 'GroupProject' object has no attribute 'branches'\n\n\n\u003Cclass 'gitlab.v4.objects.projects.GroupProject'> was created via a\n\nlist() call and only a subset of the data may be present. To ensure\n\nall data is present get the object using a get(object.id) call. For\n\nmore details, see:\n\n\nhttps://python-gitlab.readthedocs.io/en/v3.8.1/faq.html#attribute-error-list\n =====================================\n```\n\n\nHier findest du das vollständige\n[Skript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/python_gitlab_manageable_objects.py).\n\n\n### Arbeiten mit verschiedenen Objektsammlungsbereichen\n\n\nManchmal muss das Skript alle Projekte aus einer selbstverwalteten Instanz,\naus einer Gruppe mit Untergruppen oder aus einem einzelnen Projekt sammeln.\nLetzteres ist hilfreich, um die erforderlichen Attribute schneller testen zu\nkönnen, und der Gruppenabruf hilft später beim Testen im großen Maßstab. Das\nfolgende Snippet sammelt alle Projektobjekte in der projects-Liste und fügt\nObjekte aus verschiedenen eingehenden Konfigurationen hinzu. Du wirst auch\nwieder das verwaltbare Objektmuster für Projekte in Gruppen sehen.\n\n\n```python\n    # Collect all projects, or prefer projects from a group id, or a project id\n    projects = []\n\n    # Direct project ID\n    if PROJECT_ID:\n        projects.append(gl.projects.get(PROJECT_ID))\n\n    # Groups and projects inside\n    elif GROUP_ID:\n        group = gl.groups.get(GROUP_ID)\n\n        for project in group.projects.list(include_subgroups=True, all=True):\n            # https://python-gitlab.readthedocs.io/en/stable/gl_objects/groups.html#examples\n            manageable_project = gl.projects.get(project.id)\n            projects.append(manageable_project)\n\n    # All projects on the instance (may take a while to process)\n    else:\n        projects = gl.projects.list(get_all=True)\n```\n\n\nDas vollständige Beispiel befindet sich in [diesem\nSkript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/get_mr_approval_rules.py)\nfür die Auflistung der Einstellungen der MR-Genehmigungsregeln für bestimmte\nProjektziele.\n\n\n## DevSecOps-Anwendungsfälle für API-Leseaktionen\n\n\nDas authentifizierte Zugriffstoken benötigt den Bereich [`read_api`\nscope](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#personal-access-token-scopes).\n\n\nDie folgenden Anwendungsfälle werden diskutiert:\n\n\n- Zweige nach Zusammenführungsstatus auflisten\n\n- Drucken von Projekteinstellungen zur Überprüfung: MR-Genehmigungsregeln\n\n- Inventarisierung: Abrufen aller CI/CD-Variablen, die geschützt oder\nmaskiert sind\n\n- Herunterladen einer Datei aus dem Repository\n\n- Hilfe zur Migration: Auflistung aller zertifikatsbasierten\nKubernetes-Cluster\n\n- Team-Effizienz: Prüfen Sie, ob bestehende Merge-Requests nach dem Mergen\neiner großen Refactoring-MR neu gebasht werden müssen\n\n\n### Zweige nach Zusammenführungsstatus auflisten\n\n\nEin häufiges Anliegen ist es, in einem Projekt ein wenig Git-Housekeeping zu\nbetreiben und zu sehen, wie viele zusammengeführte und nicht\nzusammengeführte Zweige im Umlauf sind. Eine\n[Frage](https://forum.gitlab.com/t/python-gitlab-project-branch-list-filter/80257)\nim GitLab-Community-Forum zum Filtern von Zweiglisten hat mich dazu\ninspiriert, ein\n[Skript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/get_branches_by_state.py)\nzu schreiben, mit dem sich dieses Ziel erreichen lässt. Die Methode\nbranches.list() gibt alle Zweigobjekte zurück, die in einer temporären Liste\nfür die spätere Verarbeitung in zwei Schleifen gespeichert werden: Sammeln\nder Namen der zusammengeführten Zweige und der Namen der nicht\nzusammengeführten Zweige. Das Attribut merged des branch-Objekts ist ein\nboolescher Wert, der angibt, ob der Zweig zusammengeführt wurde.\n\n\n```python\n\nproject = gl.projects.get(PROJECT_ID, lazy=False, pagination=\"keyset\",\norder_by=\"updated_at\", per_page=100)\n\n\n# Get all branches\n\nreal_branches = []\n\nfor branch in project.branches.list():\n    real_branches.append(branch)\n\nprint(\"All branches\")\n\nfor rb in real_branches:\n    print(\"Branch: {b}\".format(b=rb.name))\n\n# Get all merged branches\n\nmerged_branches_names = []\n\nfor branch in real_branches:\n    if branch.default:\n        continue # ignore the default branch for merge status\n\n    if branch.merged:\n        merged_branches_names.append(branch.name)\n\nprint(\"Branches merged: {b}\".format(b=\", \".join(merged_branches_names)))\n\n\n# Get un-merged branches\n\nnot_merged_branches_names = []\n\nfor branch in real_branches:\n    if branch.default:\n        continue # ignore the default branch for merge status\n\n    if not branch.merged:\n        not_merged_branches_names.append(branch.name)\n\nprint(\"Branches not merged: {b}\".format(b=\",\n\".join(not_merged_branches_names)))\n\n```\n\n\nDer Arbeitsablauf ist absichtlich schrittweise zu lesen. Du kannst die\nOptimierung des Python-Codes für die bedingte Zweignamensammlung üben.\n\n\n### Drucken von Projekteinstellungen zur Überprüfung: MR-Genehmigungsregeln\n\n\nDas folgende\n[Skript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/get_mr_approval_rules.py)\ngeht durch alle gesammelten Projektobjekte und prüft, ob Genehmigungsregeln\nangegeben sind. Wenn die Länge der Liste größer als Null ist, durchläuft es\ndie Liste in einem Loop und druckt die Einstellungen mit einer JSON-Ph\npretty-print-Methode aus.\n\n\n```python\n    # Loop over projects and print the settings\n    # https://python-gitlab.readthedocs.io/en/stable/gl_objects/merge_request_approvals.html\n    for project in projects:\n        if len(project.approvalrules.list()) > 0:\n            #print(project) #debug\n            print(\"# Project: {name}, ID: {id}\\n\\n\".format(name=project.name_with_namespace, id=project.id))\n            print(\"[MR Approval settings]({url}/-/settings/merge_requests)\\n\\n\".format(url=project.web_url))\n\n            for ar in project.approvalrules.list():\n                print(\"## Approval rule: {name}, ID: {id}\".format(name=ar.name, id=ar.id))\n                print(\"\\n```json\\n\")\n                print(json.dumps(ar.attributes, indent=2)) # TODO: can be more beautiful, but serves its purpose with pretty print JSON\n                print(\"\\n```\\n\")\n\n```\n\n\n### Inventarisierung: Abrufen aller CI/CD-Variablen, die geschützt oder\nmaskiert sind\n\n\n[CI/CD Variablen](https://docs.gitlab.com/ee/ci/variables/) sind hilfreich\nfür die Pipeline-Parametrisierung und können global auf der Instanz, in\nGruppen und in Projekten konfiguriert werden. Auch Daten, Passwörter und\nandere sensible Informationen können dort gespeichert werden. Manchmal kann\nes notwendig sein, sich einen Überblick über alle CI/CD-Variablen zu\nverschaffen, die entweder geschützt oder maskiert sind, um ein Gefühl dafür\nzu bekommen, wie viele Variablen aktualisiert werden müssen, wenn Token zum\nBeispiel rotieren.\n\n\nDas folgende\n[Skript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/get_all_cicd_variables_masked_or_protected.py)\nruft alle Gruppen und Projekte ab und versucht, die CI/CD-Variablen der\nglobalen Instanz (erfordert Admin-Rechte), der Gruppen und Projekte\n(erfordert Maintainer-/Eigentümer-Rechte) zu sammeln. Es gibt alle\nCI/CD-Variablen aus, die entweder geschützt oder maskiert sind, und fügt\nhinzu, dass ein möglicher geheimer Wert gespeichert ist.\n\n\n```python\n\n#!/usr/bin/env python\n\n\nimport gitlab\n\nimport os\n\nimport sys\n\n\n# Helper function to evaluate secrets and print the variables\n\ndef eval_print_var(var):\n    if var.protected or var.masked:\n        print(\"🛡️🛡️🛡️ Potential secret: Variable '{name}', protected {p}, masked: {m}\".format(name=var.key,p=var.protected,m=var.masked))\n\nGITLAB_SERVER = os.environ.get('GL_SERVER', 'https://gitlab.com')\n\nGITLAB_TOKEN = os.environ.get('GL_TOKEN') # token requires maintainer+\npermissions. Instance variables require admin access.\n\nPROJECT_ID = os.environ.get('GL_PROJECT_ID') #optional\n\nGROUP_ID = os.environ.get('GL_GROUP_ID', 8034603) #\nhttps://gitlab.com/everyonecancontribute\n\n\nif not GITLAB_TOKEN:\n    print(\"🤔 Please set the GL_TOKEN env variable.\")\n    sys.exit(1)\n\ngl = gitlab.Gitlab(GITLAB_SERVER, private_token=GITLAB_TOKEN)\n\n\n# Collect all projects, or prefer projects from a group id, or a project id\n\nprojects = []\n\n# Collect all groups, or prefer group from a group id\n\ngroups = []\n\n\n# Direct project ID\n\nif PROJECT_ID:\n    projects.append(gl.projects.get(PROJECT_ID))\n\n# Groups and projects inside\n\nelif GROUP_ID:\n    group = gl.groups.get(GROUP_ID)\n\n    for project in group.projects.list(include_subgroups=True, all=True):\n        # https://python-gitlab.readthedocs.io/en/stable/gl_objects/groups.html#examples\n        manageable_project = gl.projects.get(project.id)\n        projects.append(manageable_project)\n\n    groups.append(group)\n\n# All projects/groups on the instance (may take a while to process, use\niterators to fetch on-demand).\n\nelse:\n    projects = gl.projects.list(iterator=True)\n    groups = gl.groups.list(iterator=True)\n\nprint(\"# List of all CI/CD variables marked as secret (instance, groups,\nprojects)\")\n\n\n# https://python-gitlab.readthedocs.io/en/stable/gl_objects/variables.html\n\n\n# Instance variables (if the token has permissions)\n\nprint(\"Instance variables, if accessible\")\n\ntry:\n    for i_var in gl.variables.list(iterator=True):\n        eval_print_var(i_var)\nexcept:\n    print(\"No permission to fetch global instance variables, continueing without.\")\n    print(\"\\n\")\n\n# group variables (maintainer permissions for groups required)\n\nfor group in groups:\n    print(\"Group {n}, URL: {u}\".format(n=group.full_path, u=group.web_url))\n    for g_var in group.variables.list(iterator=True):\n        eval_print_var(g_var)\n\n    print(\"\\n\")\n\n# Loop over projects and print the settings\n\nfor project in projects:\n    # skip archived projects, they throw 403 errors\n    if project.archived:\n        continue\n\n    print(\"Project {n}, URL: {u}\".format(n=project.path_with_namespace, u=project.web_url))\n    for p_var in project.variables.list(iterator=True):\n        eval_print_var(p_var)\n\n    print(\"\\n\")\n```\n\nDas Skript druckt die Variablenwerte absichtlich nicht aus; dies soll als\nÜbung für sichere Umgebungen dienen. Für die Speicherung von Daten empfiehlt\nsich die Verwendung [externer\nAnbieter](https://docs.gitlab.com/ee/ci/secrets/).\n\n\n### Herunterladen einer Datei aus dem Repository\n\n\nZiel des\n[Skripts](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/get_raw_file_content.py)\nist es, einen Dateipfad von einem angegebenen Verzweigungsnamen\nherunterzuladen und dessen Inhalt in einer neuen Datei zu speichern.\n\n\n```python\n\n# Goal: Try to download README.md from\nhttps://gitlab.com/gitlab-de/use-cases/gitlab-api/gitlab-api-python/-/blob/main/README.md\n\nFILE_NAME = 'README.md'\n\nBRANCH_NAME = 'main'\n\n\n# Search the file in the repository tree and get the raw blob\n\nfor f in project.repository_tree():\n    print(\"File path '{name}' with id '{id}'\".format(name=f['name'], id=f['id']))\n\n    if f['name'] == FILE_NAME:\n        f_content = project.repository_raw_blob(f['id'])\n        print(f_content)\n\n# Alternative approach: Get the raw file from the main branch\n\nraw_content = project.files.raw(file_path=FILE_NAME, ref=BRANCH_NAME)\n\nprint(raw_content)\n\n\n# Store the file on disk\n\nwith open('raw_README.md', 'wb') as f:\n    project.files.raw(file_path=FILE_NAME, ref=BRANCH_NAME, streamed=True, action=f.write)\n```\n\n\n### Hilfe zur Migration: Auflistung aller zertifikatsbasierten\nKubernetes-Cluster\n\n\nDie zertifikatsbasierte Integration von Kubernetes-Clustern in GitLab wurde\n[abgeschafft](https://docs.gitlab.com/ee/update/deprecations.html#self-managed-certificate-based-integration-with-kubernetes).\nUm Migrationspläne zu unterstützen, kann die Erfassung bestehender Gruppen\nund Projekte mithilfe der GitLab-API automatisiert werden.\n\n\n```python\n\ngroups = [ ]\n\n\n# get GROUP_ID group\n\ngroups.append(gl.groups.get(GROUP_ID))\n\n\nfor group in groups:\n    for sg in group.subgroups.list(include_subgroups=True, all=True):\n        real_group = gl.groups.get(sg.id)\n        groups.append(real_group)\n\ngroup_clusters = {}\n\nproject_clusters = {}\n\n\nfor group in groups:\n    #Collect group clusters\n    g_clusters = group.clusters.list()\n\n    if len(g_clusters) > 0:\n        group_clusters[group.id] = g_clusters\n\n    # Collect all projects in group and subgroups and their clusters\n    projects = group.projects.list(include_subgroups=True, all=True)\n\n    for project in projects:\n        # https://python-gitlab.readthedocs.io/en/stable/gl_objects/groups.html#examples\n        manageable_project = gl.projects.get(project.id)\n\n        # skip archived projects\n        if project.archived:\n            continue\n\n        p_clusters = manageable_project.clusters.list()\n\n        if len(p_clusters) > 0:\n            project_clusters[project.id] = p_clusters\n\n# Print summary\n\nprint(\"## Group clusters\\n\\n\")\n\nfor g_id, g_clusters in group_clusters.items():\n    url = gl.groups.get(g_id).web_url\n    print(\"Group ID {g_id}: {u}\\n\\n\".format(g_id=g_id, u=url))\n    print_clusters(g_clusters)\n\nprint(\"## Project clusters\\n\\n\")\n\nfor p_id, p_clusters in project_clusters.items():\n    url = gl.projects.get(p_id).web_url\n    print(\"Project ID {p_id}: {u}\\n\\n\".format(p_id=p_id, u=url))\n    print_clusters(p_clusters)\n```\n\n\nHier findest du das vollständige\n[Skript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/list_cert_based_kubernetes_clusters.py).\n\n\n### Team-Effizienz: Prüfe, ob bestehende Merge-Requests nach dem Mergen\neiner großen Refactoring-MR neu gebasht werden müssen\n\n\nDas [GitLab-Handbuch-Repository](https://handbook.gitlab.com/handbook/) ist ein großes Monorepo mit\nzahlreichen Merge-Requests, die erstellt, geprüft, genehmigt und\nzusammengeführt werden müssen. Einige Prüfungen dauern länger als andere,\ninsbesondere wenn Zusammenführungsanfragen mehrere Seiten betreffen,\nbeispielsweise wenn ein String umbenannt wird oder Änderungen auf\n[alle](https://handbook.gitlab.com/handbook/about/#count-handbook-pages) Handbuchseiten ausgedehnt\nwerden. Das Marketing-Handbuch wurde umstrukturiert, was zu vielen\nVerschiebungen oder Umbenennungen von Verzeichnissen und Pfaden führte.\n\n\nMit der Zeit nahmen die Issues zu, und es bestand die Sorge, dass andere\nMerge-Anfragen nach dem Zusammenführen der großen Änderungen auf Konflikte\nstoßen könnten. Es wurde festgestellt, dass Python-Gitlab in der Lage ist,\nalle Merge-Requests in einem bestimmten Projekt abzurufen, einschließlich\nDetails über den Git-Zweig, geänderte Quellpfade und vieles mehr.\n\n\nDas daraus resultierende Skript konfiguriert eine Liste von Quellpfaden, die\nvon allen pythongitlab-Merge-Requests berührt werden, und vergleicht die\nDiffs der Merge-Requests mit mr.diffs.list(), um festzustellen, ob ein\nMuster mit dem Wert in old_path. übereinstimmt. Bei einer Übereinstimmung\nprotokolliert das Skript diese und speichert die Zusammenführungsanforderung\nim seen_mr-Wörterbuch für die spätere Zusammenfassung. Zusätzlich werden\nAttribute gesammelt, um eine Markdown-Aufgabenliste mit URLs zum leichteren\nEinfügen in Issue-Beschreibungen zu erstellen.\n\n\n```python\n\nPATH_PATTERNS = [\n    'path/to/handbook/source/page.md',\n]\n\n\n# Only list opened MRs\n\n#\nhttps://python-gitlab.readthedocs.io/en/stable/gl_objects/merge_requests.html#project-merge-requests\n\nmrs = project.mergerequests.list(state='opened', iterator=True)\n\n\nseen_mr = {}\n\n\nfor mr in mrs:\n    # https://docs.gitlab.com/ee/api/merge_requests.html#list-merge-request-diffs\n    real_mr = project.mergerequests.get(mr.get_id())\n    real_mr_id = real_mr.attributes['iid']\n    real_mr_url = real_mr.attributes['web_url']\n\n    for diff in real_mr.diffs.list(iterator=True):\n        real_diff = real_mr.diffs.get(diff.id)\n\n        for d in real_diff.attributes['diffs']:\n            for p in PATH_PATTERNS:\n                if p in d['old_path']:\n                    print(\"MATCH: {p} in MR {mr_id}, status '{s}', title '{t}' - URL: {mr_url}\".format(\n                        p=p,\n                        mr_id=real_mr_id,\n                        s=mr_status,\n                        t=real_mr.attributes['title'],\n                        mr_url=real_mr_url))\n\n                    if not real_mr_id in seen_mr:\n                        seen_mr[real_mr_id] = real_mr\n\nprint(\"\\n# MRs to update\\n\")\n\n\nfor id, real_mr in seen_mr.items():\n    print(\"- [ ] !{mr_id} - {mr_url}+ Status: {s}, Title: {t}\".format(\n        mr_id=id,\n        mr_url=real_mr.attributes['web_url'],\n        s=real_mr.attributes['detailed_merge_status'],\n        t=real_mr.attributes['title']))\n```\n\n\n## DevSecOps-Anwendungsfälle für API-Schreibaktionen\n\n\nDas authentifizierte Zugriffstoken benötigt den vollen Anwendungsbereich der\n[`api`](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#personal-access-token-scopes).\n\n\nDie folgenden Anwendungsfälle werden diskutiert:\n\n\n- Verschieben von Epics zwischen Gruppen\n\n- Compliance: Sicherstellen, dass Projekteinstellungen nicht überschrieben\nwerden\n\n- Notizen machen, Fälligkeitsübersicht erstellen\n\n\n### Verschieben von Epics zwischen Gruppen\n\n\nManchmal ist es erforderlich, Epics, ähnlich wie Issues, in eine andere\nGruppe zu verschieben. Eine Frage im GitLab-Marketing-Slack-Kanal hat dazu\ngeführt, einen\n[Funktionsvorschlag](https://gitlab.com/gitlab-org/gitlab/-/issues/12689)\nfür die Benutzeroberfläche und die\n[Schnellaktionen](/blog/improve-your-gitlab-productivity-with-these-10-tips/)\nzu prüfen und später über das Schreiben eines API-Skripts nachzudenken, um\ndie Schritte zu automatisieren.\n\n\n### Automatisierung des Verschiebens von Epics\n\n\nDie Idee ist einfach: Ein Epic wird von einer Quellgruppe in eine Zielgruppe\nverschoben, wobei Titel, Beschreibung und Labels kopiert werden. Da Epics es\nerlauben, Themen zu gruppieren, müssen sie auch dem Ziel-Epic neu zugewiesen\nwerden. Parent-Child-Epic-Relationships müssen dabei berücksichtigt werden:\nAlle Child-Epics der Quell-Epics müssen dem Ziel-Epic neu zugewiesen werden.\n\n\nDas folgende Skript sucht zunächst alle\n[Attribute](https://python-gitlab.readthedocs.io/en/stable/gl_objects/epics.html)\ndes Quellepos und erstellt dann ein neues Zielepos mit den minimalen\nAttributen: Titel und Beschreibung. Die Liste der Bezeichnungen wird kopiert\nund die Änderungen werden mit dem save()-Aufruf beibehalten. Die Ausgaben,\ndie dem Epos zugeordnet sind, müssen im Zielepos neu erstellt werden.\n\n\nDer create()-Aufruf erzeugt das Beziehungselement und nicht ein neues\nIssue-Objekt selbst. Das Verschieben von Child-Epics erfordert einen anderen\nAnsatz, da die Beziehung umgekehrt ist: Die parent_id des Child-Epics muss\nmit der ID des Quell-Epics verglichen und bei Übereinstimmung auf die ID des\nZiel-Epics aktualisiert werden. Nachdem alles erfolgreich kopiert wurde,\nmuss das Quell-Epos in den closed-Zustand versetzt werden.\n\n\n```python\n\n#!/usr/bin/env python\n\n\n# Description: Show how epics can be moved between groups, including title,\ndescription, labels, child epics and issues.\n\n# Requirements: python-gitlab Python libraries. GitLab API write access, and\nmaintainer access to all configured groups/projects.\n\n# Author: Michael Friedrich \u003Cmfriedrich@gitlab.com>\n\n# License: MIT, (c) 2023-present GitLab B.V.\n\n\nimport gitlab\n\nimport os\n\nimport sys\n\n\nGITLAB_SERVER = os.environ.get('GL_SERVER', 'https://gitlab.com')\n\n# https://gitlab.com/gitlab-da/use-cases/gitlab-api\n\nSOURCE_GROUP_ID = os.environ.get('GL_SOURCE_GROUP_ID', 62378643)\n\n# https://gitlab.com/gitlab-da/use-cases/gitlab-api/epic-move-target\n\nTARGET_GROUP_ID = os.environ.get('GL_TARGET_GROUP_ID', 62742177)\n\n# https://gitlab.com/groups/gitlab-da/use-cases/gitlab-api/-/epics/1\n\nEPIC_ID = os.environ.get('GL_EPIC_ID', 1)\n\nGITLAB_TOKEN = os.environ.get('GL_TOKEN')\n\n\nif not GITLAB_TOKEN:\n    print(\"Please set the GL_TOKEN env variable.\")\n    sys.exit(1)\n\ngl = gitlab.Gitlab(GITLAB_SERVER, private_token=GITLAB_TOKEN)\n\n\n# Main\n\n# Goal: Move epic to target group, including title, body, labels, and child\nepics and issues.\n\nsource_group = gl.groups.get(SOURCE_GROUP_ID)\n\ntarget_group = gl.groups.get(TARGET_GROUP_ID)\n\n\n# Create a new target epic and copy all its items, then close the source\nepic.\n\nsource_epic = source_group.epics.get(EPIC_ID)\n\n# print(source_epic) #debug\n\n\nepic_title = source_epic.title\n\nepic_description = source_epic.description\n\nepic_labels = source_epic.labels\n\nepic_issues = source_epic.issues.list()\n\n\n# Create the epic with minimal attributes\n\ntarget_epic = target_group.epics.create({\n    'title': epic_title,\n    'description': epic_description,\n})\n\n\n# Assign the list\n\ntarget_epic.labels = epic_labels\n\n\n# Persist the changes in the new epic\n\ntarget_epic.save()\n\n\n# Epic issues need to be re-assigned in a loop\n\nfor epic_issue in epic_issues:\n    ei = target_epic.issues.create({'issue_id': epic_issue.id})\n\n# Child epics need to update their parent_id to the new epic\n\n# Need to search in all epics, use lazy object loading\n\nfor sge in source_group.epics.list(lazy=True):\n    # this epic has the source epic as parent epic?\n    if sge.parent_id == source_epic.id:\n        # Update the parent id\n        sge.parent_id = target_epic.id\n        sge.save()\n\nprint(\"Copied source epic {source_id} ({source_url}) to target epic\n{target_id} ({target_url})\".format(\n    source_id=source_epic.id, source_url=source_epic.web_url,\n    target_id=target_epic.id, target_url=target_epic.web_url))\n\n# Close the old epic\n\nsource_epic.state_event = 'close'\n\nsource_epic.save()\n\nprint(\"Closed source epic {source_id} ({source_url})\".format(\n    source_id=source_epic.id, source_url=source_epic.web_url))\n\n```\n\n\n```shell\n\n$  python3 move_epic_between_groups.py\n\nCopied source epic 725341\n(https://gitlab.com/groups/gitlab-da/use-cases/gitlab-api/-/epics/1) to\ntarget epic 725358\n(https://gitlab.com/groups/gitlab-da/use-cases/gitlab-api/epic-move-target/-/epics/6)\n\nClosed source epic 725341\n(https://gitlab.com/groups/gitlab-da/use-cases/gitlab-api/-/epics/1)\n\n```\n\n\nDas\n[Ziel-Epic](https://gitlab.com/groups/gitlab-da/use-cases/gitlab-api/epic-move-target/-/epics/5)\nwurde erstellt und zeigt das erwartete Ergebnis: Derselbe Titel, dieselbe\nBeschreibung, dieselben Bezeichnungen, dasselbe untergeordnete Epic und\ndieselben Issues.\n\n\n![Target epic which has all attributes copied from the source epic: title,\ndescription, labels, child epics,\nissues](https://about.gitlab.com/images/blogimages/efficient-devsecops-workflows-python-gitlab-handson/python_gitlab_moved_epic_with_all_attributes.png){:\n.shadow}\n\n\n**Übung:** Das Skript kopiert noch keine\n[Kommentare](https://python-gitlab.readthedocs.io/en/stable/gl_objects/notes.html)\nund\n[Diskussionsstränge](https://python-gitlab.readthedocs.io/en/stable/gl_objects/discussions.html).\nRecherchiere und hilf mit, das Skript zu aktualisieren – Merge-Requests\nwillkommen!\n\n\n### Compliance: Sicherstellen, dass Projekteinstellungen nicht überschrieben\nwerden\n\n\nProjekt- und Gruppeneinstellungen können versehentlich von Teammitgliedern\nmit Administratorrechten geändert werden. Die Compliance-Anforderungen\nmüssen erfüllt werden. Ein weiterer Anwendungsfall ist die Verwaltung der\nKonfiguration mit Infrastructure-as-Code-Tools, um sicherzustellen, dass die\nKonfiguration von GitLab-Instanzen, -Gruppen, -Projekten usw. erhalten\nbleibt und immer dieselbe ist. Tools wie Ansible oder Terraform können ein\nAPI-Skript aufrufen oder die Python-GitLab-Bibliothek verwenden, um Aufgaben\nzur Verwaltung von Einstellungen auszuführen.\n\n\nIm folgenden Beispiel ist nur der main-Zweig geschützt.\n\n\n![GitLab project settings for repositories and protected branches, main\nbranch](https://about.gitlab.com/images/blogimages/efficient-devsecops-workflows-python-gitlab-handson/python_gitlab_protected_branches_settings_main.png){:\n.shadow}\n\n\nNehmen wir an, dass ein neuer production-Zweig hinzugefügt wurde und\nebenfalls geschützt werden soll. Das folgende\n[Skript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/enforce_protected_branches.py)\ndefiniert das Wörterbuch der geschützten Zweige und ihre Zugriffsebenen für\nPush-/Merge-Berechtigungen auf Maintainer-Ebene und baut die Vergleichslogik\nauf der Grundlage der\n[python-gitlab-Dokumentation](https://python-gitlab.readthedocs.io/en/stable/gl_objects/protected_branches.html)\nzu geschützten Zweigen auf.\n\n\n```python\n\n#!/usr/bin/env python\n\n\nimport gitlab\n\nimport os\n\nimport sys\n\n\nGITLAB_SERVER = os.environ.get('GL_SERVER', 'https://gitlab.com')\n\n# https://gitlab.com/gitlab-da/use-cases/\n\nGROUP_ID = os.environ.get('GL_GROUP_ID', 16058698)\n\nGITLAB_TOKEN = os.environ.get('GL_TOKEN')\n\n\nPROTECTED_BRANCHES = {\n    'main': {\n        'merge_access_level': gitlab.const.AccessLevel.MAINTAINER,\n        'push_access_level': gitlab.const.AccessLevel.MAINTAINER\n    },\n    'production': {\n        'merge_access_level': gitlab.const.AccessLevel.MAINTAINER,\n        'push_access_level': gitlab.const.AccessLevel.MAINTAINER\n    },\n}\n\n\nif not GITLAB_TOKEN:\n    print(\"Please set the GL_TOKEN env variable.\")\n    sys.exit(1)\n\ngl = gitlab.Gitlab(GITLAB_SERVER, private_token=GITLAB_TOKEN)\n\n\n# Main\n\ngroup = gl.groups.get(GROUP_ID)\n\n\n# Collect all projects in group and subgroups\n\nprojects = group.projects.list(include_subgroups=True, all=True)\n\n\nfor project in projects:\n    # Retrieve a full manageable project object\n    # https://python-gitlab.readthedocs.io/en/stable/gl_objects/groups.html#examples\n    manageable_project = gl.projects.get(project.id)\n\n    # https://python-gitlab.readthedocs.io/en/stable/gl_objects/protected_branches.html\n    protected_branch_names = []\n\n    for pb in manageable_project.protectedbranches.list():\n        manageable_protected_branch = manageable_project.protectedbranches.get(pb.name)\n        print(\"Protected branch name: {n}, merge_access_level: {mal}, push_access_level: {pal}\".format(\n            n=manageable_protected_branch.name,\n            mal=manageable_protected_branch.merge_access_levels,\n            pal=manageable_protected_branch.push_access_levels\n        ))\n\n        protected_branch_names.append(manageable_protected_branch.name)\n\n    for branch_to_protect, levels in PROTECTED_BRANCHES.items():\n        # Fix missing protected branches\n        if branch_to_protect not in protected_branch_names:\n            print(\"Adding branch {n} to protected branches settings\".format(n=branch_to_protect))\n            p_branch = manageable_project.protectedbranches.create({\n                'name': branch_to_protect,\n                'merge_access_level': gitlab.const.AccessLevel.MAINTAINER,\n                'push_access_level': gitlab.const.AccessLevel.MAINTAINER\n            })\n```\n\n\nWenn das Skript ausgeführt wird, werden der bestehende main-Zweig und ein\nHinweis, dass die production aktualisiert wird, ausgegeben. Der Screenshot\naus den Repository-Einstellungen verdeutlicht diese Aktion.\n\n\n```\n\n$ python3\nenforce_protected_branches.py\n─╯\n\nProtected branch name: main, merge_access_level: [{'id': 67294702,\n'access_level': 40, 'access_level_description': 'Maintainers', 'user_id':\nNone, 'group_id': None}], push_access_level: [{'id': 68546039,\n'access_level': 40, 'access_level_description': 'Maintainers', 'user_id':\nNone, 'group_id': None}]\n\nAdding branch production to protected branches settings\n\n```\n\n\n![GitLab project settings for repositories and protected branches, main and\nproduction\nbranch](https://about.gitlab.com/images/blogimages/efficient-devsecops-workflows-python-gitlab-handson/python_gitlab_protected_branches_settings_main_production.png){:\n.shadow}\n\n\n### Notizen machen, Fälligkeitsübersicht erstellen\n\n\nEine Diskussion auf [Hacker\nNews](https://news.ycombinator.com/item?id=32155848) über Tools zum\nErstellen von Notizen hat mich dazu inspiriert, eine Übersicht in Form einer\nMarkdown-Tabelle zu erstellen, die aus Dateien, die Notizen aufnehmen,\ngeholt und nach dem geparsten Fälligkeitsdatum sortiert wird. Das\n[Skript](https://gitlab.com/gitlab-da/use-cases/gitlab-api/gitlab-api-python/-/blob/main/generate_snippets_index_by_due_date.py)\nist hier zu finden und etwas komplexer zu verstehen.\n\n\n\u003C!--\n\n# 2022-07-19 Notes\n\n\nHN topic about taking notes: https://news.ycombinator.com/item?id=32152935\n\n\n-->\n\n\n***Die englischsprachige\n[Originalversion](https://about.gitlab.com/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation/)\ndieses Artikels wurde bereits aktualisiert und erhält einige weitere Tipps,\nwelche wir der deutschen Version beizeiten hinzufügen werden.***\n","engineering",[23,24,25,26],"integrations","tutorial","DevSecOps","DevSecOps platform","2025-05-16",{"slug":29,"featured":6,"template":30},"efficient-devsecops-workflows-hands-on-python-gitlab-api-automation","BlogPost","content:de-de:blog:efficient-devsecops-workflows-hands-on-python-gitlab-api-automation.yml","yaml","Efficient Devsecops Workflows Hands On Python Gitlab Api Automation","content","de-de/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation.yml","de-de/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation","yml",{"_path":39,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":41,"_id":452,"_type":32,"title":453,"_source":34,"_file":454,"_stem":455,"_extension":37},"/shared/de-de/main-navigation","de-de",{"logo":42,"freeTrial":47,"sales":52,"login":57,"items":62,"search":393,"minimal":429,"duo":443},{"config":43},{"href":44,"dataGaName":45,"dataGaLocation":46},"/de-de/","gitlab logo","header",{"text":48,"config":49},"Kostenlose Testversion anfordern",{"href":50,"dataGaName":51,"dataGaLocation":46},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":53,"config":54},"Vertrieb kontaktieren",{"href":55,"dataGaName":56,"dataGaLocation":46},"/de-de/sales/","sales",{"text":58,"config":59},"Anmelden",{"href":60,"dataGaName":61,"dataGaLocation":46},"https://gitlab.com/users/sign_in/","sign in",[63,107,205,210,314,374],{"text":64,"config":65,"cards":67,"footer":90},"Plattform",{"dataNavLevelOne":66},"platform",[68,74,82],{"title":64,"description":69,"link":70},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":71,"config":72},"Erkunde unsere Plattform",{"href":73,"dataGaName":66,"dataGaLocation":46},"/de-de/platform/",{"title":75,"description":76,"link":77},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":78,"config":79},"Lerne GitLab Duo kennen",{"href":80,"dataGaName":81,"dataGaLocation":46},"/de-de/gitlab-duo/","gitlab duo ai",{"title":83,"description":84,"link":85},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":86,"config":87},"Mehr erfahren",{"href":88,"dataGaName":89,"dataGaLocation":46},"/de-de/why-gitlab/","why gitlab",{"title":91,"items":92},"Erste Schritte mit",[93,98,103],{"text":94,"config":95},"Platform Engineering",{"href":96,"dataGaName":97,"dataGaLocation":46},"/de-de/solutions/platform-engineering/","platform engineering",{"text":99,"config":100},"Entwicklererfahrung",{"href":101,"dataGaName":102,"dataGaLocation":46},"/de-de/developer-experience/","Developer experience",{"text":104,"config":105},"MLOps",{"href":106,"dataGaName":104,"dataGaLocation":46},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":108,"left":109,"config":110,"link":112,"lists":116,"footer":187},"Produkt",true,{"dataNavLevelOne":111},"solutions",{"text":113,"config":114},"Alle Lösungen anzeigen",{"href":115,"dataGaName":111,"dataGaLocation":46},"/de-de/solutions/",[117,143,165],{"title":118,"description":119,"link":120,"items":125},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":121},{"icon":122,"href":123,"dataGaName":124,"dataGaLocation":46},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[126,130,134,139],{"text":127,"config":128},"CI/CD",{"href":129,"dataGaLocation":46,"dataGaName":127},"/de-de/solutions/continuous-integration/",{"text":131,"config":132},"KI-unterstützte Entwicklung",{"href":80,"dataGaLocation":46,"dataGaName":133},"AI assisted development",{"text":135,"config":136},"Quellcodeverwaltung",{"href":137,"dataGaLocation":46,"dataGaName":138},"/de-de/solutions/source-code-management/","Source Code Management",{"text":140,"config":141},"Automatisierte Softwarebereitstellung",{"href":123,"dataGaLocation":46,"dataGaName":142},"Automated software delivery",{"title":144,"description":145,"link":146,"items":151},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":147},{"href":148,"dataGaName":149,"dataGaLocation":46,"icon":150},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[152,156,161],{"text":153,"config":154},"Application Security Testing",{"href":148,"dataGaName":155,"dataGaLocation":46},"Application security testing",{"text":157,"config":158},"Schutz der Software-Lieferkette",{"href":159,"dataGaLocation":46,"dataGaName":160},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":162,"config":163},"Software Compliance",{"href":164,"dataGaName":162,"dataGaLocation":46},"/de-de/solutions/software-compliance/",{"title":166,"link":167,"items":172},"Bewertung",{"config":168},{"icon":169,"href":170,"dataGaName":171,"dataGaLocation":46},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[173,177,182],{"text":174,"config":175},"Sichtbarkeit und Bewertung",{"href":170,"dataGaLocation":46,"dataGaName":176},"Visibility and Measurement",{"text":178,"config":179},"Wertstrommanagement",{"href":180,"dataGaLocation":46,"dataGaName":181},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":183,"config":184},"Analysen und Einblicke",{"href":185,"dataGaLocation":46,"dataGaName":186},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":188,"items":189},"GitLab für",[190,195,200],{"text":191,"config":192},"Enterprise",{"href":193,"dataGaLocation":46,"dataGaName":194},"/de-de/enterprise/","enterprise",{"text":196,"config":197},"Kleinunternehmen",{"href":198,"dataGaLocation":46,"dataGaName":199},"/de-de/small-business/","small business",{"text":201,"config":202},"den öffentlichen Sektor",{"href":203,"dataGaLocation":46,"dataGaName":204},"/de-de/solutions/public-sector/","public sector",{"text":206,"config":207},"Preise",{"href":208,"dataGaName":209,"dataGaLocation":46,"dataNavLevelOne":209},"/de-de/pricing/","pricing",{"text":211,"config":212,"link":214,"lists":218,"feature":301},"Ressourcen",{"dataNavLevelOne":213},"resources",{"text":215,"config":216},"Alle Ressourcen anzeigen",{"href":217,"dataGaName":213,"dataGaLocation":46},"/de-de/resources/",[219,251,273],{"title":220,"items":221},"Erste Schritte",[222,227,232,237,242,247],{"text":223,"config":224},"Installieren",{"href":225,"dataGaName":226,"dataGaLocation":46},"/de-de/install/","install",{"text":228,"config":229},"Kurzanleitungen",{"href":230,"dataGaName":231,"dataGaLocation":46},"/de-de/get-started/","quick setup checklists",{"text":233,"config":234},"Lernen",{"href":235,"dataGaLocation":46,"dataGaName":236},"https://university.gitlab.com/","learn",{"text":238,"config":239},"Produktdokumentation",{"href":240,"dataGaName":241,"dataGaLocation":46},"https://docs.gitlab.com/","product documentation",{"text":243,"config":244},"Best-Practice-Videos",{"href":245,"dataGaName":246,"dataGaLocation":46},"/de-de/getting-started-videos/","best practice videos",{"text":248,"config":249},"Integrationen",{"href":250,"dataGaName":23,"dataGaLocation":46},"/de-de/integrations/",{"title":252,"items":253},"Entdecken",[254,259,263,268],{"text":255,"config":256},"Kundenerfolge",{"href":257,"dataGaName":258,"dataGaLocation":46},"/de-de/customers/","customer success stories",{"text":260,"config":261},"Blog",{"href":262,"dataGaName":5,"dataGaLocation":46},"/de-de/blog/",{"text":264,"config":265},"Remote",{"href":266,"dataGaName":267,"dataGaLocation":46},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":269,"config":270},"TeamOps",{"href":271,"dataGaName":272,"dataGaLocation":46},"/de-de/teamops/","teamops",{"title":274,"items":275},"Vernetzen",[276,281,286,291,296],{"text":277,"config":278},"GitLab-Services",{"href":279,"dataGaName":280,"dataGaLocation":46},"/de-de/services/","services",{"text":282,"config":283},"Community",{"href":284,"dataGaName":285,"dataGaLocation":46},"/community/","community",{"text":287,"config":288},"Forum",{"href":289,"dataGaName":290,"dataGaLocation":46},"https://forum.gitlab.com/","forum",{"text":292,"config":293},"Veranstaltungen",{"href":294,"dataGaName":295,"dataGaLocation":46},"/events/","events",{"text":297,"config":298},"Partner",{"href":299,"dataGaName":300,"dataGaLocation":46},"/de-de/partners/","partners",{"backgroundColor":302,"textColor":303,"text":304,"image":305,"link":309},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":306,"config":307},"the source promo card",{"src":308},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":310,"config":311},"Lies die News",{"href":312,"dataGaName":313,"dataGaLocation":46},"/de-de/the-source/","the source",{"text":315,"config":316,"lists":318},"Unternehmen",{"dataNavLevelOne":317},"company",[319],{"items":320},[321,326,332,334,339,344,349,354,359,364,369],{"text":322,"config":323},"Über",{"href":324,"dataGaName":325,"dataGaLocation":46},"/de-de/company/","about",{"text":327,"config":328,"footerGa":331},"Karriere",{"href":329,"dataGaName":330,"dataGaLocation":46},"/jobs/","jobs",{"dataGaName":330},{"text":292,"config":333},{"href":294,"dataGaName":295,"dataGaLocation":46},{"text":335,"config":336},"Geschäftsführung",{"href":337,"dataGaName":338,"dataGaLocation":46},"/company/team/e-group/","leadership",{"text":340,"config":341},"Team",{"href":342,"dataGaName":343,"dataGaLocation":46},"/company/team/","team",{"text":345,"config":346},"Handbuch",{"href":347,"dataGaName":348,"dataGaLocation":46},"https://handbook.gitlab.com/","handbook",{"text":350,"config":351},"Investor Relations",{"href":352,"dataGaName":353,"dataGaLocation":46},"https://ir.gitlab.com/","investor relations",{"text":355,"config":356},"Trust Center",{"href":357,"dataGaName":358,"dataGaLocation":46},"/de-de/security/","trust center",{"text":360,"config":361},"AI Transparency Center",{"href":362,"dataGaName":363,"dataGaLocation":46},"/de-de/ai-transparency-center/","ai transparency center",{"text":365,"config":366},"Newsletter",{"href":367,"dataGaName":368,"dataGaLocation":46},"/company/contact/","newsletter",{"text":370,"config":371},"Presse",{"href":372,"dataGaName":373,"dataGaLocation":46},"/press/","press",{"text":375,"config":376,"lists":377},"Kontakt",{"dataNavLevelOne":317},[378],{"items":379},[380,383,388],{"text":53,"config":381},{"href":55,"dataGaName":382,"dataGaLocation":46},"talk to sales",{"text":384,"config":385},"Support",{"href":386,"dataGaName":387,"dataGaLocation":46},"/support/","get help",{"text":389,"config":390},"Kundenportal",{"href":391,"dataGaName":392,"dataGaLocation":46},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":394,"login":395,"suggestions":402},"Schließen",{"text":396,"link":397},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":398,"config":399},"gitlab.com",{"href":60,"dataGaName":400,"dataGaLocation":401},"search login","search",{"text":403,"default":404},"Vorschläge",[405,408,413,415,420,425],{"text":75,"config":406},{"href":80,"dataGaName":407,"dataGaLocation":401},"GitLab Duo (AI)",{"text":409,"config":410},"Code Suggestions (KI)",{"href":411,"dataGaName":412,"dataGaLocation":401},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":127,"config":414},{"href":129,"dataGaName":127,"dataGaLocation":401},{"text":416,"config":417},"GitLab auf AWS",{"href":418,"dataGaName":419,"dataGaLocation":401},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":421,"config":422},"GitLab auf Google Cloud",{"href":423,"dataGaName":424,"dataGaLocation":401},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":426,"config":427},"Warum GitLab?",{"href":88,"dataGaName":428,"dataGaLocation":401},"Why GitLab?",{"freeTrial":430,"mobileIcon":435,"desktopIcon":440},{"text":431,"config":432},"Kostenlos testen",{"href":433,"dataGaName":51,"dataGaLocation":434},"https://gitlab.com/-/trials/new/","nav",{"altText":436,"config":437},"GitLab-Symbol",{"src":438,"dataGaName":439,"dataGaLocation":434},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":436,"config":441},{"src":442,"dataGaName":439,"dataGaLocation":434},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":444,"mobileIcon":448,"desktopIcon":450},{"text":445,"config":446},"Erfahre mehr über GitLab Duo",{"href":80,"dataGaName":447,"dataGaLocation":434},"gitlab duo",{"altText":436,"config":449},{"src":438,"dataGaName":439,"dataGaLocation":434},{"altText":436,"config":451},{"src":442,"dataGaName":439,"dataGaLocation":434},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":457,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"title":458,"button":459,"config":464,"_id":466,"_type":32,"_source":34,"_file":467,"_stem":468,"_extension":37},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":460,"config":461},"Beta testen",{"href":462,"dataGaName":463,"dataGaLocation":46},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":465},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":470,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":471,"_id":674,"_type":32,"title":675,"_source":34,"_file":676,"_stem":677,"_extension":37},"/shared/de-de/main-footer",{"text":472,"source":473,"edit":479,"contribute":484,"config":489,"items":494,"minimal":666},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":474,"config":475},"Quelltext der Seite anzeigen",{"href":476,"dataGaName":477,"dataGaLocation":478},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":480,"config":481},"Diese Seite bearbeiten",{"href":482,"dataGaName":483,"dataGaLocation":478},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":485,"config":486},"Beteilige dich",{"href":487,"dataGaName":488,"dataGaLocation":478},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":490,"facebook":491,"youtube":492,"linkedin":493},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[495,518,573,602,636],{"title":64,"links":496,"subMenu":501},[497],{"text":498,"config":499},"DevSecOps-Plattform",{"href":73,"dataGaName":500,"dataGaLocation":478},"devsecops platform",[502],{"title":206,"links":503},[504,508,513],{"text":505,"config":506},"Tarife anzeigen",{"href":208,"dataGaName":507,"dataGaLocation":478},"view plans",{"text":509,"config":510},"Vorteile von Premium",{"href":511,"dataGaName":512,"dataGaLocation":478},"/de-de/pricing/premium/","why premium",{"text":514,"config":515},"Vorteile von Ultimate",{"href":516,"dataGaName":517,"dataGaLocation":478},"/de-de/pricing/ultimate/","why ultimate",{"title":519,"links":520},"Lösungen",[521,526,529,531,536,541,545,548,551,556,558,560,563,568],{"text":522,"config":523},"Digitale Transformation",{"href":524,"dataGaName":525,"dataGaLocation":478},"/de-de/topics/digital-transformation/","digital transformation",{"text":527,"config":528},"Sicherheit und Compliance",{"href":148,"dataGaName":155,"dataGaLocation":478},{"text":140,"config":530},{"href":123,"dataGaName":124,"dataGaLocation":478},{"text":532,"config":533},"Agile Entwicklung",{"href":534,"dataGaName":535,"dataGaLocation":478},"/de-de/solutions/agile-delivery/","agile delivery",{"text":537,"config":538},"Cloud-Transformation",{"href":539,"dataGaName":540,"dataGaLocation":478},"/de-de/topics/cloud-native/","cloud transformation",{"text":542,"config":543},"SCM",{"href":137,"dataGaName":544,"dataGaLocation":478},"source code management",{"text":127,"config":546},{"href":129,"dataGaName":547,"dataGaLocation":478},"continuous integration & delivery",{"text":178,"config":549},{"href":180,"dataGaName":550,"dataGaLocation":478},"value stream management",{"text":552,"config":553},"GitOps",{"href":554,"dataGaName":555,"dataGaLocation":478},"/de-de/solutions/gitops/","gitops",{"text":191,"config":557},{"href":193,"dataGaName":194,"dataGaLocation":478},{"text":196,"config":559},{"href":198,"dataGaName":199,"dataGaLocation":478},{"text":561,"config":562},"Öffentlicher Sektor",{"href":203,"dataGaName":204,"dataGaLocation":478},{"text":564,"config":565},"Bildungswesen",{"href":566,"dataGaName":567,"dataGaLocation":478},"/de-de/solutions/education/","education",{"text":569,"config":570},"Finanzdienstleistungen",{"href":571,"dataGaName":572,"dataGaLocation":478},"/de-de/solutions/finance/","financial services",{"title":211,"links":574},[575,577,579,581,584,586,588,590,592,594,596,598,600],{"text":223,"config":576},{"href":225,"dataGaName":226,"dataGaLocation":478},{"text":228,"config":578},{"href":230,"dataGaName":231,"dataGaLocation":478},{"text":233,"config":580},{"href":235,"dataGaName":236,"dataGaLocation":478},{"text":238,"config":582},{"href":240,"dataGaName":583,"dataGaLocation":478},"docs",{"text":260,"config":585},{"href":262,"dataGaName":5,"dataGaLocation":478},{"text":255,"config":587},{"href":257,"dataGaName":258,"dataGaLocation":478},{"text":264,"config":589},{"href":266,"dataGaName":267,"dataGaLocation":478},{"text":277,"config":591},{"href":279,"dataGaName":280,"dataGaLocation":478},{"text":269,"config":593},{"href":271,"dataGaName":272,"dataGaLocation":478},{"text":282,"config":595},{"href":284,"dataGaName":285,"dataGaLocation":478},{"text":287,"config":597},{"href":289,"dataGaName":290,"dataGaLocation":478},{"text":292,"config":599},{"href":294,"dataGaName":295,"dataGaLocation":478},{"text":297,"config":601},{"href":299,"dataGaName":300,"dataGaLocation":478},{"title":315,"links":603},[604,606,608,610,612,614,616,620,625,627,629,631],{"text":322,"config":605},{"href":324,"dataGaName":317,"dataGaLocation":478},{"text":327,"config":607},{"href":329,"dataGaName":330,"dataGaLocation":478},{"text":335,"config":609},{"href":337,"dataGaName":338,"dataGaLocation":478},{"text":340,"config":611},{"href":342,"dataGaName":343,"dataGaLocation":478},{"text":345,"config":613},{"href":347,"dataGaName":348,"dataGaLocation":478},{"text":350,"config":615},{"href":352,"dataGaName":353,"dataGaLocation":478},{"text":617,"config":618},"Sustainability",{"href":619,"dataGaName":617,"dataGaLocation":478},"/sustainability/",{"text":621,"config":622},"Vielfalt, Inklusion und Zugehörigkeit",{"href":623,"dataGaName":624,"dataGaLocation":478},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":355,"config":626},{"href":357,"dataGaName":358,"dataGaLocation":478},{"text":365,"config":628},{"href":367,"dataGaName":368,"dataGaLocation":478},{"text":370,"config":630},{"href":372,"dataGaName":373,"dataGaLocation":478},{"text":632,"config":633},"Transparenzerklärung zu moderner Sklaverei",{"href":634,"dataGaName":635,"dataGaLocation":478},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":637,"links":638},"Nimm Kontakt auf",[639,642,644,646,651,656,661],{"text":640,"config":641},"Sprich mit einem Experten/einer Expertin",{"href":55,"dataGaName":56,"dataGaLocation":478},{"text":384,"config":643},{"href":386,"dataGaName":387,"dataGaLocation":478},{"text":389,"config":645},{"href":391,"dataGaName":392,"dataGaLocation":478},{"text":647,"config":648},"Status",{"href":649,"dataGaName":650,"dataGaLocation":478},"https://status.gitlab.com/","status",{"text":652,"config":653},"Nutzungsbedingungen",{"href":654,"dataGaName":655,"dataGaLocation":478},"/terms/","terms of use",{"text":657,"config":658},"Datenschutzerklärung",{"href":659,"dataGaName":660,"dataGaLocation":478},"/de-de/privacy/","privacy statement",{"text":662,"config":663},"Cookie-Einstellungen",{"dataGaName":664,"dataGaLocation":478,"id":665,"isOneTrustButton":109},"cookie preferences","ot-sdk-btn",{"items":667},[668,670,672],{"text":652,"config":669},{"href":654,"dataGaName":655,"dataGaLocation":478},{"text":657,"config":671},{"href":659,"dataGaName":660,"dataGaLocation":478},{"text":662,"config":673},{"dataGaName":664,"dataGaLocation":478,"id":665,"isOneTrustButton":109},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":679,"content":680,"config":683,"_id":31,"_type":32,"title":33,"_source":34,"_file":35,"_stem":36,"_extension":37},{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},{"title":9,"description":10,"authors":681,"heroImage":11,"date":19,"body":20,"category":21,"tags":682,"updatedDate":27},[18],[23,24,25,26],{"slug":29,"featured":6,"template":30},[685,698,709,720,731,742,753,764,774,784,795,806,816,827,838,848,858,868,878,889,899,909,919,930,941,951,962,973,983,994,1004,1015,1026,1037,1048,1058,1069,1080,1090,1101,1111,1122,1133,1143,1153,1164,1174,1184,1194,1205,1216,1227,1238,1248,1259,1270,1281,1292,1302,1313,1325,1336,1347,1357,1369,1380,1390,1401,1411,1422,1432,1443,1454,1464,1474,1484,1495,1505,1515,1525,1535,1546,1556,1567,1577,1588,1598,1608,1618,1629,1640,1651,1662,1673,1685,1695,1706,1716,1727,1738,1749,1760,1770,1781,1792,1803,1814,1824,1835,1846,1857,1867,1880,1890,1901,1912,1923,1933,1944,1955,1966,1976,1986,1996,2006,2017,2027,2037,2048,2058,2069,2079,2090,2101,2111,2122,2132,2142,2152,2163,2173,2183,2194,2205,2215,2226,2237,2248,2258,2271,2282,2292,2304,2316,2326,2336,2347,2357,2368,2380,2391,2402,2413,2425,2436,2446,2456,2467,2477,2487,2498,2509,2519,2530,2541,2551,2561,2572,2583,2593,2604,2614,2625,2636,2647,2657,2667,2678,2689,2699,2709,2720,2732,2742,2752,2762,2773,2784,2794,2804,2814,2824,2834,2845,2856,2866,2877,2887,2897,2907,2917,2927,2938,2948,2958,2969,2979,2989,3000,3011,3021,3033,3043,3053,3065,3076,3087,3097,3108,3119,3130,3140,3152,3163,3173,3184,3195,3206,3217,3228,3239,3250,3260,3271,3282,3293,3303,3313,3324,3334,3344,3355,3366,3379,3390,3401,3411,3422,3434,3445,3456,3467,3477,3487,3498,3508,3519,3530,3541,3551,3561,3571,3581,3592,3603,3614,3625,3637,3648,3660,3671,3681,3691,3703,3713,3724,3734,3745,3755,3765,3776,3788,3798,3808,3818,3829,3839,3850,3860,3870,3881,3892,3903,3915,3926,3936,3947,3958,3968,3978,3989,4000,4011,4022,4032,4043,4054,4065,4075,4086,4097,4107,4118,4129,4140,4150,4160,4171,4182,4192,4203,4214,4225,4235,4245,4256,4267,4278,4289,4300,4310,4321,4332,4342,4352,4362,4374,4386,4396,4408,4418,4429,4440,4451,4462,4475,4485,4496,4507,4517,4527,4537,4548,4558,4569,4580,4590,4601,4611,4622,4633,4644,4655,4666,4676,4686,4697,4708,4718,4728,4738,4749,4760,4770,4780,4790,4800,4811,4821,4831,4842,4852,4863,4873,4884,4895,4905,4915,4926,4936,4946,4957,4968,4979,4990,5000,5012,5023,5034,5044,5054,5064,5075,5086,5097,5108,5118,5129,5140,5150,5161,5173,5183,5193,5203,5214,5225,5236,5246,5256,5267,5278,5288,5300,5310,5320,5331,5341,5352,5364,5375,5385,5396,5407,5417,5428,5439,5451,5461,5471,5482,5492,5503,5513,5524,5534,5544,5555,5565,5575,5585,5595,5606,5616,5627,5638,5648,5658,5669,5679,5689,5699,5709,5720,5731,5743,5754,5765,5777,5789,5800,5811,5821,5832,5842,5852,5863,5874,5885,5895,5905,5915,5925,5935,5946,5958,5969,5981,5992,6002,6012,6023,6033,6043,6053,6063,6073,6083,6094,6104,6114,6125,6135,6145,6156,6167,6177,6189,6200,6210,6222,6233,6243,6254,6265,6275,6285,6295,6307,6317,6328,6339,6350,6361,6371,6381,6392,6404,6414,6424,6435,6445,6456,6466,6478,6489,6499,6509,6520,6532,6542,6555,6565,6577,6588,6598,6608,6619,6629,6640,6651,6662,6673,6684,6695,6706,6717,6728,6739,6750,6761,6772,6783,6794,6804,6817,6827,6838,6848,6859,6869,6879,6890,6901,6912,6922,6932,6943,6953,6964,6975,6987,6998,7008,7019,7030,7040,7050,7060,7070,7080,7091,7101,7112,7122,7133,7148,7159,7169,7180,7191,7202,7213,7224,7234,7245,7256,7267,7277,7288,7298,7308,7318,7328,7338,7349,7361,7371,7382,7393,7405,7415,7426,7436,7448,7459,7469,7479,7490,7501,7511,7522,7532,7542,7553,7564,7575,7586,7596,7607,7618,7628,7638,7648,7659,7670,7680,7690,7701,7712,7722,7732,7742,7753,7763,7774,7785,7796,7806,7816,7826,7836,7847,7858,7868,7878,7888,7898,7909],{"_path":686,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":688,"config":693,"_id":695,"_type":32,"title":689,"_source":34,"_file":696,"_stem":697,"_extension":37},"/en-us/blog/authors/aakriti-gupta","authors",{"name":689,"config":690},"Aakriti Gupta",{"headshot":691,"ctfId":692},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681960/Blog/Author%20Headshots/aakriti.jpg","aakritigupta",{"template":694},"BlogAuthor","content:en-us:blog:authors:aakriti-gupta.yml","en-us/blog/authors/aakriti-gupta.yml","en-us/blog/authors/aakriti-gupta",{"_path":699,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":700,"config":704,"_id":705,"_type":32,"title":706,"_source":34,"_file":707,"_stem":708,"_extension":37},"/en-us/blog/authors/aaron-peters-member-good-docs-project",{"name":701,"config":702},"Aaron Peters, Member, Good Docs Project",{"headshot":7,"ctfId":703},"7KZoxZ7kn5c5DAvuDP6wtx",{"template":694},"content:en-us:blog:authors:aaron-peters-member-good-docs-project.yml","Aaron Peters Member Good Docs Project","en-us/blog/authors/aaron-peters-member-good-docs-project.yml","en-us/blog/authors/aaron-peters-member-good-docs-project",{"_path":710,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":711,"config":716,"_id":717,"_type":32,"title":712,"_source":34,"_file":718,"_stem":719,"_extension":37},"/en-us/blog/authors/aathira-nair",{"name":712,"config":713},"Aathira Nair",{"headshot":714,"ctfId":715},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663871/Blog/Author%20Headshots/anair5-headshot.jpg","anair",{"template":694},"content:en-us:blog:authors:aathira-nair.yml","en-us/blog/authors/aathira-nair.yml","en-us/blog/authors/aathira-nair",{"_path":721,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":722,"config":727,"_id":728,"_type":32,"title":723,"_source":34,"_file":729,"_stem":730,"_extension":37},"/en-us/blog/authors/abdulkader-benchi",{"name":723,"config":724},"Abdulkader Benchi",{"headshot":725,"ctfId":726},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Abdulkader-Benchi",{"template":694},"content:en-us:blog:authors:abdulkader-benchi.yml","en-us/blog/authors/abdulkader-benchi.yml","en-us/blog/authors/abdulkader-benchi",{"_path":732,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":733,"config":738,"_id":739,"_type":32,"title":734,"_source":34,"_file":740,"_stem":741,"_extension":37},"/en-us/blog/authors/abubakar-siddiq-ango",{"name":734,"config":735},"Abubakar Siddiq Ango",{"headshot":736,"ctfId":737},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660104/Blog/Author%20Headshots/abuango-headshot.jpg","abuango",{"template":694},"content:en-us:blog:authors:abubakar-siddiq-ango.yml","en-us/blog/authors/abubakar-siddiq-ango.yml","en-us/blog/authors/abubakar-siddiq-ango",{"_path":743,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":744,"config":749,"_id":750,"_type":32,"title":745,"_source":34,"_file":751,"_stem":752,"_extension":37},"/en-us/blog/authors/achilleas-pipinellis",{"name":745,"config":746},"Achilleas Pipinellis",{"headshot":747,"ctfId":748},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671703/Blog/Author%20Headshots/axil-headshot.jpg","Achilleas-Pipinellis",{"template":694},"content:en-us:blog:authors:achilleas-pipinellis.yml","en-us/blog/authors/achilleas-pipinellis.yml","en-us/blog/authors/achilleas-pipinellis",{"_path":754,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":755,"config":759,"_id":760,"_type":32,"title":761,"_source":34,"_file":762,"_stem":763,"_extension":37},"/en-us/blog/authors/adfinis-sygroup",{"name":756,"config":757},"Adfinis SyGroup",{"headshot":725,"ctfId":758},"Adfinis-SyGroup",{"template":694},"content:en-us:blog:authors:adfinis-sygroup.yml","Adfinis Sygroup","en-us/blog/authors/adfinis-sygroup.yml","en-us/blog/authors/adfinis-sygroup",{"_path":765,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":766,"config":770,"_id":771,"_type":32,"title":767,"_source":34,"_file":772,"_stem":773,"_extension":37},"/en-us/blog/authors/ahmet-kizilay",{"name":767,"config":768},"Ahmet Kizilay",{"headshot":725,"ctfId":769},"Ahmet-Kizilay",{"template":694},"content:en-us:blog:authors:ahmet-kizilay.yml","en-us/blog/authors/ahmet-kizilay.yml","en-us/blog/authors/ahmet-kizilay",{"_path":775,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":776,"config":780,"_id":781,"_type":32,"title":777,"_source":34,"_file":782,"_stem":783,"_extension":37},"/en-us/blog/authors/akashdeep-dhar",{"name":777,"config":778},"Akashdeep Dhar",{"headshot":7,"ctfId":779},"t0xic0der",{"template":694},"content:en-us:blog:authors:akashdeep-dhar.yml","en-us/blog/authors/akashdeep-dhar.yml","en-us/blog/authors/akashdeep-dhar",{"_path":785,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":786,"config":791,"_id":792,"_type":32,"title":787,"_source":34,"_file":793,"_stem":794,"_extension":37},"/en-us/blog/authors/alana-bellucci",{"name":787,"config":788},"Alana Bellucci",{"headshot":789,"ctfId":790},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664907/Blog/Author%20Headshots/abellucci-headshot.jpg","abellucci",{"template":694},"content:en-us:blog:authors:alana-bellucci.yml","en-us/blog/authors/alana-bellucci.yml","en-us/blog/authors/alana-bellucci",{"_path":796,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":797,"config":802,"_id":803,"_type":32,"title":798,"_source":34,"_file":804,"_stem":805,"_extension":37},"/en-us/blog/authors/alex-fracazo",{"name":798,"config":799},"Alex Fracazo",{"headshot":800,"ctfId":801},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663572/Blog/Author%20Headshots/Alex_Fracazo_headshot.png","1fd3avORyzEvt4jtKpkT2k",{"template":694},"content:en-us:blog:authors:alex-fracazo.yml","en-us/blog/authors/alex-fracazo.yml","en-us/blog/authors/alex-fracazo",{"_path":807,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":808,"config":812,"_id":813,"_type":32,"title":809,"_source":34,"_file":814,"_stem":815,"_extension":37},"/en-us/blog/authors/alex-groleau",{"name":809,"config":810},"Alex Groleau",{"headshot":725,"ctfId":811},"3VVHytQSHu9ehZgsUEJ3qq",{"template":694},"content:en-us:blog:authors:alex-groleau.yml","en-us/blog/authors/alex-groleau.yml","en-us/blog/authors/alex-groleau",{"_path":817,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":818,"config":823,"_id":824,"_type":32,"title":819,"_source":34,"_file":825,"_stem":826,"_extension":37},"/en-us/blog/authors/alex-mark",{"name":819,"config":820},"Alex Mark",{"headshot":821,"ctfId":822},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755709078/j3vuvongn6hbucxwaufz.png","alexmark",{"template":694},"content:en-us:blog:authors:alex-mark.yml","en-us/blog/authors/alex-mark.yml","en-us/blog/authors/alex-mark",{"_path":828,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":829,"config":834,"_id":835,"_type":32,"title":830,"_source":34,"_file":836,"_stem":837,"_extension":37},"/en-us/blog/authors/alex-martin",{"name":830,"config":831},"Alex Martin",{"headshot":832,"ctfId":833},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666415/Blog/Author%20Headshots/alex_martin_headshot.png","4vZLX2E8BoR3LCNoYdooCY",{"template":694},"content:en-us:blog:authors:alex-martin.yml","en-us/blog/authors/alex-martin.yml","en-us/blog/authors/alex-martin",{"_path":839,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":840,"config":844,"_id":845,"_type":32,"title":841,"_source":34,"_file":846,"_stem":847,"_extension":37},"/en-us/blog/authors/alexander-dietrich",{"name":841,"config":842},"Alexander Dietrich",{"headshot":725,"ctfId":843},"2CzeEOPVjjGKpdblIm0JfO",{"template":694},"content:en-us:blog:authors:alexander-dietrich.yml","en-us/blog/authors/alexander-dietrich.yml","en-us/blog/authors/alexander-dietrich",{"_path":849,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":850,"config":854,"_id":855,"_type":32,"title":851,"_source":34,"_file":856,"_stem":857,"_extension":37},"/en-us/blog/authors/alexander-malaev",{"name":851,"config":852},"Alexander Malaev",{"headshot":725,"ctfId":853},"Alexander-Malaev",{"template":694},"content:en-us:blog:authors:alexander-malaev.yml","en-us/blog/authors/alexander-malaev.yml","en-us/blog/authors/alexander-malaev",{"_path":859,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":860,"config":864,"_id":865,"_type":32,"title":861,"_source":34,"_file":866,"_stem":867,"_extension":37},"/en-us/blog/authors/alexander-pereverzevs",{"name":861,"config":862},"Alexander Pereverzevs",{"headshot":7,"ctfId":863},"lokalise",{"template":694},"content:en-us:blog:authors:alexander-pereverzevs.yml","en-us/blog/authors/alexander-pereverzevs.yml","en-us/blog/authors/alexander-pereverzevs",{"_path":869,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":870,"config":874,"_id":875,"_type":32,"title":871,"_source":34,"_file":876,"_stem":877,"_extension":37},"/en-us/blog/authors/alexis-ginsberg",{"name":871,"config":872},"Alexis Ginsberg",{"headshot":725,"ctfId":873},"lmDIchpcDx48jKuke2B4l",{"template":694},"content:en-us:blog:authors:alexis-ginsberg.yml","en-us/blog/authors/alexis-ginsberg.yml","en-us/blog/authors/alexis-ginsberg",{"_path":879,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":880,"config":885,"_id":886,"_type":32,"title":881,"_source":34,"_file":887,"_stem":888,"_extension":37},"/en-us/blog/authors/allie-holland",{"name":881,"config":882},"Allie Holland",{"headshot":883,"ctfId":884},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664869/Blog/Author%20Headshots/allie_headshot.png","4Sc66Y8dwHEHwBNuJSh4Mv",{"template":694},"content:en-us:blog:authors:allie-holland.yml","en-us/blog/authors/allie-holland.yml","en-us/blog/authors/allie-holland",{"_path":890,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":891,"config":895,"_id":896,"_type":32,"title":892,"_source":34,"_file":897,"_stem":898,"_extension":37},"/en-us/blog/authors/allison-whilden",{"name":892,"config":893},"Allison Whilden",{"headshot":725,"ctfId":894},"Allison-Whilden",{"template":694},"content:en-us:blog:authors:allison-whilden.yml","en-us/blog/authors/allison-whilden.yml","en-us/blog/authors/allison-whilden",{"_path":900,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":901,"config":905,"_id":906,"_type":32,"title":902,"_source":34,"_file":907,"_stem":908,"_extension":37},"/en-us/blog/authors/alyssa-rock",{"name":902,"config":903},"Alyssa Rock",{"headshot":725,"ctfId":904},"4T2hddEfeK0Kp1zF8Ncvej",{"template":694},"content:en-us:blog:authors:alyssa-rock.yml","en-us/blog/authors/alyssa-rock.yml","en-us/blog/authors/alyssa-rock",{"_path":910,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":911,"config":915,"_id":916,"_type":32,"title":912,"_source":34,"_file":917,"_stem":918,"_extension":37},"/en-us/blog/authors/amanda-folson",{"name":912,"config":913},"Amanda Folson",{"headshot":725,"ctfId":914},"Amanda-Folson",{"template":694},"content:en-us:blog:authors:amanda-folson.yml","en-us/blog/authors/amanda-folson.yml","en-us/blog/authors/amanda-folson",{"_path":920,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":921,"config":926,"_id":927,"_type":32,"title":922,"_source":34,"_file":928,"_stem":929,"_extension":37},"/en-us/blog/authors/amanda-rueda",{"name":922,"config":923},"Amanda Rueda",{"headshot":924,"ctfId":925},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660008/Blog/Author%20Headshots/amanda_rueda_headshot.png","73IHSOcUmhlsh9XDSEiyjs",{"template":694},"content:en-us:blog:authors:amanda-rueda.yml","en-us/blog/authors/amanda-rueda.yml","en-us/blog/authors/amanda-rueda",{"_path":931,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":932,"config":937,"_id":938,"_type":32,"title":933,"_source":34,"_file":939,"_stem":940,"_extension":37},"/en-us/blog/authors/amar-patel",{"name":933,"config":934},"Amar Patel",{"headshot":935,"ctfId":936},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663805/Blog/Author%20Headshots/amar_patel_headshot.png","1EUBoP8mmMLhdha2tRo0vB",{"template":694},"content:en-us:blog:authors:amar-patel.yml","en-us/blog/authors/amar-patel.yml","en-us/blog/authors/amar-patel",{"_path":942,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":943,"config":947,"_id":948,"_type":32,"title":944,"_source":34,"_file":949,"_stem":950,"_extension":37},"/en-us/blog/authors/amara-nwaigwe",{"name":944,"config":945},"Amara Nwaigwe",{"headshot":725,"ctfId":946},"Amara-Nwaigwe",{"template":694},"content:en-us:blog:authors:amara-nwaigwe.yml","en-us/blog/authors/amara-nwaigwe.yml","en-us/blog/authors/amara-nwaigwe",{"_path":952,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":953,"config":958,"_id":959,"_type":32,"title":954,"_source":34,"_file":960,"_stem":961,"_extension":37},"/en-us/blog/authors/amelia-bauerly",{"name":954,"config":955},"Amelia Bauerly",{"headshot":956,"ctfId":957},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670746/Blog/Author%20Headshots/ameliabauerly-headshot.jpg","ameliabauerly",{"template":694},"content:en-us:blog:authors:amelia-bauerly.yml","en-us/blog/authors/amelia-bauerly.yml","en-us/blog/authors/amelia-bauerly",{"_path":963,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":964,"config":969,"_id":970,"_type":32,"title":965,"_source":34,"_file":971,"_stem":972,"_extension":37},"/en-us/blog/authors/ameya-darshan",{"name":965,"config":966},"Ameya Darshan",{"headshot":967,"ctfId":968},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667342/Blog/Author%20Headshots/ameya_darshan_headshot.png","79paMp2QSqRdFtZznJ6uNr",{"template":694},"content:en-us:blog:authors:ameya-darshan.yml","en-us/blog/authors/ameya-darshan.yml","en-us/blog/authors/ameya-darshan",{"_path":974,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":975,"config":979,"_id":980,"_type":32,"title":976,"_source":34,"_file":981,"_stem":982,"_extension":37},"/en-us/blog/authors/andrea-borga",{"name":976,"config":977},"Andrea Borga",{"headshot":725,"ctfId":978},"6dPpfov6kpNcMdmyHyhKcN",{"template":694},"content:en-us:blog:authors:andrea-borga.yml","en-us/blog/authors/andrea-borga.yml","en-us/blog/authors/andrea-borga",{"_path":984,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":985,"config":990,"_id":991,"_type":32,"title":986,"_source":34,"_file":992,"_stem":993,"_extension":37},"/en-us/blog/authors/andreas-brandl",{"name":986,"config":987},"Andreas Brandl",{"headshot":988,"ctfId":989},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683343/Blog/Author%20Headshots/abrandl-headshot.jpg","abrandl",{"template":694},"content:en-us:blog:authors:andreas-brandl.yml","en-us/blog/authors/andreas-brandl.yml","en-us/blog/authors/andreas-brandl",{"_path":995,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":996,"config":1000,"_id":1001,"_type":32,"title":997,"_source":34,"_file":1002,"_stem":1003,"_extension":37},"/en-us/blog/authors/andrew-chilton",{"name":997,"config":998},"Andrew Chilton",{"headshot":7,"ctfId":999},"chilts",{"template":694},"content:en-us:blog:authors:andrew-chilton.yml","en-us/blog/authors/andrew-chilton.yml","en-us/blog/authors/andrew-chilton",{"_path":1005,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1006,"config":1011,"_id":1012,"_type":32,"title":1007,"_source":34,"_file":1013,"_stem":1014,"_extension":37},"/en-us/blog/authors/andrew-fontaine",{"name":1007,"config":1008},"Andrew Fontaine",{"headshot":1009,"ctfId":1010},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672447/Blog/Author%20Headshots/afontaine-headshot.jpg","afontaine",{"template":694},"content:en-us:blog:authors:andrew-fontaine.yml","en-us/blog/authors/andrew-fontaine.yml","en-us/blog/authors/andrew-fontaine",{"_path":1016,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1017,"config":1022,"_id":1023,"_type":32,"title":1018,"_source":34,"_file":1024,"_stem":1025,"_extension":37},"/en-us/blog/authors/andrew-kelly",{"name":1018,"config":1019},"Andrew Kelly",{"headshot":1020,"ctfId":1021},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681953/Blog/Author%20Headshots/ankelly-headshot.jpg","ankelly",{"template":694},"content:en-us:blog:authors:andrew-kelly.yml","en-us/blog/authors/andrew-kelly.yml","en-us/blog/authors/andrew-kelly",{"_path":1027,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1028,"config":1033,"_id":1034,"_type":32,"title":1029,"_source":34,"_file":1035,"_stem":1036,"_extension":37},"/en-us/blog/authors/andrew-newdigate",{"name":1029,"config":1030},"Andrew Newdigate",{"headshot":1031,"ctfId":1032},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670199/Blog/Author%20Headshots/andrewn-headshot.jpg","andrewn",{"template":694},"content:en-us:blog:authors:andrew-newdigate.yml","en-us/blog/authors/andrew-newdigate.yml","en-us/blog/authors/andrew-newdigate",{"_path":1038,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1039,"config":1044,"_id":1045,"_type":32,"title":1040,"_source":34,"_file":1046,"_stem":1047,"_extension":37},"/en-us/blog/authors/andrew-patterson",{"name":1040,"config":1041},"Andrew Patterson",{"headshot":1042,"ctfId":1043},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669197/Blog/Author%20Headshots/andrew_patterson_headshot.png","6qJ1J2ePA6FVQaVLqx0C0d",{"template":694},"content:en-us:blog:authors:andrew-patterson.yml","en-us/blog/authors/andrew-patterson.yml","en-us/blog/authors/andrew-patterson",{"_path":1049,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1050,"config":1054,"_id":1055,"_type":32,"title":1051,"_source":34,"_file":1056,"_stem":1057,"_extension":37},"/en-us/blog/authors/andrew-taylor",{"name":1051,"config":1052},"Andrew Taylor",{"headshot":725,"ctfId":1053},"Andrew-Taylor",{"template":694},"content:en-us:blog:authors:andrew-taylor.yml","en-us/blog/authors/andrew-taylor.yml","en-us/blog/authors/andrew-taylor",{"_path":1059,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1060,"config":1065,"_id":1066,"_type":32,"title":1061,"_source":34,"_file":1067,"_stem":1068,"_extension":37},"/en-us/blog/authors/andrew-thomas",{"name":1061,"config":1062},"Andrew Thomas",{"headshot":1063,"ctfId":1064},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663944/Blog/Author%20Headshots/awthomas-headshot.jpg","awthomas",{"template":694},"content:en-us:blog:authors:andrew-thomas.yml","en-us/blog/authors/andrew-thomas.yml","en-us/blog/authors/andrew-thomas",{"_path":1070,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1071,"config":1076,"_id":1077,"_type":32,"title":1072,"_source":34,"_file":1078,"_stem":1079,"_extension":37},"/en-us/blog/authors/andy-bradfield",{"name":1072,"role":1073,"config":1074},"Andy Bradfield","Vice President, IBM Z Hybrid Cloud",{"headshot":1075},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750433790/essf1v0fbgzygctp8cuc.jpg",{"template":694},"content:en-us:blog:authors:andy-bradfield.yml","en-us/blog/authors/andy-bradfield.yml","en-us/blog/authors/andy-bradfield",{"_path":1081,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1082,"config":1086,"_id":1087,"_type":32,"title":1083,"_source":34,"_file":1088,"_stem":1089,"_extension":37},"/en-us/blog/authors/andy-rogers",{"name":1083,"config":1084},"Andy Rogers",{"headshot":725,"ctfId":1085},"Andy-Rogers",{"template":694},"content:en-us:blog:authors:andy-rogers.yml","en-us/blog/authors/andy-rogers.yml","en-us/blog/authors/andy-rogers",{"_path":1091,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1092,"config":1097,"_id":1098,"_type":32,"title":1093,"_source":34,"_file":1099,"_stem":1100,"_extension":37},"/en-us/blog/authors/andy-volpe",{"name":1093,"config":1094},"Andy Volpe",{"headshot":1095,"ctfId":1096},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669776/Blog/Author%20Headshots/andyvolpe-headshot.png","andyvolpe",{"template":694},"content:en-us:blog:authors:andy-volpe.yml","en-us/blog/authors/andy-volpe.yml","en-us/blog/authors/andy-volpe",{"_path":1102,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1103,"config":1107,"_id":1108,"_type":32,"title":1104,"_source":34,"_file":1109,"_stem":1110,"_extension":37},"/en-us/blog/authors/angelo-stavrow",{"name":1104,"config":1105},"Angelo Stavrow",{"headshot":725,"ctfId":1106},"Angelo-Stavrow",{"template":694},"content:en-us:blog:authors:angelo-stavrow.yml","en-us/blog/authors/angelo-stavrow.yml","en-us/blog/authors/angelo-stavrow",{"_path":1112,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1113,"config":1118,"_id":1119,"_type":32,"title":1114,"_source":34,"_file":1120,"_stem":1121,"_extension":37},"/en-us/blog/authors/anna-vovchenko",{"name":1114,"config":1115},"Anna Vovchenko",{"headshot":1116,"ctfId":1117},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669159/Blog/Author%20Headshots/anna_vovchenko_headshot.png","4bLGBzB5LA0jYw0y9IqCs2",{"template":694},"content:en-us:blog:authors:anna-vovchenko.yml","en-us/blog/authors/anna-vovchenko.yml","en-us/blog/authors/anna-vovchenko",{"_path":1123,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1124,"config":1129,"_id":1130,"_type":32,"title":1125,"_source":34,"_file":1131,"_stem":1132,"_extension":37},"/en-us/blog/authors/annabel-dunstone-gray",{"name":1125,"config":1126},"Annabel Dunstone Gray",{"headshot":1127,"ctfId":1128},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679009/Blog/Author%20Headshots/annabeldunstone-headshot.jpg","annabeldunstone",{"template":694},"content:en-us:blog:authors:annabel-dunstone-gray.yml","en-us/blog/authors/annabel-dunstone-gray.yml","en-us/blog/authors/annabel-dunstone-gray",{"_path":1134,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1135,"config":1139,"_id":1140,"_type":32,"title":1136,"_source":34,"_file":1141,"_stem":1142,"_extension":37},"/en-us/blog/authors/anshuman-singh",{"name":1136,"config":1137},"Anshuman Singh",{"headshot":725,"ctfId":1138},"4xzrY67JSkxp4j7hlK1DWA",{"template":694},"content:en-us:blog:authors:anshuman-singh.yml","en-us/blog/authors/anshuman-singh.yml","en-us/blog/authors/anshuman-singh",{"_path":1144,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1145,"config":1149,"_id":1150,"_type":32,"title":1146,"_source":34,"_file":1151,"_stem":1152,"_extension":37},"/en-us/blog/authors/anthony-davanzo",{"name":1146,"config":1147},"Anthony Davanzo",{"headshot":725,"ctfId":1148},"4KccrB6k5jq46xQRDOdWSb",{"template":694},"content:en-us:blog:authors:anthony-davanzo.yml","en-us/blog/authors/anthony-davanzo.yml","en-us/blog/authors/anthony-davanzo",{"_path":1154,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1155,"config":1160,"_id":1161,"_type":32,"title":1156,"_source":34,"_file":1162,"_stem":1163,"_extension":37},"/en-us/blog/authors/anton-smith",{"name":1156,"config":1157},"Anton Smith",{"headshot":1158,"ctfId":1159},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679625/Blog/Author%20Headshots/anton-headshot.png","anton",{"template":694},"content:en-us:blog:authors:anton-smith.yml","en-us/blog/authors/anton-smith.yml","en-us/blog/authors/anton-smith",{"_path":1165,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1166,"config":1170,"_id":1171,"_type":32,"title":1167,"_source":34,"_file":1172,"_stem":1173,"_extension":37},"/en-us/blog/authors/aricka-flowers",{"name":1167,"config":1168},"Aricka Flowers",{"headshot":7,"ctfId":1169},"atflowers",{"template":694},"content:en-us:blog:authors:aricka-flowers.yml","en-us/blog/authors/aricka-flowers.yml","en-us/blog/authors/aricka-flowers",{"_path":1175,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1176,"config":1180,"_id":1181,"_type":32,"title":1177,"_source":34,"_file":1182,"_stem":1183,"_extension":37},"/en-us/blog/authors/ariel-camus",{"name":1177,"config":1178},"Ariel Camus",{"headshot":7,"ctfId":1179},"arielcamus",{"template":694},"content:en-us:blog:authors:ariel-camus.yml","en-us/blog/authors/ariel-camus.yml","en-us/blog/authors/ariel-camus",{"_path":1185,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1186,"config":1190,"_id":1191,"_type":32,"title":1187,"_source":34,"_file":1192,"_stem":1193,"_extension":37},"/en-us/blog/authors/arunoda-susiripala",{"name":1187,"config":1188},"Arunoda Susiripala",{"headshot":725,"ctfId":1189},"7kQaq0xFWPi2zRW6NZIDHp",{"template":694},"content:en-us:blog:authors:arunoda-susiripala.yml","en-us/blog/authors/arunoda-susiripala.yml","en-us/blog/authors/arunoda-susiripala",{"_path":1195,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1196,"config":1200,"_id":1202,"_type":32,"title":1197,"_source":34,"_file":1203,"_stem":1204,"_extension":37},"/en-us/blog/authors/ashher-syed",{"name":1197,"config":1198},"Ashher Syed",{"headshot":1199},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753883485/jnsltidrjyzzbxlmllua.png",{"template":694,"gitlabHandle":1201},"ashhers","content:en-us:blog:authors:ashher-syed.yml","en-us/blog/authors/ashher-syed.yml","en-us/blog/authors/ashher-syed",{"_path":1206,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1207,"config":1212,"_id":1213,"_type":32,"title":1208,"_source":34,"_file":1214,"_stem":1215,"_extension":37},"/en-us/blog/authors/ashley-knobloch",{"name":1208,"config":1209},"Ashley Knobloch",{"headshot":1210,"ctfId":1211},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682879/Blog/Author%20Headshots/aknobloch-headshot.jpg","aknobloch",{"template":694},"content:en-us:blog:authors:ashley-knobloch.yml","en-us/blog/authors/ashley-knobloch.yml","en-us/blog/authors/ashley-knobloch",{"_path":1217,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1218,"config":1223,"_id":1224,"_type":32,"title":1219,"_source":34,"_file":1225,"_stem":1226,"_extension":37},"/en-us/blog/authors/ashley-kramer",{"name":1219,"config":1220},"Ashley Kramer",{"headshot":1221,"ctfId":1222},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662520/Blog/Author%20Headshots/akramer-headshot.jpg","akramer",{"template":694},"content:en-us:blog:authors:ashley-kramer.yml","en-us/blog/authors/ashley-kramer.yml","en-us/blog/authors/ashley-kramer",{"_path":1228,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1229,"config":1233,"_id":1234,"_type":32,"title":1235,"_source":34,"_file":1236,"_stem":1237,"_extension":37},"/en-us/blog/authors/ashley-mcalpin",{"name":1230,"config":1231},"Ashley McAlpin",{"headshot":725,"ctfId":1232},"Ashley-McAlpin",{"template":694},"content:en-us:blog:authors:ashley-mcalpin.yml","Ashley Mcalpin","en-us/blog/authors/ashley-mcalpin.yml","en-us/blog/authors/ashley-mcalpin",{"_path":1239,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1240,"config":1244,"_id":1245,"_type":32,"title":1241,"_source":34,"_file":1246,"_stem":1247,"_extension":37},"/en-us/blog/authors/ashley-smith",{"name":1241,"config":1242},"Ashley Smith",{"headshot":725,"ctfId":1243},"Ashley-Smith",{"template":694},"content:en-us:blog:authors:ashley-smith.yml","en-us/blog/authors/ashley-smith.yml","en-us/blog/authors/ashley-smith",{"_path":1249,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1250,"config":1254,"_id":1255,"_type":32,"title":1256,"_source":34,"_file":1257,"_stem":1258,"_extension":37},"/en-us/blog/authors/atlassian-bitbucket-github-gitlab",{"name":1251,"config":1252},"Atlassian Bitbucket, GitHub, GitLab",{"headshot":725,"ctfId":1253},"Atlassian-Bitbucket-GitHub-GitLab",{"template":694},"content:en-us:blog:authors:atlassian-bitbucket-github-gitlab.yml","Atlassian Bitbucket Github Gitlab","en-us/blog/authors/atlassian-bitbucket-github-gitlab.yml","en-us/blog/authors/atlassian-bitbucket-github-gitlab",{"_path":1260,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1261,"config":1266,"_id":1267,"_type":32,"title":1262,"_source":34,"_file":1268,"_stem":1269,"_extension":37},"/en-us/blog/authors/austin-regnery",{"name":1262,"config":1263},"Austin Regnery",{"headshot":1264,"ctfId":1265},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679497/Blog/Author%20Headshots/aregnery-headshot.jpg","aregnery",{"template":694},"content:en-us:blog:authors:austin-regnery.yml","en-us/blog/authors/austin-regnery.yml","en-us/blog/authors/austin-regnery",{"_path":1271,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1272,"config":1277,"_id":1278,"_type":32,"title":1273,"_source":34,"_file":1279,"_stem":1280,"_extension":37},"/en-us/blog/authors/ayoub-fandi",{"name":1273,"config":1274},"Ayoub Fandi",{"headshot":1275,"ctfId":1276},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664292/Blog/Author%20Headshots/ayofan-headshot.jpg","ayofan",{"template":694},"content:en-us:blog:authors:ayoub-fandi.yml","en-us/blog/authors/ayoub-fandi.yml","en-us/blog/authors/ayoub-fandi",{"_path":1282,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1283,"config":1287,"_id":1288,"_type":32,"title":1289,"_source":34,"_file":1290,"_stem":1291,"_extension":37},"/en-us/blog/authors/bahubali-bill-shetti",{"name":1284,"config":1285},"Bahubali (Bill) Shetti",{"headshot":725,"ctfId":1286},"4rFnUJeUt0JNGQwwCZSLMj",{"template":694},"content:en-us:blog:authors:bahubali-bill-shetti.yml","Bahubali Bill Shetti","en-us/blog/authors/bahubali-bill-shetti.yml","en-us/blog/authors/bahubali-bill-shetti",{"_path":1293,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1294,"config":1298,"_id":1299,"_type":32,"title":1295,"_source":34,"_file":1300,"_stem":1301,"_extension":37},"/en-us/blog/authors/baksheesh-singh-ghuman",{"name":1295,"config":1296},"Baksheesh Singh Ghuman",{"headshot":725,"ctfId":1297},"Baksheesh-Singh-Ghuman",{"template":694},"content:en-us:blog:authors:baksheesh-singh-ghuman.yml","en-us/blog/authors/baksheesh-singh-ghuman.yml","en-us/blog/authors/baksheesh-singh-ghuman",{"_path":1303,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1304,"config":1309,"_id":1310,"_type":32,"title":1305,"_source":34,"_file":1311,"_stem":1312,"_extension":37},"/en-us/blog/authors/bala-allam",{"name":1305,"config":1306},"Bala Allam",{"headshot":1307,"ctfId":1308},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663541/Blog/Author%20Headshots/bala_allam_headshot.png","2rLcMDIniW4zfuD8s0ckVt",{"template":694},"content:en-us:blog:authors:bala-allam.yml","en-us/blog/authors/bala-allam.yml","en-us/blog/authors/bala-allam",{"_path":1314,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1315,"config":1320,"_id":1321,"_type":32,"title":1322,"_source":34,"_file":1323,"_stem":1324,"_extension":37},"/en-us/blog/authors/balasankar-balu-c",{"name":1316,"config":1317},"Balasankar 'Balu' C",{"headshot":1318,"ctfId":1319},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681201/Blog/Author%20Headshots/balasankarc-headshot.jpg","balasankarc",{"template":694},"content:en-us:blog:authors:balasankar-balu-c.yml","Balasankar Balu C","en-us/blog/authors/balasankar-balu-c.yml","en-us/blog/authors/balasankar-balu-c",{"_path":1326,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1327,"config":1332,"_id":1333,"_type":32,"title":1328,"_source":34,"_file":1334,"_stem":1335,"_extension":37},"/en-us/blog/authors/bart-zhang",{"name":1328,"config":1329},"Bart Zhang",{"headshot":1330,"ctfId":1331},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664177/Blog/Author%20Headshots/bartzhang-headshot.jpg","bartzhang",{"template":694},"content:en-us:blog:authors:bart-zhang.yml","en-us/blog/authors/bart-zhang.yml","en-us/blog/authors/bart-zhang",{"_path":1337,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1338,"config":1343,"_id":1344,"_type":32,"title":1339,"_source":34,"_file":1345,"_stem":1346,"_extension":37},"/en-us/blog/authors/beatriz-barbosa",{"name":1339,"config":1340},"Beatriz Barbosa",{"headshot":1341,"ctfId":1342},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665252/Blog/Author%20Headshots/beatriz_barbosa.png","7GdHsfTvzkhnGh2qQmZF91",{"template":694},"content:en-us:blog:authors:beatriz-barbosa.yml","en-us/blog/authors/beatriz-barbosa.yml","en-us/blog/authors/beatriz-barbosa",{"_path":1348,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1349,"config":1353,"_id":1354,"_type":32,"title":1350,"_source":34,"_file":1355,"_stem":1356,"_extension":37},"/en-us/blog/authors/becka-lippert",{"name":1350,"config":1351},"Becka Lippert",{"headshot":725,"ctfId":1352},"7wX6Hbvb3AbKwa6NnClvBX",{"template":694},"content:en-us:blog:authors:becka-lippert.yml","en-us/blog/authors/becka-lippert.yml","en-us/blog/authors/becka-lippert",{"_path":1358,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1359,"config":1364,"_id":1365,"_type":32,"title":1366,"_source":34,"_file":1367,"_stem":1368,"_extension":37},"/en-us/blog/authors/ben-leduc-mills",{"name":1360,"config":1361},"Ben Leduc-Mills",{"headshot":1362,"ctfId":1363},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682380/Blog/Author%20Headshots/leducmills-headshot.png","leducmills",{"template":694},"content:en-us:blog:authors:ben-leduc-mills.yml","Ben Leduc Mills","en-us/blog/authors/ben-leduc-mills.yml","en-us/blog/authors/ben-leduc-mills",{"_path":1370,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1371,"config":1376,"_id":1377,"_type":32,"title":1372,"_source":34,"_file":1378,"_stem":1379,"_extension":37},"/en-us/blog/authors/ben-ridley",{"name":1372,"config":1373},"Ben Ridley",{"headshot":1374,"ctfId":1375},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659973/Blog/Author%20Headshots/bridley-headshot.jpg","bridley",{"template":694},"content:en-us:blog:authors:ben-ridley.yml","en-us/blog/authors/ben-ridley.yml","en-us/blog/authors/ben-ridley",{"_path":1381,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1382,"config":1386,"_id":1387,"_type":32,"title":1383,"_source":34,"_file":1388,"_stem":1389,"_extension":37},"/en-us/blog/authors/benedikt-rollik",{"name":1383,"config":1384},"Benedikt Rollik",{"headshot":725,"ctfId":1385},"Benedikt-Rollik",{"template":694},"content:en-us:blog:authors:benedikt-rollik.yml","en-us/blog/authors/benedikt-rollik.yml","en-us/blog/authors/benedikt-rollik",{"_path":1391,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1392,"config":1397,"_id":1398,"_type":32,"title":1393,"_source":34,"_file":1399,"_stem":1400,"_extension":37},"/en-us/blog/authors/benjamin-skierlak",{"name":1393,"config":1394},"Benjamin Skierlak",{"headshot":1395,"ctfId":1396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659471/Blog/Author%20Headshots/Benjamin_Skierlak_headshot.png","Kzp6pkUjPORYYMoeLFPRf",{"template":694},"content:en-us:blog:authors:benjamin-skierlak.yml","en-us/blog/authors/benjamin-skierlak.yml","en-us/blog/authors/benjamin-skierlak",{"_path":1402,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1403,"config":1407,"_id":1408,"_type":32,"title":1404,"_source":34,"_file":1409,"_stem":1410,"_extension":37},"/en-us/blog/authors/bert-van-eyck",{"name":1404,"config":1405},"Bert Van Eyck",{"headshot":7,"ctfId":1406},"bertveproximus",{"template":694},"content:en-us:blog:authors:bert-van-eyck.yml","en-us/blog/authors/bert-van-eyck.yml","en-us/blog/authors/bert-van-eyck",{"_path":1412,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1413,"config":1418,"_id":1419,"_type":32,"title":1414,"_source":34,"_file":1420,"_stem":1421,"_extension":37},"/en-us/blog/authors/betsy-bula",{"name":1414,"config":1415},"Betsy Bula",{"headshot":1416,"ctfId":1417},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679451/Blog/Author%20Headshots/bbula-headshot.jpg","bbula",{"template":694},"content:en-us:blog:authors:betsy-bula.yml","en-us/blog/authors/betsy-bula.yml","en-us/blog/authors/betsy-bula",{"_path":1423,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1424,"config":1428,"_id":1429,"_type":32,"title":1425,"_source":34,"_file":1430,"_stem":1431,"_extension":37},"/en-us/blog/authors/betsy-church",{"name":1425,"config":1426},"Betsy Church",{"headshot":7,"ctfId":1427},"bchurch",{"template":694},"content:en-us:blog:authors:betsy-church.yml","en-us/blog/authors/betsy-church.yml","en-us/blog/authors/betsy-church",{"_path":1433,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1434,"config":1439,"_id":1440,"_type":32,"title":1435,"_source":34,"_file":1441,"_stem":1442,"_extension":37},"/en-us/blog/authors/bill-staples",{"name":1435,"config":1436,"role":1438},"Bill Staples",{"headshot":1437},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750434080/glxv59lh9qftpdbsb4ph.png","CEO",{"template":694},"content:en-us:blog:authors:bill-staples.yml","en-us/blog/authors/bill-staples.yml","en-us/blog/authors/bill-staples",{"_path":1444,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1445,"config":1450,"_id":1451,"_type":32,"title":1446,"_source":34,"_file":1452,"_stem":1453,"_extension":37},"/en-us/blog/authors/bob-van-landuyt",{"name":1446,"config":1447},"Bob Van Landuyt",{"headshot":1448,"ctfId":1449},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667520/Blog/Author%20Headshots/reprazent-headshot.png","reprazent",{"template":694},"content:en-us:blog:authors:bob-van-landuyt.yml","en-us/blog/authors/bob-van-landuyt.yml","en-us/blog/authors/bob-van-landuyt",{"_path":1455,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1456,"config":1460,"_id":1461,"_type":32,"title":1457,"_source":34,"_file":1462,"_stem":1463,"_extension":37},"/en-us/blog/authors/boris-baldassari",{"name":1457,"config":1458},"Boris Baldassari",{"headshot":7,"ctfId":1459},"bbaldassari",{"template":694},"content:en-us:blog:authors:boris-baldassari.yml","en-us/blog/authors/boris-baldassari.yml","en-us/blog/authors/boris-baldassari",{"_path":1465,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1466,"config":1470,"_id":1471,"_type":32,"title":1467,"_source":34,"_file":1472,"_stem":1473,"_extension":37},"/en-us/blog/authors/borivoje-tasovac",{"name":1467,"config":1468},"Borivoje Tasovac",{"headshot":7,"ctfId":1469},"borivoje",{"template":694},"content:en-us:blog:authors:borivoje-tasovac.yml","en-us/blog/authors/borivoje-tasovac.yml","en-us/blog/authors/borivoje-tasovac",{"_path":1475,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1476,"config":1480,"_id":1481,"_type":32,"title":1477,"_source":34,"_file":1482,"_stem":1483,"_extension":37},"/en-us/blog/authors/brad-downey",{"name":1477,"config":1478},"Brad Downey",{"headshot":725,"ctfId":1479},"6b6RTu6832NFEju2zKJhbE",{"template":694},"content:en-us:blog:authors:brad-downey.yml","en-us/blog/authors/brad-downey.yml","en-us/blog/authors/brad-downey",{"_path":1485,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1486,"config":1491,"_id":1492,"_type":32,"title":1487,"_source":34,"_file":1493,"_stem":1494,"_extension":37},"/en-us/blog/authors/bradley-lee",{"name":1487,"config":1488},"Bradley Lee",{"headshot":1489,"ctfId":1490},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666491/Blog/Author%20Headshots/bradleylee-headshot.jpg","bradleylee",{"template":694},"content:en-us:blog:authors:bradley-lee.yml","en-us/blog/authors/bradley-lee.yml","en-us/blog/authors/bradley-lee",{"_path":1496,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1497,"config":1501,"_id":1502,"_type":32,"title":1498,"_source":34,"_file":1503,"_stem":1504,"_extension":37},"/en-us/blog/authors/brandon-foo",{"name":1498,"config":1499},"Brandon Foo",{"headshot":725,"ctfId":1500},"Brandon-Foo",{"template":694},"content:en-us:blog:authors:brandon-foo.yml","en-us/blog/authors/brandon-foo.yml","en-us/blog/authors/brandon-foo",{"_path":1506,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1507,"config":1511,"_id":1512,"_type":32,"title":1508,"_source":34,"_file":1513,"_stem":1514,"_extension":37},"/en-us/blog/authors/brandon-jung",{"name":1508,"config":1509},"Brandon Jung",{"headshot":725,"ctfId":1510},"Brandon-Jung",{"template":694},"content:en-us:blog:authors:brandon-jung.yml","en-us/blog/authors/brandon-jung.yml","en-us/blog/authors/brandon-jung",{"_path":1516,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1517,"config":1521,"_id":1522,"_type":32,"title":1518,"_source":34,"_file":1523,"_stem":1524,"_extension":37},"/en-us/blog/authors/brandon-lyon",{"name":1518,"config":1519},"Brandon Lyon",{"headshot":7,"ctfId":1520},"brandonlyon",{"template":694},"content:en-us:blog:authors:brandon-lyon.yml","en-us/blog/authors/brandon-lyon.yml","en-us/blog/authors/brandon-lyon",{"_path":1526,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1527,"config":1531,"_id":1532,"_type":32,"title":1528,"_source":34,"_file":1533,"_stem":1534,"_extension":37},"/en-us/blog/authors/brein-matturro",{"name":1528,"config":1529},"Brein Matturro",{"headshot":7,"ctfId":1530},"bmatturro",{"template":694},"content:en-us:blog:authors:brein-matturro.yml","en-us/blog/authors/brein-matturro.yml","en-us/blog/authors/brein-matturro",{"_path":1536,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1537,"config":1541,"_id":1542,"_type":32,"title":1543,"_source":34,"_file":1544,"_stem":1545,"_extension":37},"/en-us/blog/authors/brendan-oleary",{"name":1538,"config":1539},"Brendan O'Leary",{"headshot":7,"ctfId":1540},"brendan",{"template":694},"content:en-us:blog:authors:brendan-oleary.yml","Brendan Oleary","en-us/blog/authors/brendan-oleary.yml","en-us/blog/authors/brendan-oleary",{"_path":1547,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1548,"config":1552,"_id":1553,"_type":32,"title":1549,"_source":34,"_file":1554,"_stem":1555,"_extension":37},"/en-us/blog/authors/brendan-regan",{"name":1549,"config":1550},"Brendan Regan",{"headshot":7,"ctfId":1551},"brendanregan11",{"template":694},"content:en-us:blog:authors:brendan-regan.yml","en-us/blog/authors/brendan-regan.yml","en-us/blog/authors/brendan-regan",{"_path":1557,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1558,"config":1563,"_id":1564,"_type":32,"title":1559,"_source":34,"_file":1565,"_stem":1566,"_extension":37},"/en-us/blog/authors/brett-walker",{"name":1559,"config":1560},"Brett Walker",{"headshot":1561,"ctfId":1562},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670155/Blog/Author%20Headshots/digitalmoksha-headshot.jpg","digitalmoksha",{"template":694},"content:en-us:blog:authors:brett-walker.yml","en-us/blog/authors/brett-walker.yml","en-us/blog/authors/brett-walker",{"_path":1568,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1569,"config":1573,"_id":1574,"_type":32,"title":1570,"_source":34,"_file":1575,"_stem":1576,"_extension":37},"/en-us/blog/authors/brian-glanz",{"name":1570,"config":1571},"Brian Glanz",{"headshot":7,"ctfId":1572},"brianglanz",{"template":694},"content:en-us:blog:authors:brian-glanz.yml","en-us/blog/authors/brian-glanz.yml","en-us/blog/authors/brian-glanz",{"_path":1578,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1579,"config":1583,"_id":1584,"_type":32,"title":1585,"_source":34,"_file":1586,"_stem":1587,"_extension":37},"/en-us/blog/authors/brian-oconnell",{"name":1580,"config":1581},"Brian O'Connell",{"headshot":725,"ctfId":1582},"Brian-OConnell",{"template":694},"content:en-us:blog:authors:brian-oconnell.yml","Brian Oconnell","en-us/blog/authors/brian-oconnell.yml","en-us/blog/authors/brian-oconnell",{"_path":1589,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1590,"config":1594,"_id":1595,"_type":32,"title":1591,"_source":34,"_file":1596,"_stem":1597,"_extension":37},"/en-us/blog/authors/brian-rhea",{"name":1591,"config":1592},"Brian Rhea",{"headshot":7,"ctfId":1593},"brhea",{"template":694},"content:en-us:blog:authors:brian-rhea.yml","en-us/blog/authors/brian-rhea.yml","en-us/blog/authors/brian-rhea",{"_path":1599,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1600,"config":1604,"_id":1605,"_type":32,"title":1601,"_source":34,"_file":1606,"_stem":1607,"_extension":37},"/en-us/blog/authors/brian-wald",{"name":1601,"config":1602},"Brian Wald",{"headshot":725,"ctfId":1603},"78qOxgHKlgDY2IxMrBrgCu",{"template":694},"content:en-us:blog:authors:brian-wald.yml","en-us/blog/authors/brian-wald.yml","en-us/blog/authors/brian-wald",{"_path":1609,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1610,"config":1614,"_id":1615,"_type":32,"title":1611,"_source":34,"_file":1616,"_stem":1617,"_extension":37},"/en-us/blog/authors/brittany-rohde",{"name":1611,"config":1612},"Brittany Rohde",{"headshot":7,"ctfId":1613},"brittanyr",{"template":694},"content:en-us:blog:authors:brittany-rohde.yml","en-us/blog/authors/brittany-rohde.yml","en-us/blog/authors/brittany-rohde",{"_path":1619,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1620,"config":1625,"_id":1626,"_type":32,"title":1621,"_source":34,"_file":1627,"_stem":1628,"_extension":37},"/en-us/blog/authors/bryan-behrenshausen",{"name":1621,"config":1622},"Bryan Behrenshausen",{"headshot":1623,"ctfId":1624},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670181/Blog/Author%20Headshots/bbehr-headshot.jpg","bbehr",{"template":694},"content:en-us:blog:authors:bryan-behrenshausen.yml","en-us/blog/authors/bryan-behrenshausen.yml","en-us/blog/authors/bryan-behrenshausen",{"_path":1630,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1631,"config":1636,"_id":1637,"_type":32,"title":1632,"_source":34,"_file":1638,"_stem":1639,"_extension":37},"/en-us/blog/authors/bryan-may",{"name":1632,"config":1633},"Bryan May",{"headshot":1634,"ctfId":1635},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668135/Blog/Author%20Headshots/bryan-may-headshot.jpg","bryanmay",{"template":694},"content:en-us:blog:authors:bryan-may.yml","en-us/blog/authors/bryan-may.yml","en-us/blog/authors/bryan-may",{"_path":1641,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1642,"config":1647,"_id":1648,"_type":32,"title":1643,"_source":34,"_file":1649,"_stem":1650,"_extension":37},"/en-us/blog/authors/byron-boots",{"name":1643,"config":1644},"Byron Boots",{"headshot":1645,"ctfId":1646},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662281/Blog/Author%20Headshots/byron_boots_headshot.png","7ezFbRYF2Cu5JTBQXRp7mw",{"template":694},"content:en-us:blog:authors:byron-boots.yml","en-us/blog/authors/byron-boots.yml","en-us/blog/authors/byron-boots",{"_path":1652,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1653,"config":1658,"_id":1659,"_type":32,"title":1654,"_source":34,"_file":1660,"_stem":1661,"_extension":37},"/en-us/blog/authors/camellia-yang",{"name":1654,"config":1655},"Camellia Yang",{"headshot":1656,"ctfId":1657},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682106/Blog/Author%20Headshots/cam.png","camx",{"template":694},"content:en-us:blog:authors:camellia-yang.yml","en-us/blog/authors/camellia-yang.yml","en-us/blog/authors/camellia-yang",{"_path":1663,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1664,"config":1669,"_id":1670,"_type":32,"title":1665,"_source":34,"_file":1671,"_stem":1672,"_extension":37},"/en-us/blog/authors/cameron-swords",{"name":1665,"config":1666},"Cameron Swords",{"headshot":1667,"ctfId":1668},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667598/Blog/Author%20Headshots/cam_swords-headshot.jpg","camswords",{"template":694},"content:en-us:blog:authors:cameron-swords.yml","en-us/blog/authors/cameron-swords.yml","en-us/blog/authors/cameron-swords",{"_path":1674,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1675,"config":1681,"_id":1682,"_type":32,"title":1677,"_source":34,"_file":1683,"_stem":1684,"_extension":37},"/en-us/blog/authors/carl-myers",{"role":1676,"name":1677,"config":1678},"Manager, CI Platform team, Indeed","Carl Myers",{"headshot":1679,"ctfId":1680},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665044/Blog/Author%20Headshots/image1.jpg","7KelbQ0LsGSGf4TpT0qAlp",{"template":694},"content:en-us:blog:authors:carl-myers.yml","en-us/blog/authors/carl-myers.yml","en-us/blog/authors/carl-myers",{"_path":1686,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1687,"config":1691,"_id":1692,"_type":32,"title":1688,"_source":34,"_file":1693,"_stem":1694,"_extension":37},"/en-us/blog/authors/carol-teskey",{"name":1688,"config":1689},"Carol Teskey",{"headshot":7,"ctfId":1690},"cteskey",{"template":694},"content:en-us:blog:authors:carol-teskey.yml","en-us/blog/authors/carol-teskey.yml","en-us/blog/authors/carol-teskey",{"_path":1696,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1697,"config":1702,"_id":1703,"_type":32,"title":1698,"_source":34,"_file":1704,"_stem":1705,"_extension":37},"/en-us/blog/authors/cesar-saavedra",{"name":1698,"config":1699},"Cesar Saavedra",{"headshot":1700,"ctfId":1701},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659600/Blog/Author%20Headshots/csaavedra1-headshot.jpg","csaavedra1",{"template":694},"content:en-us:blog:authors:cesar-saavedra.yml","en-us/blog/authors/cesar-saavedra.yml","en-us/blog/authors/cesar-saavedra",{"_path":1707,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1708,"config":1712,"_id":1713,"_type":32,"title":1709,"_source":34,"_file":1714,"_stem":1715,"_extension":37},"/en-us/blog/authors/chad-malchow",{"name":1709,"config":1710},"Chad Malchow",{"headshot":725,"ctfId":1711},"Chad-Malchow",{"template":694},"content:en-us:blog:authors:chad-malchow.yml","en-us/blog/authors/chad-malchow.yml","en-us/blog/authors/chad-malchow",{"_path":1717,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1718,"config":1723,"_id":1724,"_type":32,"title":1719,"_source":34,"_file":1725,"_stem":1726,"_extension":37},"/en-us/blog/authors/chance-feick",{"name":1719,"config":1720},"Chance Feick",{"headshot":1721,"ctfId":1722},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666442/Blog/Author%20Headshots/chance_feick_headshot.png","18dtRbXV47xqf5iDrOIduM",{"template":694},"content:en-us:blog:authors:chance-feick.yml","en-us/blog/authors/chance-feick.yml","en-us/blog/authors/chance-feick",{"_path":1728,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1729,"config":1734,"_id":1735,"_type":32,"title":1730,"_source":34,"_file":1736,"_stem":1737,"_extension":37},"/en-us/blog/authors/chandler-gibbons",{"name":1730,"config":1731},"Chandler Gibbons",{"headshot":1732,"ctfId":1733},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663276/Blog/Author%20Headshots/chandlergibb-headshot.jpg","chandlergibb",{"template":694},"content:en-us:blog:authors:chandler-gibbons.yml","en-us/blog/authors/chandler-gibbons.yml","en-us/blog/authors/chandler-gibbons",{"_path":1739,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1740,"config":1744,"_id":1745,"_type":32,"title":1746,"_source":34,"_file":1747,"_stem":1748,"_extension":37},"/en-us/blog/authors/charl-de-wit",{"name":1741,"config":1742},"Charl de Wit",{"headshot":725,"ctfId":1743},"45mQeypQVLNvvTWMzserbR",{"template":694},"content:en-us:blog:authors:charl-de-wit.yml","Charl De Wit","en-us/blog/authors/charl-de-wit.yml","en-us/blog/authors/charl-de-wit",{"_path":1750,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1751,"config":1756,"_id":1757,"_type":32,"title":1752,"_source":34,"_file":1758,"_stem":1759,"_extension":37},"/en-us/blog/authors/charlie-ablett",{"name":1752,"config":1753},"Charlie Ablett",{"headshot":1754,"ctfId":1755},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670131/Blog/Author%20Headshots/cablett-headshot.png","cablett",{"template":694},"content:en-us:blog:authors:charlie-ablett.yml","en-us/blog/authors/charlie-ablett.yml","en-us/blog/authors/charlie-ablett",{"_path":1761,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1762,"config":1766,"_id":1767,"_type":32,"title":1763,"_source":34,"_file":1768,"_stem":1769,"_extension":37},"/en-us/blog/authors/charvi-mendiratta",{"name":1763,"config":1764},"Charvi Mendiratta",{"headshot":725,"ctfId":1765},"YV7WvnjPWFS3JhXmSYJLk",{"template":694},"content:en-us:blog:authors:charvi-mendiratta.yml","en-us/blog/authors/charvi-mendiratta.yml","en-us/blog/authors/charvi-mendiratta",{"_path":1771,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1772,"config":1777,"_id":1778,"_type":32,"title":1773,"_source":34,"_file":1779,"_stem":1780,"_extension":37},"/en-us/blog/authors/cherry-han",{"name":1773,"config":1774},"Cherry Han",{"headshot":1775,"ctfId":1776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750713473/ehktvdbix2o1t0mmcvll.png","6gkuhRkgzCNP1Ee6J14yLu",{"template":694},"content:en-us:blog:authors:cherry-han.yml","en-us/blog/authors/cherry-han.yml","en-us/blog/authors/cherry-han",{"_path":1782,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1783,"config":1787,"_id":1789,"_type":32,"title":1784,"_source":34,"_file":1790,"_stem":1791,"_extension":37},"/en-us/blog/authors/chloe-cartron",{"name":1784,"config":1785},"Chloe Cartron",{"headshot":1786},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1754425488/d0uiiypsxa5ajnbdm6jn.png",{"template":694,"gitlabHandle":1788},"ChloeCartron","content:en-us:blog:authors:chloe-cartron.yml","en-us/blog/authors/chloe-cartron.yml","en-us/blog/authors/chloe-cartron",{"_path":1793,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1794,"config":1799,"_id":1800,"_type":32,"title":1795,"_source":34,"_file":1801,"_stem":1802,"_extension":37},"/en-us/blog/authors/chloe-whitestone",{"name":1795,"config":1796},"Chloe Whitestone",{"headshot":1797,"ctfId":1798},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678693/Blog/Author%20Headshots/chloe-headshot.jpg","chloe",{"template":694},"content:en-us:blog:authors:chloe-whitestone.yml","en-us/blog/authors/chloe-whitestone.yml","en-us/blog/authors/chloe-whitestone",{"_path":1804,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1805,"config":1810,"_id":1811,"_type":32,"title":1806,"_source":34,"_file":1812,"_stem":1813,"_extension":37},"/en-us/blog/authors/chris-balane",{"name":1806,"config":1807},"Chris Balane",{"headshot":1808,"ctfId":1809},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667630/Blog/Author%20Headshots/chris_balane_headshot.png","40SOCfTl3frynjL3dbg63o",{"template":694},"content:en-us:blog:authors:chris-balane.yml","en-us/blog/authors/chris-balane.yml","en-us/blog/authors/chris-balane",{"_path":1815,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1816,"config":1820,"_id":1821,"_type":32,"title":1817,"_source":34,"_file":1822,"_stem":1823,"_extension":37},"/en-us/blog/authors/chris-baus",{"name":1817,"config":1818},"Chris Baus",{"headshot":7,"ctfId":1819},"chrisbaus",{"template":694},"content:en-us:blog:authors:chris-baus.yml","en-us/blog/authors/chris-baus.yml","en-us/blog/authors/chris-baus",{"_path":1825,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1826,"config":1831,"_id":1832,"_type":32,"title":1827,"_source":34,"_file":1833,"_stem":1834,"_extension":37},"/en-us/blog/authors/chris-micek",{"name":1827,"config":1828},"Chris Micek",{"headshot":1829,"ctfId":1830},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666144/Blog/Author%20Headshots/chris_micek_headshot.png","62ZsvfXlttQEQ1tnikgoq9",{"template":694},"content:en-us:blog:authors:chris-micek.yml","en-us/blog/authors/chris-micek.yml","en-us/blog/authors/chris-micek",{"_path":1836,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1837,"config":1842,"_id":1843,"_type":32,"title":1838,"_source":34,"_file":1844,"_stem":1845,"_extension":37},"/en-us/blog/authors/chris-moberly",{"name":1838,"config":1839},"Chris Moberly",{"headshot":1840,"ctfId":1841},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664235/Blog/Author%20Headshots/cmoberly-headshot.jpg","cmoberly",{"template":694},"content:en-us:blog:authors:chris-moberly.yml","en-us/blog/authors/chris-moberly.yml","en-us/blog/authors/chris-moberly",{"_path":1847,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1848,"config":1852,"_id":1853,"_type":32,"title":1854,"_source":34,"_file":1855,"_stem":1856,"_extension":37},"/en-us/blog/authors/chris-sterry-dotscience",{"name":1849,"config":1850},"Chris Sterry, Dotscience",{"headshot":725,"ctfId":1851},"Chris-Sterry-Dotscience",{"template":694},"content:en-us:blog:authors:chris-sterry-dotscience.yml","Chris Sterry Dotscience","en-us/blog/authors/chris-sterry-dotscience.yml","en-us/blog/authors/chris-sterry-dotscience",{"_path":1858,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1859,"config":1863,"_id":1864,"_type":32,"title":1860,"_source":34,"_file":1865,"_stem":1866,"_extension":37},"/en-us/blog/authors/chris-ward",{"name":1860,"config":1861},"Chris Ward",{"headshot":7,"ctfId":1862},"chrischinchilla",{"template":694},"content:en-us:blog:authors:chris-ward.yml","en-us/blog/authors/chris-ward.yml","en-us/blog/authors/chris-ward",{"_path":1868,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1869,"config":1876,"_id":1877,"_type":32,"title":1871,"_source":34,"_file":1878,"_stem":1879,"_extension":37},"/en-us/blog/authors/chris-weber",{"role":1870,"name":1871,"config":1872},"CRO ","Chris Weber",{"headshot":1873,"linkedin":1874,"ctfId":1875},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670579/Blog/Author%20Headshots/Chris_Weber_Photo.png","https://www.linkedin.com/in/chris-weber/","4V6qmuzCIjMs5IdD7EKS5X",{"template":694},"content:en-us:blog:authors:chris-weber.yml","en-us/blog/authors/chris-weber.yml","en-us/blog/authors/chris-weber",{"_path":1881,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1882,"config":1886,"_id":1887,"_type":32,"title":1883,"_source":34,"_file":1888,"_stem":1889,"_extension":37},"/en-us/blog/authors/chrissie-buchanan",{"name":1883,"config":1884},"Chrissie Buchanan",{"headshot":725,"ctfId":1885},"cbuchanan",{"template":694},"content:en-us:blog:authors:chrissie-buchanan.yml","en-us/blog/authors/chrissie-buchanan.yml","en-us/blog/authors/chrissie-buchanan",{"_path":1891,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1892,"config":1897,"_id":1898,"_type":32,"title":1893,"_source":34,"_file":1899,"_stem":1900,"_extension":37},"/en-us/blog/authors/christen-dybenko",{"name":1893,"config":1894},"Christen Dybenko",{"headshot":1895,"ctfId":1896},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668811/Blog/Author%20Headshots/cdybenko-headshot.jpg","cdybenko",{"template":694},"content:en-us:blog:authors:christen-dybenko.yml","en-us/blog/authors/christen-dybenko.yml","en-us/blog/authors/christen-dybenko",{"_path":1902,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1903,"config":1908,"_id":1909,"_type":32,"title":1904,"_source":34,"_file":1910,"_stem":1911,"_extension":37},"/en-us/blog/authors/christian-couder",{"name":1904,"config":1905},"Christian Couder",{"headshot":1906,"ctfId":1907},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663687/Blog/Author%20Headshots/chriscool-headshot.jpg","chriscool",{"template":694},"content:en-us:blog:authors:christian-couder.yml","en-us/blog/authors/christian-couder.yml","en-us/blog/authors/christian-couder",{"_path":1913,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1914,"config":1919,"_id":1920,"_type":32,"title":1915,"_source":34,"_file":1921,"_stem":1922,"_extension":37},"/en-us/blog/authors/christian-nnachi",{"name":1915,"config":1916},"Christian Nnachi",{"headshot":1917,"ctfId":1918},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665343/Blog/Author%20Headshots/christian_nnachi_headshot.png","6pE7HjtzzpRhBFVdwTFjEX",{"template":694},"content:en-us:blog:authors:christian-nnachi.yml","en-us/blog/authors/christian-nnachi.yml","en-us/blog/authors/christian-nnachi",{"_path":1924,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1925,"config":1929,"_id":1930,"_type":32,"title":1926,"_source":34,"_file":1931,"_stem":1932,"_extension":37},"/en-us/blog/authors/christian-simko",{"name":1926,"config":1927},"Christian Simko",{"headshot":7,"ctfId":1928},"csimko",{"template":694},"content:en-us:blog:authors:christian-simko.yml","en-us/blog/authors/christian-simko.yml","en-us/blog/authors/christian-simko",{"_path":1934,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1935,"config":1940,"_id":1941,"_type":32,"title":1936,"_source":34,"_file":1942,"_stem":1943,"_extension":37},"/en-us/blog/authors/christie-lenneville",{"name":1936,"config":1937},"Christie Lenneville",{"headshot":1938,"ctfId":1939},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670047/Blog/Author%20Headshots/clenneville-headshot.jpg","clenneville",{"template":694},"content:en-us:blog:authors:christie-lenneville.yml","en-us/blog/authors/christie-lenneville.yml","en-us/blog/authors/christie-lenneville",{"_path":1945,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1946,"config":1950,"_id":1951,"_type":32,"title":1952,"_source":34,"_file":1953,"_stem":1954,"_extension":37},"/en-us/blog/authors/christina-hupy-phd",{"name":1947,"config":1948},"Christina Hupy, Ph.D.",{"headshot":7,"ctfId":1949},"chupy",{"template":694},"content:en-us:blog:authors:christina-hupy-phd.yml","Christina Hupy Phd","en-us/blog/authors/christina-hupy-phd.yml","en-us/blog/authors/christina-hupy-phd",{"_path":1956,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1957,"config":1962,"_id":1963,"_type":32,"title":1958,"_source":34,"_file":1964,"_stem":1965,"_extension":37},"/en-us/blog/authors/christina-lohr",{"name":1958,"config":1959},"Christina Lohr",{"headshot":1960,"ctfId":1961},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662499/Blog/Author%20Headshots/lohrc-headshot.jpg","lohrc",{"template":694},"content:en-us:blog:authors:christina-lohr.yml","en-us/blog/authors/christina-lohr.yml","en-us/blog/authors/christina-lohr",{"_path":1967,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1968,"config":1972,"_id":1973,"_type":32,"title":1969,"_source":34,"_file":1974,"_stem":1975,"_extension":37},"/en-us/blog/authors/christine-yoshida",{"name":1969,"config":1970},"Christine Yoshida",{"headshot":7,"ctfId":1971},"cyoshida",{"template":694},"content:en-us:blog:authors:christine-yoshida.yml","en-us/blog/authors/christine-yoshida.yml","en-us/blog/authors/christine-yoshida",{"_path":1977,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1978,"config":1982,"_id":1983,"_type":32,"title":1979,"_source":34,"_file":1984,"_stem":1985,"_extension":37},"/en-us/blog/authors/christopher-watson",{"name":1979,"config":1980},"Christopher Watson",{"headshot":725,"ctfId":1981},"Christopher-Watson",{"template":694},"content:en-us:blog:authors:christopher-watson.yml","en-us/blog/authors/christopher-watson.yml","en-us/blog/authors/christopher-watson",{"_path":1987,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1988,"config":1992,"_id":1993,"_type":32,"title":1989,"_source":34,"_file":1994,"_stem":1995,"_extension":37},"/en-us/blog/authors/christos-bacharakis",{"name":1989,"config":1990},"Christos Bacharakis",{"headshot":725,"ctfId":1991},"Christos-Bacharakis",{"template":694},"content:en-us:blog:authors:christos-bacharakis.yml","en-us/blog/authors/christos-bacharakis.yml","en-us/blog/authors/christos-bacharakis",{"_path":1997,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":1998,"config":2002,"_id":2003,"_type":32,"title":1999,"_source":34,"_file":2004,"_stem":2005,"_extension":37},"/en-us/blog/authors/cindy-blake",{"name":1999,"config":2000},"Cindy Blake",{"headshot":725,"ctfId":2001},"cblake",{"template":694},"content:en-us:blog:authors:cindy-blake.yml","en-us/blog/authors/cindy-blake.yml","en-us/blog/authors/cindy-blake",{"_path":2007,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2008,"config":2013,"_id":2014,"_type":32,"title":2009,"_source":34,"_file":2015,"_stem":2016,"_extension":37},"/en-us/blog/authors/claire-champernowne",{"name":2009,"config":2010},"Claire Champernowne",{"headshot":2011,"ctfId":2012},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664698/Blog/Author%20Headshots/clair_champernowne_headshot.png","jNt5P04nQ4dptXOKZZ8ZQ",{"template":694},"content:en-us:blog:authors:claire-champernowne.yml","en-us/blog/authors/claire-champernowne.yml","en-us/blog/authors/claire-champernowne",{"_path":2018,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2019,"config":2023,"_id":2024,"_type":32,"title":2020,"_source":34,"_file":2025,"_stem":2026,"_extension":37},"/en-us/blog/authors/clement-ho",{"name":2020,"config":2021},"Clement Ho",{"headshot":7,"ctfId":2022},"ClemMakesApps",{"template":694},"content:en-us:blog:authors:clement-ho.yml","en-us/blog/authors/clement-ho.yml","en-us/blog/authors/clement-ho",{"_path":2028,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2029,"config":2033,"_id":2034,"_type":32,"title":2030,"_source":34,"_file":2035,"_stem":2036,"_extension":37},"/en-us/blog/authors/colin-fletcher",{"name":2030,"config":2031},"Colin Fletcher",{"headshot":7,"ctfId":2032},"cfletcher1",{"template":694},"content:en-us:blog:authors:colin-fletcher.yml","en-us/blog/authors/colin-fletcher.yml","en-us/blog/authors/colin-fletcher",{"_path":2038,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2039,"config":2044,"_id":2045,"_type":32,"title":2040,"_source":34,"_file":2046,"_stem":2047,"_extension":37},"/en-us/blog/authors/connor-gilbert",{"name":2040,"config":2041},"Connor Gilbert",{"headshot":2042,"ctfId":2043},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665913/Blog/Author%20Headshots/connorgilbert-headshot.jpg","connorgilbert",{"template":694},"content:en-us:blog:authors:connor-gilbert.yml","en-us/blog/authors/connor-gilbert.yml","en-us/blog/authors/connor-gilbert",{"_path":2049,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2050,"config":2054,"_id":2055,"_type":32,"title":2051,"_source":34,"_file":2056,"_stem":2057,"_extension":37},"/en-us/blog/authors/connor-shea",{"name":2051,"config":2052},"Connor Shea",{"headshot":725,"ctfId":2053},"Connor-Shea",{"template":694},"content:en-us:blog:authors:connor-shea.yml","en-us/blog/authors/connor-shea.yml","en-us/blog/authors/connor-shea",{"_path":2059,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2060,"config":2065,"_id":2066,"_type":32,"title":2061,"_source":34,"_file":2067,"_stem":2068,"_extension":37},"/en-us/blog/authors/corey-oas",{"name":2061,"config":2062},"Corey Oas",{"headshot":2063,"ctfId":2064},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667633/Blog/Author%20Headshots/corey_oas_headshot.png","1Dd1lJ4aKCv36YWdlUhlPf",{"template":694},"content:en-us:blog:authors:corey-oas.yml","en-us/blog/authors/corey-oas.yml","en-us/blog/authors/corey-oas",{"_path":2070,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2071,"config":2075,"_id":2076,"_type":32,"title":2072,"_source":34,"_file":2077,"_stem":2078,"_extension":37},"/en-us/blog/authors/cormac-foster",{"name":2072,"config":2073},"Cormac Foster",{"headshot":7,"ctfId":2074},"cfoster3",{"template":694},"content:en-us:blog:authors:cormac-foster.yml","en-us/blog/authors/cormac-foster.yml","en-us/blog/authors/cormac-foster",{"_path":2080,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2081,"config":2086,"_id":2087,"_type":32,"title":2082,"_source":34,"_file":2088,"_stem":2089,"_extension":37},"/en-us/blog/authors/costel-maxim",{"name":2082,"config":2083},"Costel Maxim",{"headshot":2084,"ctfId":2085},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663173/Blog/Author%20Headshots/costel_maxim_headshot.png","3QzzrMksaRD9ZPytt0SPPL",{"template":694},"content:en-us:blog:authors:costel-maxim.yml","en-us/blog/authors/costel-maxim.yml","en-us/blog/authors/costel-maxim",{"_path":2091,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2092,"config":2097,"_id":2098,"_type":32,"title":2093,"_source":34,"_file":2099,"_stem":2100,"_extension":37},"/en-us/blog/authors/courtney-meddaugh",{"name":2093,"config":2094},"Courtney Meddaugh",{"headshot":2095,"ctfId":2096},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665168/Blog/Author%20Headshots/courtney_meddaugh_headshot.png","5avtK3YS9MrDBkaOnB9ZmG",{"template":694},"content:en-us:blog:authors:courtney-meddaugh.yml","en-us/blog/authors/courtney-meddaugh.yml","en-us/blog/authors/courtney-meddaugh",{"_path":2102,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2103,"config":2107,"_id":2108,"_type":32,"title":2104,"_source":34,"_file":2109,"_stem":2110,"_extension":37},"/en-us/blog/authors/craig-gomes",{"name":2104,"config":2105},"Craig Gomes",{"headshot":7,"ctfId":2106},"craiggomes",{"template":694},"content:en-us:blog:authors:craig-gomes.yml","en-us/blog/authors/craig-gomes.yml","en-us/blog/authors/craig-gomes",{"_path":2112,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2113,"config":2118,"_id":2119,"_type":32,"title":2114,"_source":34,"_file":2120,"_stem":2121,"_extension":37},"/en-us/blog/authors/craig-miskell",{"name":2114,"config":2115},"Craig Miskell",{"headshot":2116,"ctfId":2117},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667372/Blog/Author%20Headshots/cmiskell-headshot.jpg","cmiskell",{"template":694},"content:en-us:blog:authors:craig-miskell.yml","en-us/blog/authors/craig-miskell.yml","en-us/blog/authors/craig-miskell",{"_path":2123,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2124,"config":2128,"_id":2129,"_type":32,"title":2125,"_source":34,"_file":2130,"_stem":2131,"_extension":37},"/en-us/blog/authors/creighton-swank",{"name":2125,"config":2126},"Creighton Swank",{"headshot":725,"ctfId":2127},"5uf3k9lutpbelxJQ373eWu",{"template":694},"content:en-us:blog:authors:creighton-swank.yml","en-us/blog/authors/creighton-swank.yml","en-us/blog/authors/creighton-swank",{"_path":2133,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2134,"config":2138,"_id":2139,"_type":32,"title":2135,"_source":34,"_file":2140,"_stem":2141,"_extension":37},"/en-us/blog/authors/daisy-miclat",{"name":2135,"config":2136},"Daisy Miclat",{"headshot":725,"ctfId":2137},"IU4zOKoPhWS7hok7qsy7w",{"template":694},"content:en-us:blog:authors:daisy-miclat.yml","en-us/blog/authors/daisy-miclat.yml","en-us/blog/authors/daisy-miclat",{"_path":2143,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2144,"config":2148,"_id":2149,"_type":32,"title":2145,"_source":34,"_file":2150,"_stem":2151,"_extension":37},"/en-us/blog/authors/dan-luhring",{"name":2145,"config":2146},"Dan Luhring",{"headshot":7,"ctfId":2147},"danluhring",{"template":694},"content:en-us:blog:authors:dan-luhring.yml","en-us/blog/authors/dan-luhring.yml","en-us/blog/authors/dan-luhring",{"_path":2153,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2154,"config":2159,"_id":2160,"_type":32,"title":2155,"_source":34,"_file":2161,"_stem":2162,"_extension":37},"/en-us/blog/authors/dan-rabinovitz",{"name":2155,"config":2156},"Dan Rabinovitz",{"headshot":2157,"ctfId":2158},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664796/Blog/Author%20Headshots/dan_rabinovitz_headshot.png","31AXb267jy94budCWQZQyr",{"template":694},"content:en-us:blog:authors:dan-rabinovitz.yml","en-us/blog/authors/dan-rabinovitz.yml","en-us/blog/authors/dan-rabinovitz",{"_path":2164,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2165,"config":2169,"_id":2170,"_type":32,"title":2166,"_source":34,"_file":2171,"_stem":2172,"_extension":37},"/en-us/blog/authors/daniel-berman",{"name":2166,"config":2167},"Daniel Berman",{"headshot":725,"ctfId":2168},"Daniel-Berman",{"template":694},"content:en-us:blog:authors:daniel-berman.yml","en-us/blog/authors/daniel-berman.yml","en-us/blog/authors/daniel-berman",{"_path":2174,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2175,"config":2179,"_id":2180,"_type":32,"title":2176,"_source":34,"_file":2181,"_stem":2182,"_extension":37},"/en-us/blog/authors/daniel-gruesso",{"name":2176,"config":2177},"Daniel Gruesso",{"headshot":7,"ctfId":2178},"danielgruesso",{"template":694},"content:en-us:blog:authors:daniel-gruesso.yml","en-us/blog/authors/daniel-gruesso.yml","en-us/blog/authors/daniel-gruesso",{"_path":2184,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2185,"config":2190,"_id":2191,"_type":32,"title":2186,"_source":34,"_file":2192,"_stem":2193,"_extension":37},"/en-us/blog/authors/daniel-hauenstein",{"name":2186,"config":2187},"Daniel Hauenstein",{"headshot":2188,"ctfId":2189},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662434/Blog/Author%20Headshots/daniel_hauenstein_headshot.png","2gXGuSmuvZSxv0iCn4sinV",{"template":694},"content:en-us:blog:authors:daniel-hauenstein.yml","en-us/blog/authors/daniel-hauenstein.yml","en-us/blog/authors/daniel-hauenstein",{"_path":2195,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2196,"config":2201,"_id":2202,"_type":32,"title":2197,"_source":34,"_file":2203,"_stem":2204,"_extension":37},"/en-us/blog/authors/daniel-helfand",{"name":2197,"config":2198},"Daniel Helfand",{"headshot":2199,"ctfId":2200},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662418/Blog/Author%20Headshots/dhelfand.png","b9sRP0HJhdPsOEruWUfih",{"template":694},"content:en-us:blog:authors:daniel-helfand.yml","en-us/blog/authors/daniel-helfand.yml","en-us/blog/authors/daniel-helfand",{"_path":2206,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2207,"config":2211,"_id":2212,"_type":32,"title":2208,"_source":34,"_file":2213,"_stem":2214,"_extension":37},"/en-us/blog/authors/daniel-mora",{"name":2208,"config":2209},"Daniel Mora",{"headshot":7,"ctfId":2210},"dmoraberlin",{"template":694},"content:en-us:blog:authors:daniel-mora.yml","en-us/blog/authors/daniel-mora.yml","en-us/blog/authors/daniel-mora",{"_path":2216,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2217,"config":2221,"_id":2223,"_type":32,"title":2218,"_source":34,"_file":2224,"_stem":2225,"_extension":37},"/en-us/blog/authors/daniel-murphy",{"name":2218,"config":2219},"Daniel Murphy",{"headshot":2220},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752519199/fabr89uottv7n6r2jldp.png",{"template":694,"gitlabHandle":2222},"daniel-murphy","content:en-us:blog:authors:daniel-murphy.yml","en-us/blog/authors/daniel-murphy.yml","en-us/blog/authors/daniel-murphy",{"_path":2227,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2228,"config":2233,"_id":2234,"_type":32,"title":2229,"_source":34,"_file":2235,"_stem":2236,"_extension":37},"/en-us/blog/authors/darby-frey",{"name":2229,"config":2230},"Darby Frey",{"headshot":2231,"ctfId":2232},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668565/Blog/Author%20Headshots/darbyfrey-headshot.png","darbyfrey",{"template":694},"content:en-us:blog:authors:darby-frey.yml","en-us/blog/authors/darby-frey.yml","en-us/blog/authors/darby-frey",{"_path":2238,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2239,"config":2244,"_id":2245,"_type":32,"title":2240,"_source":34,"_file":2246,"_stem":2247,"_extension":37},"/en-us/blog/authors/darren-eastman",{"name":2240,"config":2241},"Darren Eastman",{"headshot":2242,"ctfId":2243},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665148/Blog/Author%20Headshots/darren_eastman.png","DarrenEastman",{"template":694},"content:en-us:blog:authors:darren-eastman.yml","en-us/blog/authors/darren-eastman.yml","en-us/blog/authors/darren-eastman",{"_path":2249,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2250,"config":2254,"_id":2255,"_type":32,"title":2251,"_source":34,"_file":2256,"_stem":2257,"_extension":37},"/en-us/blog/authors/darren-murph",{"name":2251,"config":2252},"Darren Murph",{"headshot":7,"ctfId":2253},"dmurph",{"template":694},"content:en-us:blog:authors:darren-murph.yml","en-us/blog/authors/darren-murph.yml","en-us/blog/authors/darren-murph",{"_path":2259,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2260,"config":2267,"_id":2268,"_type":32,"title":2262,"_source":34,"_file":2269,"_stem":2270,"_extension":37},"/en-us/blog/authors/darwin-sanoy",{"role":2261,"name":2262,"config":2263},"Field Chief Cloud Architect","Darwin Sanoy",{"headshot":2264,"linkedin":2265,"ctfId":2266},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659751/Blog/Author%20Headshots/Darwin-Sanoy-headshot-395-square-gitlab-teampage-avatar.png","https://linkedin.com/in/darwinsanoy","DarwinJS",{"template":694},"content:en-us:blog:authors:darwin-sanoy.yml","en-us/blog/authors/darwin-sanoy.yml","en-us/blog/authors/darwin-sanoy",{"_path":2272,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2273,"config":2278,"_id":2279,"_type":32,"title":2274,"_source":34,"_file":2280,"_stem":2281,"_extension":37},"/en-us/blog/authors/dave-steer",{"name":2274,"config":2275},"Dave Steer",{"headshot":2276,"ctfId":2277},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658895/Blog/Author%20Headshots/dsteer-headshot.jpg","dsteer",{"template":694},"content:en-us:blog:authors:dave-steer.yml","en-us/blog/authors/dave-steer.yml","en-us/blog/authors/dave-steer",{"_path":2283,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2284,"config":2288,"_id":2289,"_type":32,"title":2285,"_source":34,"_file":2290,"_stem":2291,"_extension":37},"/en-us/blog/authors/dave-wentzel",{"name":2285,"config":2286},"Dave Wentzel",{"headshot":725,"ctfId":2287},"Dave-Wentzel",{"template":694},"content:en-us:blog:authors:dave-wentzel.yml","en-us/blog/authors/dave-wentzel.yml","en-us/blog/authors/dave-wentzel",{"_path":2293,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2294,"config":2299,"_id":2300,"_type":32,"title":2301,"_source":34,"_file":2302,"_stem":2303,"_extension":37},"/en-us/blog/authors/david-desanto-chief-product-officer-gitlab",{"name":2295,"config":2296},"David DeSanto, Chief Product Officer, GitLab",{"headshot":2297,"ctfId":2298},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660185/Blog/Author%20Headshots/david-headshot.jpg","david",{"template":694},"content:en-us:blog:authors:david-desanto-chief-product-officer-gitlab.yml","David Desanto Chief Product Officer Gitlab","en-us/blog/authors/david-desanto-chief-product-officer-gitlab.yml","en-us/blog/authors/david-desanto-chief-product-officer-gitlab",{"_path":2305,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2306,"config":2311,"_id":2312,"_type":32,"title":2313,"_source":34,"_file":2314,"_stem":2315,"_extension":37},"/en-us/blog/authors/david-oregan",{"name":2307,"config":2308},"David O'Regan",{"headshot":2309,"ctfId":2310},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659853/Blog/Author%20Headshots/oregand-headshot.png","oregand",{"template":694},"content:en-us:blog:authors:david-oregan.yml","David Oregan","en-us/blog/authors/david-oregan.yml","en-us/blog/authors/david-oregan",{"_path":2317,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2318,"config":2322,"_id":2323,"_type":32,"title":2319,"_source":34,"_file":2324,"_stem":2325,"_extension":37},"/en-us/blog/authors/david-planella",{"name":2319,"config":2320},"David Planella",{"headshot":725,"ctfId":2321},"1Ehi3fTex4dxUCV2kYz4Vh",{"template":694},"content:en-us:blog:authors:david-planella.yml","en-us/blog/authors/david-planella.yml","en-us/blog/authors/david-planella",{"_path":2327,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2328,"config":2332,"_id":2333,"_type":32,"title":2329,"_source":34,"_file":2334,"_stem":2335,"_extension":37},"/en-us/blog/authors/david-russell",{"name":2329,"config":2330},"David Russell",{"headshot":725,"ctfId":2331},"David-Russell",{"template":694},"content:en-us:blog:authors:david-russell.yml","en-us/blog/authors/david-russell.yml","en-us/blog/authors/david-russell",{"_path":2337,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2338,"config":2343,"_id":2344,"_type":32,"title":2339,"_source":34,"_file":2345,"_stem":2346,"_extension":37},"/en-us/blog/authors/david-smith",{"name":2339,"config":2340},"David Smith",{"headshot":2341,"ctfId":2342},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671135/Blog/Author%20Headshots/dawsmith-headshot.jpg","dawsmith",{"template":694},"content:en-us:blog:authors:david-smith.yml","en-us/blog/authors/david-smith.yml","en-us/blog/authors/david-smith",{"_path":2348,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2349,"config":2353,"_id":2354,"_type":32,"title":2350,"_source":34,"_file":2355,"_stem":2356,"_extension":37},"/en-us/blog/authors/davis-townsend",{"name":2350,"config":2351},"Davis Townsend",{"headshot":7,"ctfId":2352},"davistownsend",{"template":694},"content:en-us:blog:authors:davis-townsend.yml","en-us/blog/authors/davis-townsend.yml","en-us/blog/authors/davis-townsend",{"_path":2358,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2359,"config":2363,"_id":2365,"_type":32,"title":2360,"_source":34,"_file":2366,"_stem":2367,"_extension":37},"/en-us/blog/authors/davoud-tu",{"name":2360,"config":2361},"Davoud Tu",{"headshot":2362},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1756481763/pfdaqbndnstiqlmxh3ee.png",{"template":694,"gitlabHandle":2364},"davoudtu","content:en-us:blog:authors:davoud-tu.yml","en-us/blog/authors/davoud-tu.yml","en-us/blog/authors/davoud-tu",{"_path":2369,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2370,"config":2375,"_id":2376,"_type":32,"title":2377,"_source":34,"_file":2378,"_stem":2379,"_extension":37},"/en-us/blog/authors/dean-agron-co-founder-and-ceo-oxeye",{"name":2371,"config":2372},"Dean Agron, co-founder and CEO, Oxeye",{"headshot":2373,"ctfId":2374},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671963/Blog/Author%20Headshots/Dean_Photo__1_.jpg","6wQ0QwFZdbzAtYGZgnALkw",{"template":694},"content:en-us:blog:authors:dean-agron-co-founder-and-ceo-oxeye.yml","Dean Agron Co Founder And Ceo Oxeye","en-us/blog/authors/dean-agron-co-founder-and-ceo-oxeye.yml","en-us/blog/authors/dean-agron-co-founder-and-ceo-oxeye",{"_path":2381,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2382,"config":2387,"_id":2388,"_type":32,"title":2383,"_source":34,"_file":2389,"_stem":2390,"_extension":37},"/en-us/blog/authors/deepa-mahalingam",{"name":2383,"config":2384},"Deepa Mahalingam",{"headshot":2385,"ctfId":2386},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662019/Blog/Author%20Headshots/deepa-headshot.jpg","M54z9AWDuU7L9nBR9gRF4",{"template":694},"content:en-us:blog:authors:deepa-mahalingam.yml","en-us/blog/authors/deepa-mahalingam.yml","en-us/blog/authors/deepa-mahalingam",{"_path":2392,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2393,"config":2398,"_id":2399,"_type":32,"title":2394,"_source":34,"_file":2400,"_stem":2401,"_extension":37},"/en-us/blog/authors/dennis-appelt",{"name":2394,"config":2395},"Dennis Appelt",{"headshot":2396,"ctfId":2397},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672032/Blog/Author%20Headshots/dappelt-headshot.jpg","dappelt",{"template":694},"content:en-us:blog:authors:dennis-appelt.yml","en-us/blog/authors/dennis-appelt.yml","en-us/blog/authors/dennis-appelt",{"_path":2403,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2404,"config":2409,"_id":2410,"_type":32,"title":2405,"_source":34,"_file":2411,"_stem":2412,"_extension":37},"/en-us/blog/authors/dennis-tang",{"name":2405,"config":2406},"Dennis Tang",{"headshot":2407,"ctfId":2408},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672189/Blog/Author%20Headshots/dennis-headshot.jpg","dennis",{"template":694},"content:en-us:blog:authors:dennis-tang.yml","en-us/blog/authors/dennis-tang.yml","en-us/blog/authors/dennis-tang",{"_path":2414,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2415,"config":2419,"_id":2421,"_type":32,"title":2422,"_source":34,"_file":2423,"_stem":2424,"_extension":37},"/en-us/blog/authors/dennis-van-rooijen",{"name":2416,"config":2417},"Dennis van Rooijen",{"headshot":2418},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758031391/muvwg1sxetzekmuhqdql.png",{"template":694,"gitlabHandle":2420},"dvanrooijen2","content:en-us:blog:authors:dennis-van-rooijen.yml","Dennis Van Rooijen","en-us/blog/authors/dennis-van-rooijen.yml","en-us/blog/authors/dennis-van-rooijen",{"_path":2426,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2427,"config":2432,"_id":2433,"_type":32,"title":2428,"_source":34,"_file":2434,"_stem":2435,"_extension":37},"/en-us/blog/authors/devin-sylva",{"name":2428,"config":2429},"Devin Sylva",{"headshot":2430,"ctfId":2431},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679087/Blog/Author%20Headshots/devin-headshot.jpg","devin",{"template":694},"content:en-us:blog:authors:devin-sylva.yml","en-us/blog/authors/devin-sylva.yml","en-us/blog/authors/devin-sylva",{"_path":2437,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2438,"config":2442,"_id":2443,"_type":32,"title":2439,"_source":34,"_file":2444,"_stem":2445,"_extension":37},"/en-us/blog/authors/dhruv-jain",{"name":2439,"config":2440},"Dhruv Jain",{"headshot":725,"ctfId":2441},"2wyibk9HBKn6PjgaEuzXuZ",{"template":694},"content:en-us:blog:authors:dhruv-jain.yml","en-us/blog/authors/dhruv-jain.yml","en-us/blog/authors/dhruv-jain",{"_path":2447,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2448,"config":2452,"_id":2453,"_type":32,"title":2449,"_source":34,"_file":2454,"_stem":2455,"_extension":37},"/en-us/blog/authors/diana-logan",{"name":2449,"config":2450},"Diana Logan",{"headshot":725,"ctfId":2451},"6poIwhQe6W9ysm5rBuSPXX",{"template":694},"content:en-us:blog:authors:diana-logan.yml","en-us/blog/authors/diana-logan.yml","en-us/blog/authors/diana-logan",{"_path":2457,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2458,"config":2463,"_id":2464,"_type":32,"title":2459,"_source":34,"_file":2465,"_stem":2466,"_extension":37},"/en-us/blog/authors/dilan-orrino",{"name":2459,"config":2460},"Dilan Orrino",{"headshot":2461,"ctfId":2462},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666180/Blog/Author%20Headshots/dorrino-headshot.png","dorrino",{"template":694},"content:en-us:blog:authors:dilan-orrino.yml","en-us/blog/authors/dilan-orrino.yml","en-us/blog/authors/dilan-orrino",{"_path":2468,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2469,"config":2473,"_id":2474,"_type":32,"title":2470,"_source":34,"_file":2475,"_stem":2476,"_extension":37},"/en-us/blog/authors/dimitrie-hoekstra",{"name":2470,"config":2471},"Dimitrie Hoekstra",{"headshot":7,"ctfId":2472},"dimitrieh",{"template":694},"content:en-us:blog:authors:dimitrie-hoekstra.yml","en-us/blog/authors/dimitrie-hoekstra.yml","en-us/blog/authors/dimitrie-hoekstra",{"_path":2478,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2479,"config":2483,"_id":2484,"_type":32,"title":2480,"_source":34,"_file":2485,"_stem":2486,"_extension":37},"/en-us/blog/authors/dinesh-bolkensteyn",{"name":2480,"config":2481},"Dinesh Bolkensteyn",{"headshot":725,"ctfId":2482},"EpylYWgjPmFOL5NX3Zxmk",{"template":694},"content:en-us:blog:authors:dinesh-bolkensteyn.yml","en-us/blog/authors/dinesh-bolkensteyn.yml","en-us/blog/authors/dinesh-bolkensteyn",{"_path":2488,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2489,"config":2493,"_id":2494,"_type":32,"title":2495,"_source":34,"_file":2496,"_stem":2497,"_extension":37},"/en-us/blog/authors/dj-mountney",{"name":2490,"config":2491},"DJ Mountney",{"headshot":725,"ctfId":2492},"DJ-Mountney",{"template":694},"content:en-us:blog:authors:dj-mountney.yml","Dj Mountney","en-us/blog/authors/dj-mountney.yml","en-us/blog/authors/dj-mountney",{"_path":2499,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2500,"config":2504,"_id":2505,"_type":32,"title":2506,"_source":34,"_file":2507,"_stem":2508,"_extension":37},"/en-us/blog/authors/dmitriy-job",{"name":2501,"config":2502},"Dmitriy, Job",{"headshot":725,"ctfId":2503},"Dmitriy-Job",{"template":694},"content:en-us:blog:authors:dmitriy-job.yml","Dmitriy Job","en-us/blog/authors/dmitriy-job.yml","en-us/blog/authors/dmitriy-job",{"_path":2510,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2511,"config":2515,"_id":2516,"_type":32,"title":2512,"_source":34,"_file":2517,"_stem":2518,"_extension":37},"/en-us/blog/authors/dmitriy-zaporozhets",{"name":2512,"config":2513},"Dmitriy Zaporozhets",{"headshot":725,"ctfId":2514},"Dmitriy-Zaporozhets",{"template":694},"content:en-us:blog:authors:dmitriy-zaporozhets.yml","en-us/blog/authors/dmitriy-zaporozhets.yml","en-us/blog/authors/dmitriy-zaporozhets",{"_path":2520,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2521,"config":2526,"_id":2527,"_type":32,"title":2522,"_source":34,"_file":2528,"_stem":2529,"_extension":37},"/en-us/blog/authors/dmitry-gruzd",{"name":2522,"config":2523},"Dmitry Gruzd",{"headshot":2524,"ctfId":2525},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682014/Blog/Author%20Headshots/dgruzd-headshot.jpg","dgruzd",{"template":694},"content:en-us:blog:authors:dmitry-gruzd.yml","en-us/blog/authors/dmitry-gruzd.yml","en-us/blog/authors/dmitry-gruzd",{"_path":2531,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2532,"config":2537,"_id":2538,"_type":32,"title":2533,"_source":34,"_file":2539,"_stem":2540,"_extension":37},"/en-us/blog/authors/dominic-couture",{"name":2533,"config":2534},"Dominic Couture",{"headshot":2535,"ctfId":2536},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683783/Blog/Author%20Headshots/dominic.png","3K2DmuMWV5isBeVtKsplia",{"template":694},"content:en-us:blog:authors:dominic-couture.yml","en-us/blog/authors/dominic-couture.yml","en-us/blog/authors/dominic-couture",{"_path":2542,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2543,"config":2547,"_id":2548,"_type":32,"title":2544,"_source":34,"_file":2549,"_stem":2550,"_extension":37},"/en-us/blog/authors/douglas-alexandre",{"name":2544,"config":2545},"Douglas Alexandre",{"headshot":725,"ctfId":2546},"Douglas-Alexandre",{"template":694},"content:en-us:blog:authors:douglas-alexandre.yml","en-us/blog/authors/douglas-alexandre.yml","en-us/blog/authors/douglas-alexandre",{"_path":2552,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2553,"config":2557,"_id":2558,"_type":32,"title":2554,"_source":34,"_file":2559,"_stem":2560,"_extension":37},"/en-us/blog/authors/douwe-maan",{"name":2554,"config":2555},"Douwe Maan",{"headshot":7,"ctfId":2556},"DouweM",{"template":694},"content:en-us:blog:authors:douwe-maan.yml","en-us/blog/authors/douwe-maan.yml","en-us/blog/authors/douwe-maan",{"_path":2562,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2563,"config":2568,"_id":2569,"_type":32,"title":2564,"_source":34,"_file":2570,"_stem":2571,"_extension":37},"/en-us/blog/authors/dov-hershkovitch",{"name":2564,"config":2565},"Dov Hershkovitch",{"headshot":2566,"ctfId":2567},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665628/Blog/Author%20Headshots/dhershkovitch-headshot.png","dhershkovitch",{"template":694},"content:en-us:blog:authors:dov-hershkovitch.yml","en-us/blog/authors/dov-hershkovitch.yml","en-us/blog/authors/dov-hershkovitch",{"_path":2573,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2574,"config":2578,"_id":2579,"_type":32,"title":2580,"_source":34,"_file":2581,"_stem":2582,"_extension":37},"/en-us/blog/authors/dr-elle-obrien",{"name":2575,"config":2576},"Dr. Elle O'Brien",{"headshot":725,"ctfId":2577},"Dr-Elle-OBrien",{"template":694},"content:en-us:blog:authors:dr-elle-obrien.yml","Dr Elle Obrien","en-us/blog/authors/dr-elle-obrien.yml","en-us/blog/authors/dr-elle-obrien",{"_path":2584,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2585,"config":2589,"_id":2590,"_type":32,"title":2586,"_source":34,"_file":2591,"_stem":2592,"_extension":37},"/en-us/blog/authors/drew-blessing",{"name":2586,"config":2587},"Drew Blessing",{"headshot":725,"ctfId":2588},"Drew-Blessing",{"template":694},"content:en-us:blog:authors:drew-blessing.yml","en-us/blog/authors/drew-blessing.yml","en-us/blog/authors/drew-blessing",{"_path":2594,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2595,"config":2600,"_id":2601,"_type":32,"title":2596,"_source":34,"_file":2602,"_stem":2603,"_extension":37},"/en-us/blog/authors/dylan-griffith",{"name":2596,"config":2597},"Dylan Griffith",{"headshot":2598,"ctfId":2599},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672822/Blog/Author%20Headshots/DylanGriffith-headshot.jpg","DylanGriffith",{"template":694},"content:en-us:blog:authors:dylan-griffith.yml","en-us/blog/authors/dylan-griffith.yml","en-us/blog/authors/dylan-griffith",{"_path":2605,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2606,"config":2610,"_id":2611,"_type":32,"title":2607,"_source":34,"_file":2612,"_stem":2613,"_extension":37},"/en-us/blog/authors/eddie-glenn",{"name":2607,"config":2608},"Eddie Glenn",{"headshot":7,"ctfId":2609},"eglenn",{"template":694},"content:en-us:blog:authors:eddie-glenn.yml","en-us/blog/authors/eddie-glenn.yml","en-us/blog/authors/eddie-glenn",{"_path":2615,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2616,"config":2621,"_id":2622,"_type":32,"title":2617,"_source":34,"_file":2623,"_stem":2624,"_extension":37},"/en-us/blog/authors/eduardo-bonet",{"name":2617,"config":2618},"Eduardo Bonet",{"headshot":2619,"ctfId":2620},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682722/Blog/Author%20Headshots/eduardobonet-headshot.jpg","eduardobonet",{"template":694},"content:en-us:blog:authors:eduardo-bonet.yml","en-us/blog/authors/eduardo-bonet.yml","en-us/blog/authors/eduardo-bonet",{"_path":2626,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2627,"config":2632,"_id":2633,"_type":32,"title":2628,"_source":34,"_file":2634,"_stem":2635,"_extension":37},"/en-us/blog/authors/eliran-mesika",{"name":2628,"config":2629},"Eliran Mesika",{"headshot":2630,"ctfId":2631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670111/Blog/Author%20Headshots/eliran.jpg","eliranmesika",{"template":694},"content:en-us:blog:authors:eliran-mesika.yml","en-us/blog/authors/eliran-mesika.yml","en-us/blog/authors/eliran-mesika",{"_path":2637,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2638,"config":2643,"_id":2644,"_type":32,"title":2639,"_source":34,"_file":2645,"_stem":2646,"_extension":37},"/en-us/blog/authors/elisabeth-burrows",{"name":2639,"config":2640},"Elisabeth Burrows",{"headshot":2641,"ctfId":2642},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659535/Blog/Author%20Headshots/liz_burrows_headshot.png","6Nj2Lio5W7HdeNYoysVgCf",{"template":694},"content:en-us:blog:authors:elisabeth-burrows.yml","en-us/blog/authors/elisabeth-burrows.yml","en-us/blog/authors/elisabeth-burrows",{"_path":2648,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2649,"config":2653,"_id":2654,"_type":32,"title":2650,"_source":34,"_file":2655,"_stem":2656,"_extension":37},"/en-us/blog/authors/elliot-rushton",{"name":2650,"config":2651},"Elliot Rushton",{"headshot":7,"ctfId":2652},"erushton",{"template":694},"content:en-us:blog:authors:elliot-rushton.yml","en-us/blog/authors/elliot-rushton.yml","en-us/blog/authors/elliot-rushton",{"_path":2658,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2659,"config":2663,"_id":2664,"_type":32,"title":2660,"_source":34,"_file":2665,"_stem":2666,"_extension":37},"/en-us/blog/authors/emilie-schario",{"name":2660,"config":2661},"Emilie Schario",{"headshot":7,"ctfId":2662},"emilie",{"template":694},"content:en-us:blog:authors:emilie-schario.yml","en-us/blog/authors/emilie-schario.yml","en-us/blog/authors/emilie-schario",{"_path":2668,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2669,"config":2674,"_id":2675,"_type":32,"title":2670,"_source":34,"_file":2676,"_stem":2677,"_extension":37},"/en-us/blog/authors/emilio-salvador",{"name":2670,"config":2671},"Emilio Salvador",{"headshot":2672,"ctfId":2673},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660161/Blog/Author%20Headshots/esalvadorp-headshot.png","esalvadorp",{"template":694},"content:en-us:blog:authors:emilio-salvador.yml","en-us/blog/authors/emilio-salvador.yml","en-us/blog/authors/emilio-salvador",{"_path":2679,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2680,"config":2685,"_id":2686,"_type":32,"title":2681,"_source":34,"_file":2687,"_stem":2688,"_extension":37},"/en-us/blog/authors/emily-bauman",{"name":2681,"config":2682},"Emily Bauman",{"headshot":2683,"ctfId":2684},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664145/Blog/Author%20Headshots/emilybauman-headshot.jpg","emilybauman",{"template":694},"content:en-us:blog:authors:emily-bauman.yml","en-us/blog/authors/emily-bauman.yml","en-us/blog/authors/emily-bauman",{"_path":2690,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2691,"config":2695,"_id":2696,"_type":32,"title":2692,"_source":34,"_file":2697,"_stem":2698,"_extension":37},"/en-us/blog/authors/emily-chin",{"name":2692,"config":2693},"Emily Chin",{"headshot":7,"ctfId":2694},"echin",{"template":694},"content:en-us:blog:authors:emily-chin.yml","en-us/blog/authors/emily-chin.yml","en-us/blog/authors/emily-chin",{"_path":2700,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2701,"config":2705,"_id":2706,"_type":32,"title":2702,"_source":34,"_file":2707,"_stem":2708,"_extension":37},"/en-us/blog/authors/emily-kyle",{"name":2702,"config":2703},"Emily Kyle",{"headshot":725,"ctfId":2704},"Emily-Kyle",{"template":694},"content:en-us:blog:authors:emily-kyle.yml","en-us/blog/authors/emily-kyle.yml","en-us/blog/authors/emily-kyle",{"_path":2710,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2711,"config":2715,"_id":2716,"_type":32,"title":2717,"_source":34,"_file":2718,"_stem":2719,"_extension":37},"/en-us/blog/authors/emily-von-hoffmann",{"name":2712,"config":2713},"Emily von Hoffmann",{"headshot":725,"ctfId":2714},"evhoffmann",{"template":694},"content:en-us:blog:authors:emily-von-hoffmann.yml","Emily Von Hoffmann","en-us/blog/authors/emily-von-hoffmann.yml","en-us/blog/authors/emily-von-hoffmann",{"_path":2721,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2722,"config":2727,"_id":2728,"_type":32,"title":2729,"_source":34,"_file":2730,"_stem":2731,"_extension":37},"/en-us/blog/authors/enrique-alcntara",{"name":2723,"config":2724},"Enrique Alcántara",{"headshot":2725,"ctfId":2726},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669746/Blog/Author%20Headshots/ealcantara-headshot.jpg","3E3c30ZWRUTq6rlFiYrjtq",{"template":694},"content:en-us:blog:authors:enrique-alcntara.yml","Enrique Alcntara","en-us/blog/authors/enrique-alcntara.yml","en-us/blog/authors/enrique-alcntara",{"_path":2733,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2734,"config":2738,"_id":2739,"_type":32,"title":2735,"_source":34,"_file":2740,"_stem":2741,"_extension":37},"/en-us/blog/authors/eric-brinkman",{"name":2735,"config":2736},"Eric Brinkman",{"headshot":7,"ctfId":2737},"ebrinkman",{"template":694},"content:en-us:blog:authors:eric-brinkman.yml","en-us/blog/authors/eric-brinkman.yml","en-us/blog/authors/eric-brinkman",{"_path":2743,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2744,"config":2748,"_id":2749,"_type":32,"title":2745,"_source":34,"_file":2750,"_stem":2751,"_extension":37},"/en-us/blog/authors/eric-eastwood",{"name":2745,"config":2746},"Eric Eastwood",{"headshot":7,"ctfId":2747},"MadLittleMods",{"template":694},"content:en-us:blog:authors:eric-eastwood.yml","en-us/blog/authors/eric-eastwood.yml","en-us/blog/authors/eric-eastwood",{"_path":2753,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2754,"config":2758,"_id":2759,"_type":32,"title":2755,"_source":34,"_file":2760,"_stem":2761,"_extension":37},"/en-us/blog/authors/eric-rosenberg",{"name":2755,"config":2756},"Eric Rosenberg",{"headshot":7,"ctfId":2757},"ericrosenberg88",{"template":694},"content:en-us:blog:authors:eric-rosenberg.yml","en-us/blog/authors/eric-rosenberg.yml","en-us/blog/authors/eric-rosenberg",{"_path":2763,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2764,"config":2769,"_id":2770,"_type":32,"title":2765,"_source":34,"_file":2771,"_stem":2772,"_extension":37},"/en-us/blog/authors/eric-rubin",{"name":2765,"config":2766},"Eric Rubin",{"headshot":2767,"ctfId":2768},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682494/Blog/Author%20Headshots/ericrubin-headshot.png","ericrubin",{"template":694},"content:en-us:blog:authors:eric-rubin.yml","en-us/blog/authors/eric-rubin.yml","en-us/blog/authors/eric-rubin",{"_path":2774,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2775,"config":2780,"_id":2781,"_type":32,"title":2776,"_source":34,"_file":2782,"_stem":2783,"_extension":37},"/en-us/blog/authors/eric-schurter",{"name":2776,"config":2777},"Eric Schurter",{"headshot":2778,"ctfId":2779},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679281/Blog/Author%20Headshots/ericschurter-headshot.jpg","ericschurter",{"template":694},"content:en-us:blog:authors:eric-schurter.yml","en-us/blog/authors/eric-schurter.yml","en-us/blog/authors/eric-schurter",{"_path":2785,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2786,"config":2790,"_id":2791,"_type":32,"title":2787,"_source":34,"_file":2792,"_stem":2793,"_extension":37},"/en-us/blog/authors/erica-huang",{"name":2787,"config":2788},"Erica Huang",{"headshot":7,"ctfId":2789},"exhuang",{"template":694},"content:en-us:blog:authors:erica-huang.yml","en-us/blog/authors/erica-huang.yml","en-us/blog/authors/erica-huang",{"_path":2795,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2796,"config":2800,"_id":2801,"_type":32,"title":2797,"_source":34,"_file":2802,"_stem":2803,"_extension":37},"/en-us/blog/authors/erica-lindberg",{"name":2797,"config":2798},"Erica Lindberg",{"headshot":725,"ctfId":2799},"Erica-Lindberg",{"template":694},"content:en-us:blog:authors:erica-lindberg.yml","en-us/blog/authors/erica-lindberg.yml","en-us/blog/authors/erica-lindberg",{"_path":2805,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2806,"config":2810,"_id":2811,"_type":32,"title":2807,"_source":34,"_file":2812,"_stem":2813,"_extension":37},"/en-us/blog/authors/erich-wegscheider",{"name":2807,"config":2808},"Erich Wegscheider",{"headshot":7,"ctfId":2809},"ewegscheider",{"template":694},"content:en-us:blog:authors:erich-wegscheider.yml","en-us/blog/authors/erich-wegscheider.yml","en-us/blog/authors/erich-wegscheider",{"_path":2815,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2816,"config":2820,"_id":2821,"_type":32,"title":2817,"_source":34,"_file":2822,"_stem":2823,"_extension":37},"/en-us/blog/authors/erick-banks",{"name":2817,"config":2818},"Erick Banks",{"headshot":725,"ctfId":2819},"4CGXhAxudTq69aZOtPnLfu",{"template":694},"content:en-us:blog:authors:erick-banks.yml","en-us/blog/authors/erick-banks.yml","en-us/blog/authors/erick-banks",{"_path":2825,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2826,"config":2830,"_id":2831,"_type":32,"title":2827,"_source":34,"_file":2832,"_stem":2833,"_extension":37},"/en-us/blog/authors/erika-feldman",{"name":2827,"config":2828},"Erika Feldman",{"headshot":725,"ctfId":2829},"78oCat8vvbl6mzXsLawd9d",{"template":694},"content:en-us:blog:authors:erika-feldman.yml","en-us/blog/authors/erika-feldman.yml","en-us/blog/authors/erika-feldman",{"_path":2835,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2836,"config":2840,"_id":2841,"_type":32,"title":2842,"_source":34,"_file":2843,"_stem":2844,"_extension":37},"/en-us/blog/authors/erin-krengel-pulumi",{"name":2837,"config":2838},"Erin Krengel, Pulumi",{"headshot":725,"ctfId":2839},"Erin-Krengel-Pulumi",{"template":694},"content:en-us:blog:authors:erin-krengel-pulumi.yml","Erin Krengel Pulumi","en-us/blog/authors/erin-krengel-pulumi.yml","en-us/blog/authors/erin-krengel-pulumi",{"_path":2846,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2847,"config":2851,"_id":2852,"_type":32,"title":2853,"_source":34,"_file":2854,"_stem":2855,"_extension":37},"/en-us/blog/authors/ernst-van-nierop",{"name":2848,"config":2849},"Ernst van Nierop",{"headshot":7,"ctfId":2850},"ernstvn",{"template":694},"content:en-us:blog:authors:ernst-van-nierop.yml","Ernst Van Nierop","en-us/blog/authors/ernst-van-nierop.yml","en-us/blog/authors/ernst-van-nierop",{"_path":2857,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2858,"config":2862,"_id":2863,"_type":32,"title":2859,"_source":34,"_file":2864,"_stem":2865,"_extension":37},"/en-us/blog/authors/esther-shein",{"name":2859,"config":2860},"Esther Shein",{"headshot":725,"ctfId":2861},"Esther-Shein",{"template":694},"content:en-us:blog:authors:esther-shein.yml","en-us/blog/authors/esther-shein.yml","en-us/blog/authors/esther-shein",{"_path":2867,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2868,"config":2873,"_id":2874,"_type":32,"title":2869,"_source":34,"_file":2875,"_stem":2876,"_extension":37},"/en-us/blog/authors/ethan-strike",{"name":2869,"config":2870},"Ethan Strike",{"headshot":2871,"ctfId":2872},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679067/Blog/Author%20Headshots/estrike-headshot.png","estrike",{"template":694},"content:en-us:blog:authors:ethan-strike.yml","en-us/blog/authors/ethan-strike.yml","en-us/blog/authors/ethan-strike",{"_path":2878,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2879,"config":2883,"_id":2884,"_type":32,"title":2880,"_source":34,"_file":2885,"_stem":2886,"_extension":37},"/en-us/blog/authors/ethan-urie",{"name":2880,"config":2881},"Ethan Urie",{"headshot":725,"ctfId":2882},"mJhtQw4TY9ZRNF7dfitIF",{"template":694},"content:en-us:blog:authors:ethan-urie.yml","en-us/blog/authors/ethan-urie.yml","en-us/blog/authors/ethan-urie",{"_path":2888,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2889,"config":2893,"_id":2894,"_type":32,"title":2890,"_source":34,"_file":2895,"_stem":2896,"_extension":37},"/en-us/blog/authors/eugene-lim",{"name":2890,"config":2891},"Eugene Lim",{"headshot":725,"ctfId":2892},"6KHdIdghkUfSTzV2MzxNcj",{"template":694},"content:en-us:blog:authors:eugene-lim.yml","en-us/blog/authors/eugene-lim.yml","en-us/blog/authors/eugene-lim",{"_path":2898,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2899,"config":2903,"_id":2904,"_type":32,"title":2900,"_source":34,"_file":2905,"_stem":2906,"_extension":37},"/en-us/blog/authors/eugenia-hannon",{"name":2900,"config":2901},"Eugenia Hannon",{"headshot":7,"ctfId":2902},"eugeniah",{"template":694},"content:en-us:blog:authors:eugenia-hannon.yml","en-us/blog/authors/eugenia-hannon.yml","en-us/blog/authors/eugenia-hannon",{"_path":2908,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2909,"config":2913,"_id":2914,"_type":32,"title":2910,"_source":34,"_file":2915,"_stem":2916,"_extension":37},"/en-us/blog/authors/ev-kontsevoy",{"name":2910,"config":2911},"Ev Kontsevoy",{"headshot":7,"ctfId":2912},"ekontsevoy",{"template":694},"content:en-us:blog:authors:ev-kontsevoy.yml","en-us/blog/authors/ev-kontsevoy.yml","en-us/blog/authors/ev-kontsevoy",{"_path":2918,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2919,"config":2923,"_id":2924,"_type":32,"title":2920,"_source":34,"_file":2925,"_stem":2926,"_extension":37},"/en-us/blog/authors/eva-sasson",{"name":2920,"config":2921},"Eva Sasson",{"headshot":725,"ctfId":2922},"Eva-Sasson",{"template":694},"content:en-us:blog:authors:eva-sasson.yml","en-us/blog/authors/eva-sasson.yml","en-us/blog/authors/eva-sasson",{"_path":2928,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2929,"config":2934,"_id":2935,"_type":32,"title":2930,"_source":34,"_file":2936,"_stem":2937,"_extension":37},"/en-us/blog/authors/fabian-zimmer",{"name":2930,"config":2931},"Fabian Zimmer",{"headshot":2932,"ctfId":2933},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750713473/q6awwqbxtg0a4x9gtmhs.png","3TK88UogcX5lx83kWMVuvI",{"template":694},"content:en-us:blog:authors:fabian-zimmer.yml","en-us/blog/authors/fabian-zimmer.yml","en-us/blog/authors/fabian-zimmer",{"_path":2939,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2940,"config":2944,"_id":2945,"_type":32,"title":2941,"_source":34,"_file":2946,"_stem":2947,"_extension":37},"/en-us/blog/authors/fabio-akita",{"name":2941,"config":2942},"Fabio Akita",{"headshot":725,"ctfId":2943},"Fabio-Akita",{"template":694},"content:en-us:blog:authors:fabio-akita.yml","en-us/blog/authors/fabio-akita.yml","en-us/blog/authors/fabio-akita",{"_path":2949,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2950,"config":2954,"_id":2955,"_type":32,"title":2951,"_source":34,"_file":2956,"_stem":2957,"_extension":37},"/en-us/blog/authors/fabio-busatto",{"name":2951,"config":2952},"Fabio Busatto",{"headshot":7,"ctfId":2953},"bikebilly",{"template":694},"content:en-us:blog:authors:fabio-busatto.yml","en-us/blog/authors/fabio-busatto.yml","en-us/blog/authors/fabio-busatto",{"_path":2959,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2960,"config":2965,"_id":2966,"_type":32,"title":2961,"_source":34,"_file":2967,"_stem":2968,"_extension":37},"/en-us/blog/authors/fabio-pitino",{"name":2961,"config":2962},"Fabio Pitino",{"headshot":2963,"ctfId":2964},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659958/Blog/Author%20Headshots/fabiopitino-headshot.jpg","fabiopitino",{"template":694},"content:en-us:blog:authors:fabio-pitino.yml","en-us/blog/authors/fabio-pitino.yml","en-us/blog/authors/fabio-pitino",{"_path":2970,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2971,"config":2975,"_id":2976,"_type":32,"title":2972,"_source":34,"_file":2977,"_stem":2978,"_extension":37},"/en-us/blog/authors/farnoosh-seifoddini",{"name":2972,"config":2973},"Farnoosh Seifoddini",{"headshot":7,"ctfId":2974},"fseifoddini",{"template":694},"content:en-us:blog:authors:farnoosh-seifoddini.yml","en-us/blog/authors/farnoosh-seifoddini.yml","en-us/blog/authors/farnoosh-seifoddini",{"_path":2980,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2981,"config":2985,"_id":2986,"_type":32,"title":2982,"_source":34,"_file":2987,"_stem":2988,"_extension":37},"/en-us/blog/authors/fatih-acet",{"name":2982,"config":2983},"Fatih Acet",{"headshot":7,"ctfId":2984},"fatihacet",{"template":694},"content:en-us:blog:authors:fatih-acet.yml","en-us/blog/authors/fatih-acet.yml","en-us/blog/authors/fatih-acet",{"_path":2990,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":2991,"config":2996,"_id":2997,"_type":32,"title":2992,"_source":34,"_file":2998,"_stem":2999,"_extension":37},"/en-us/blog/authors/fatima-sarah-khalid",{"name":2992,"config":2993},"Fatima Sarah Khalid",{"headshot":2994,"ctfId":2995},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663337/Blog/Author%20Headshots/sugaroverflow-headshot.jpg","sugaroverflow",{"template":694},"content:en-us:blog:authors:fatima-sarah-khalid.yml","en-us/blog/authors/fatima-sarah-khalid.yml","en-us/blog/authors/fatima-sarah-khalid",{"_path":3001,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3002,"config":3007,"_id":3008,"_type":32,"title":3003,"_source":34,"_file":3009,"_stem":3010,"_extension":37},"/en-us/blog/authors/fernando-diaz",{"name":3003,"config":3004},"Fernando Diaz",{"headshot":3005,"ctfId":3006},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659556/Blog/Author%20Headshots/fern_diaz.png","fjdiaz",{"template":694},"content:en-us:blog:authors:fernando-diaz.yml","en-us/blog/authors/fernando-diaz.yml","en-us/blog/authors/fernando-diaz",{"_path":3012,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3013,"config":3017,"_id":3018,"_type":32,"title":3014,"_source":34,"_file":3019,"_stem":3020,"_extension":37},"/en-us/blog/authors/filipa-lacerda",{"name":3014,"config":3015},"Filipa Lacerda",{"headshot":7,"ctfId":3016},"filipa",{"template":694},"content:en-us:blog:authors:filipa-lacerda.yml","en-us/blog/authors/filipa-lacerda.yml","en-us/blog/authors/filipa-lacerda",{"_path":3022,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3023,"config":3028,"_id":3029,"_type":32,"title":3030,"_source":34,"_file":3031,"_stem":3032,"_extension":37},"/en-us/blog/authors/flix-veillette-potvin",{"name":3024,"config":3025}," Félix Veillette-Potvin",{"headshot":3026,"ctfId":3027},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662606/Blog/Author%20Headshots/_F%C3%A9lix_Veillette-Potvin_headshot.png","3nkwcdE5K3Uw9nrovEngxW",{"template":694},"content:en-us:blog:authors:flix-veillette-potvin.yml","Flix Veillette Potvin","en-us/blog/authors/flix-veillette-potvin.yml","en-us/blog/authors/flix-veillette-potvin",{"_path":3034,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3035,"config":3039,"_id":3040,"_type":32,"title":3036,"_source":34,"_file":3041,"_stem":3042,"_extension":37},"/en-us/blog/authors/forrest-brazeal",{"name":3036,"config":3037},"Forrest Brazeal",{"headshot":7,"ctfId":3038},"fbrazeal",{"template":694},"content:en-us:blog:authors:forrest-brazeal.yml","en-us/blog/authors/forrest-brazeal.yml","en-us/blog/authors/forrest-brazeal",{"_path":3044,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3045,"config":3049,"_id":3050,"_type":32,"title":3046,"_source":34,"_file":3051,"_stem":3052,"_extension":37},"/en-us/blog/authors/francis-ofungwu",{"name":3046,"config":3047},"Francis Ofungwu",{"headshot":725,"ctfId":3048},"fofungwu",{"template":694},"content:en-us:blog:authors:francis-ofungwu.yml","en-us/blog/authors/francis-ofungwu.yml","en-us/blog/authors/francis-ofungwu",{"_path":3054,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3055,"config":3060,"_id":3061,"_type":32,"title":3062,"_source":34,"_file":3063,"_stem":3064,"_extension":37},"/en-us/blog/authors/frdric-caplette",{"name":3056,"config":3057},"Frédéric Caplette",{"headshot":3058,"ctfId":3059},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661878/Blog/Author%20Headshots/frederic_caplette_headshot.png","6nMRwNMwciKSX03zmbBbPF",{"template":694},"content:en-us:blog:authors:frdric-caplette.yml","Frdric Caplette","en-us/blog/authors/frdric-caplette.yml","en-us/blog/authors/frdric-caplette",{"_path":3066,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3067,"config":3072,"_id":3073,"_type":32,"title":3068,"_source":34,"_file":3074,"_stem":3075,"_extension":37},"/en-us/blog/authors/gabe-weaver",{"name":3068,"config":3069},"Gabe Weaver",{"headshot":3070,"ctfId":3071},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667605/Blog/Author%20Headshots/gweaver-headshot.jpg","gweaver",{"template":694},"content:en-us:blog:authors:gabe-weaver.yml","en-us/blog/authors/gabe-weaver.yml","en-us/blog/authors/gabe-weaver",{"_path":3077,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3078,"config":3083,"_id":3084,"_type":32,"title":3079,"_source":34,"_file":3085,"_stem":3086,"_extension":37},"/en-us/blog/authors/gabriel-engel",{"name":3079,"config":3080},"Gabriel Engel",{"headshot":3081,"ctfId":3082},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664747/Blog/Author%20Headshots/gabrielengel_gl-headshot.jpg","gabrielengelgl",{"template":694},"content:en-us:blog:authors:gabriel-engel.yml","en-us/blog/authors/gabriel-engel.yml","en-us/blog/authors/gabriel-engel",{"_path":3088,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3089,"config":3093,"_id":3094,"_type":32,"title":3090,"_source":34,"_file":3095,"_stem":3096,"_extension":37},"/en-us/blog/authors/gabriel-le-breton",{"name":3090,"config":3091},"Gabriel Le Breton",{"headshot":725,"ctfId":3092},"Gabriel-Le-Breton",{"template":694},"content:en-us:blog:authors:gabriel-le-breton.yml","en-us/blog/authors/gabriel-le-breton.yml","en-us/blog/authors/gabriel-le-breton",{"_path":3098,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3099,"config":3104,"_id":3105,"_type":32,"title":3100,"_source":34,"_file":3106,"_stem":3107,"_extension":37},"/en-us/blog/authors/gabriel-mazetto",{"name":3100,"config":3101},"Gabriel Mazetto",{"headshot":3102,"ctfId":3103},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678982/Blog/Author%20Headshots/brodock-headshot.jpg","brodock",{"template":694},"content:en-us:blog:authors:gabriel-mazetto.yml","en-us/blog/authors/gabriel-mazetto.yml","en-us/blog/authors/gabriel-mazetto",{"_path":3109,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3110,"config":3115,"_id":3116,"_type":32,"title":3111,"_source":34,"_file":3117,"_stem":3118,"_extension":37},"/en-us/blog/authors/gavin-peltz",{"name":3111,"config":3112},"Gavin Peltz",{"headshot":3113,"ctfId":3114},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662831/Blog/Author%20Headshots/gavin_peltz.png","27UwgXDMqa0oBWV93rXTgN",{"template":694},"content:en-us:blog:authors:gavin-peltz.yml","en-us/blog/authors/gavin-peltz.yml","en-us/blog/authors/gavin-peltz",{"_path":3120,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3121,"config":3126,"_id":3127,"_type":32,"title":3122,"_source":34,"_file":3128,"_stem":3129,"_extension":37},"/en-us/blog/authors/george-kichukov",{"name":3122,"config":3123},"George Kichukov",{"headshot":3124,"ctfId":3125},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664866/Blog/Author%20Headshots/george_kichukov.png","7e8bn05u4pXwYjkRrqdprE",{"template":694},"content:en-us:blog:authors:george-kichukov.yml","en-us/blog/authors/george-kichukov.yml","en-us/blog/authors/george-kichukov",{"_path":3131,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3132,"config":3136,"_id":3137,"_type":32,"title":3133,"_source":34,"_file":3138,"_stem":3139,"_extension":37},"/en-us/blog/authors/gerard-hickey",{"name":3133,"config":3134},"Gerard Hickey",{"headshot":7,"ctfId":3135},"ghickey",{"template":694},"content:en-us:blog:authors:gerard-hickey.yml","en-us/blog/authors/gerard-hickey.yml","en-us/blog/authors/gerard-hickey",{"_path":3141,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3142,"config":3147,"_id":3148,"_type":32,"title":3149,"_source":34,"_file":3150,"_stem":3151,"_extension":37},"/en-us/blog/authors/gerardo-lopez-fernandez",{"name":3143,"config":3144},"Gerardo Lopez-Fernandez",{"headshot":3145,"ctfId":3146},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679925/Blog/Author%20Headshots/glopezfernandez-headshot.jpg","glopezfernandez",{"template":694},"content:en-us:blog:authors:gerardo-lopez-fernandez.yml","Gerardo Lopez Fernandez","en-us/blog/authors/gerardo-lopez-fernandez.yml","en-us/blog/authors/gerardo-lopez-fernandez",{"_path":3153,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3154,"config":3159,"_id":3160,"_type":32,"title":3155,"_source":34,"_file":3161,"_stem":3162,"_extension":37},"/en-us/blog/authors/gina-doyle",{"name":3155,"config":3156},"Gina Doyle",{"headshot":3157,"ctfId":3158},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679201/Blog/Author%20Headshots/gdoyle-headshot.png","gdoyle",{"template":694},"content:en-us:blog:authors:gina-doyle.yml","en-us/blog/authors/gina-doyle.yml","en-us/blog/authors/gina-doyle",{"_path":3164,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3165,"config":3168,"_id":3169,"_type":32,"title":3170,"_source":34,"_file":3171,"_stem":3172,"_extension":37},"/en-us/blog/authors/gitlab",{"name":3166,"config":3167},"GitLab",{"headshot":725,"ctfId":3166},{"template":694},"content:en-us:blog:authors:gitlab.yml","Gitlab","en-us/blog/authors/gitlab.yml","en-us/blog/authors/gitlab",{"_path":3174,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3175,"config":3179,"_id":3180,"_type":32,"title":3181,"_source":34,"_file":3182,"_stem":3183,"_extension":37},"/en-us/blog/authors/gitlab-ai-assisted-group",{"name":3176,"config":3177},"GitLab AI Assisted Group",{"headshot":725,"ctfId":3178},"GitLab-AI-Assisted-Group",{"template":694},"content:en-us:blog:authors:gitlab-ai-assisted-group.yml","Gitlab Ai Assisted Group","en-us/blog/authors/gitlab-ai-assisted-group.yml","en-us/blog/authors/gitlab-ai-assisted-group",{"_path":3185,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3186,"config":3190,"_id":3191,"_type":32,"title":3192,"_source":34,"_file":3193,"_stem":3194,"_extension":37},"/en-us/blog/authors/gitlab-france-team",{"name":3187,"config":3188},"GitLab France Team",{"headshot":725,"ctfId":3189},"1gfblqN0ibYIuWGk7MOTny",{"template":694},"content:en-us:blog:authors:gitlab-france-team.yml","Gitlab France Team","en-us/blog/authors/gitlab-france-team.yml","en-us/blog/authors/gitlab-france-team",{"_path":3196,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3197,"config":3201,"_id":3202,"_type":32,"title":3203,"_source":34,"_file":3204,"_stem":3205,"_extension":37},"/en-us/blog/authors/gitlab-germany-team",{"name":3198,"config":3199},"GitLab Germany Team",{"headshot":725,"ctfId":3200},"6tNquF8jQeRRRi8k3ZXpvS",{"template":694},"content:en-us:blog:authors:gitlab-germany-team.yml","Gitlab Germany Team","en-us/blog/authors/gitlab-germany-team.yml","en-us/blog/authors/gitlab-germany-team",{"_path":3207,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3208,"config":3212,"_id":3213,"_type":32,"title":3214,"_source":34,"_file":3215,"_stem":3216,"_extension":37},"/en-us/blog/authors/gitlab-japan-team",{"name":3209,"config":3210},"GitLab Japan Team",{"headshot":725,"ctfId":3211},"5YWHF8vG80rluQ41QjgP7V",{"template":694},"content:en-us:blog:authors:gitlab-japan-team.yml","Gitlab Japan Team","en-us/blog/authors/gitlab-japan-team.yml","en-us/blog/authors/gitlab-japan-team",{"_path":3218,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3219,"config":3223,"_id":3224,"_type":32,"title":3225,"_source":34,"_file":3226,"_stem":3227,"_extension":37},"/en-us/blog/authors/gitlab-security-team",{"name":3220,"config":3221},"GitLab Security Team",{"headshot":725,"ctfId":3222},"GitLab-Security-Team",{"template":694},"content:en-us:blog:authors:gitlab-security-team.yml","Gitlab Security Team","en-us/blog/authors/gitlab-security-team.yml","en-us/blog/authors/gitlab-security-team",{"_path":3229,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3230,"config":3234,"_id":3235,"_type":32,"title":3236,"_source":34,"_file":3237,"_stem":3238,"_extension":37},"/en-us/blog/authors/gitlab-team",{"name":3231,"config":3232},"GitLab Team",{"headshot":725,"ctfId":3233},"GitLab-Team",{"template":694},"content:en-us:blog:authors:gitlab-team.yml","Gitlab Team","en-us/blog/authors/gitlab-team.yml","en-us/blog/authors/gitlab-team",{"_path":3240,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3241,"config":3245,"_id":3246,"_type":32,"title":3247,"_source":34,"_file":3248,"_stem":3249,"_extension":37},"/en-us/blog/authors/gitlab-vulnerability-research-team",{"name":3242,"config":3243},"GitLab Vulnerability Research Team",{"headshot":725,"ctfId":3244},"GitLab-Vulnerability-Research-Team",{"template":694},"content:en-us:blog:authors:gitlab-vulnerability-research-team.yml","Gitlab Vulnerability Research Team","en-us/blog/authors/gitlab-vulnerability-research-team.yml","en-us/blog/authors/gitlab-vulnerability-research-team",{"_path":3251,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3252,"config":3256,"_id":3257,"_type":32,"title":3253,"_source":34,"_file":3258,"_stem":3259,"_extension":37},"/en-us/blog/authors/goetz-buerkle",{"name":3253,"config":3254},"Goetz Buerkle",{"headshot":725,"ctfId":3255},"Goetz-Buerkle",{"template":694},"content:en-us:blog:authors:goetz-buerkle.yml","en-us/blog/authors/goetz-buerkle.yml","en-us/blog/authors/goetz-buerkle",{"_path":3261,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3262,"config":3267,"_id":3268,"_type":32,"title":3263,"_source":34,"_file":3269,"_stem":3270,"_extension":37},"/en-us/blog/authors/gosia-ksionek",{"name":3263,"config":3264},"Gosia Ksionek",{"headshot":3265,"ctfId":3266},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680521/Blog/Author%20Headshots/mksionek-headshot.jpg","mksionek",{"template":694},"content:en-us:blog:authors:gosia-ksionek.yml","en-us/blog/authors/gosia-ksionek.yml","en-us/blog/authors/gosia-ksionek",{"_path":3272,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3273,"config":3278,"_id":3279,"_type":32,"title":3274,"_source":34,"_file":3280,"_stem":3281,"_extension":37},"/en-us/blog/authors/grant-hickman",{"name":3274,"config":3275},"Grant Hickman",{"headshot":3276,"ctfId":3277},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682570/Blog/Author%20Headshots/g.png","ghickman",{"template":694},"content:en-us:blog:authors:grant-hickman.yml","en-us/blog/authors/grant-hickman.yml","en-us/blog/authors/grant-hickman",{"_path":3283,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3284,"config":3289,"_id":3290,"_type":32,"title":3285,"_source":34,"_file":3291,"_stem":3292,"_extension":37},"/en-us/blog/authors/grant-young",{"name":3285,"config":3286},"Grant Young",{"headshot":3287,"ctfId":3288},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666346/Blog/Author%20Headshots/grantyoung-headshot.jpg","grantyoung",{"template":694},"content:en-us:blog:authors:grant-young.yml","en-us/blog/authors/grant-young.yml","en-us/blog/authors/grant-young",{"_path":3294,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3295,"config":3299,"_id":3300,"_type":32,"title":3296,"_source":34,"_file":3301,"_stem":3302,"_extension":37},"/en-us/blog/authors/greg-alfaro",{"name":3296,"config":3297},"Greg Alfaro",{"headshot":7,"ctfId":3298},"7zzMrU9Fbdw0QGxdFjJ1jE",{"template":694},"content:en-us:blog:authors:greg-alfaro.yml","en-us/blog/authors/greg-alfaro.yml","en-us/blog/authors/greg-alfaro",{"_path":3304,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3305,"config":3309,"_id":3310,"_type":32,"title":3306,"_source":34,"_file":3311,"_stem":3312,"_extension":37},"/en-us/blog/authors/greg-johnson",{"name":3306,"config":3307},"Greg Johnson",{"headshot":7,"ctfId":3308},"codeEmitter",{"template":694},"content:en-us:blog:authors:greg-johnson.yml","en-us/blog/authors/greg-johnson.yml","en-us/blog/authors/greg-johnson",{"_path":3314,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3315,"config":3320,"_id":3321,"_type":32,"title":3316,"_source":34,"_file":3322,"_stem":3323,"_extension":37},"/en-us/blog/authors/greg-myers",{"name":3316,"config":3317},"Greg Myers",{"headshot":3318,"ctfId":3319},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665570/Blog/Author%20Headshots/greg_myers_headshot.png","2uUYKgdtszyGfoOHbakiQX",{"template":694},"content:en-us:blog:authors:greg-myers.yml","en-us/blog/authors/greg-myers.yml","en-us/blog/authors/greg-myers",{"_path":3325,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3326,"config":3330,"_id":3331,"_type":32,"title":3327,"_source":34,"_file":3332,"_stem":3333,"_extension":37},"/en-us/blog/authors/grzegorz-bizon",{"name":3327,"config":3328},"Grzegorz Bizon",{"headshot":725,"ctfId":3329},"Grzegorz-Bizon",{"template":694},"content:en-us:blog:authors:grzegorz-bizon.yml","en-us/blog/authors/grzegorz-bizon.yml","en-us/blog/authors/grzegorz-bizon",{"_path":3335,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3336,"config":3340,"_id":3341,"_type":32,"title":3337,"_source":34,"_file":3342,"_stem":3343,"_extension":37},"/en-us/blog/authors/guenjun-yoo",{"name":3337,"config":3338},"Guenjun Yoo",{"headshot":7,"ctfId":3339},"gyoo",{"template":694},"content:en-us:blog:authors:guenjun-yoo.yml","en-us/blog/authors/guenjun-yoo.yml","en-us/blog/authors/guenjun-yoo",{"_path":3345,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3346,"config":3350,"_id":3351,"_type":32,"title":3352,"_source":34,"_file":3353,"_stem":3354,"_extension":37},"/en-us/blog/authors/guest-author-andr-arko-of-ruby-together",{"name":3347,"config":3348},"Guest author André Arko of Ruby Together",{"headshot":725,"ctfId":3349},"Guest-author-Andr-Arko-of-Ruby-Together",{"template":694},"content:en-us:blog:authors:guest-author-andr-arko-of-ruby-together.yml","Guest Author Andr Arko Of Ruby Together","en-us/blog/authors/guest-author-andr-arko-of-ruby-together.yml","en-us/blog/authors/guest-author-andr-arko-of-ruby-together",{"_path":3356,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3357,"config":3361,"_id":3362,"_type":32,"title":3363,"_source":34,"_file":3364,"_stem":3365,"_extension":37},"/en-us/blog/authors/guest-author-andr-miranda",{"name":3358,"config":3359},"Guest author André Miranda",{"headshot":725,"ctfId":3360},"Guest-author-Andr-Miranda",{"template":694},"content:en-us:blog:authors:guest-author-andr-miranda.yml","Guest Author Andr Miranda","en-us/blog/authors/guest-author-andr-miranda.yml","en-us/blog/authors/guest-author-andr-miranda",{"_path":3367,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3368,"config":3374,"_id":3375,"_type":32,"title":3376,"_source":34,"_file":3377,"_stem":3378,"_extension":37},"/en-us/blog/authors/gufran-yeilyurt-obss",{"name":3369,"config":3370},"Gufran Yeşilyurt, OBSS",{"headshot":3371,"linkedin":3372,"ctfId":3373},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666380/Blog/Author%20Headshots/1643972670650.jpg","https://www.linkedin.com/in/gufran-yesilyurt/","2ydYMU86my71BUASual2EI",{"template":694},"content:en-us:blog:authors:gufran-yeilyurt-obss.yml","Gufran Yeilyurt Obss","en-us/blog/authors/gufran-yeilyurt-obss.yml","en-us/blog/authors/gufran-yeilyurt-obss",{"_path":3380,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3381,"config":3385,"_id":3386,"_type":32,"title":3387,"_source":34,"_file":3388,"_stem":3389,"_extension":37},"/en-us/blog/authors/gustaw-fit-of-zoopla",{"name":3382,"config":3383},"Gustaw Fit of Zoopla",{"headshot":725,"ctfId":3384},"Gustaw-Fit-of-Zoopla",{"template":694},"content:en-us:blog:authors:gustaw-fit-of-zoopla.yml","Gustaw Fit Of Zoopla","en-us/blog/authors/gustaw-fit-of-zoopla.yml","en-us/blog/authors/gustaw-fit-of-zoopla",{"_path":3391,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3392,"config":3396,"_id":3397,"_type":32,"title":3398,"_source":34,"_file":3399,"_stem":3400,"_extension":37},"/en-us/blog/authors/guy-bar-gil-product-manager-at-whitesource",{"name":3393,"config":3394},"Guy Bar-Gil, Product Manager at WhiteSource",{"headshot":725,"ctfId":3395},"Guy-BarGil-Product-Manager-at-WhiteSource",{"template":694},"content:en-us:blog:authors:guy-bar-gil-product-manager-at-whitesource.yml","Guy Bar Gil Product Manager At Whitesource","en-us/blog/authors/guy-bar-gil-product-manager-at-whitesource.yml","en-us/blog/authors/guy-bar-gil-product-manager-at-whitesource",{"_path":3402,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3403,"config":3407,"_id":3408,"_type":32,"title":3404,"_source":34,"_file":3409,"_stem":3410,"_extension":37},"/en-us/blog/authors/gyan-chawdhary",{"name":3404,"config":3405},"Gyan Chawdhary",{"headshot":725,"ctfId":3406},"Gyan-Chawdhary",{"template":694},"content:en-us:blog:authors:gyan-chawdhary.yml","en-us/blog/authors/gyan-chawdhary.yml","en-us/blog/authors/gyan-chawdhary",{"_path":3412,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3413,"config":3418,"_id":3419,"_type":32,"title":3414,"_source":34,"_file":3420,"_stem":3421,"_extension":37},"/en-us/blog/authors/haim-snir",{"name":3414,"config":3415},"Haim Snir",{"headshot":3416,"ctfId":3417},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664386/Blog/Author%20Headshots/hsnir1-headshot.jpg","hsnir1",{"template":694},"content:en-us:blog:authors:haim-snir.yml","en-us/blog/authors/haim-snir.yml","en-us/blog/authors/haim-snir",{"_path":3423,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3424,"config":3429,"_id":3430,"_type":32,"title":3431,"_source":34,"_file":3432,"_stem":3433,"_extension":37},"/en-us/blog/authors/hakeem-abdul-razak",{"name":3425,"config":3426},"Hakeem Abdul-Razak",{"headshot":3427,"ctfId":3428},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662077/Blog/Author%20Headshots/Hakeem_Abdul-Razak_headshot.png","7H6nuZfVCK5mqJBK4fuaDH",{"template":694},"content:en-us:blog:authors:hakeem-abdul-razak.yml","Hakeem Abdul Razak","en-us/blog/authors/hakeem-abdul-razak.yml","en-us/blog/authors/hakeem-abdul-razak",{"_path":3435,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3436,"config":3440,"_id":3442,"_type":32,"title":3437,"_source":34,"_file":3443,"_stem":3444,"_extension":37},"/en-us/blog/authors/halil-coban",{"name":3437,"config":3438},"Halil Coban",{"headshot":3439},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751039592/hlxd6cnlgdioobqfvwus.png",{"template":694,"gitlabHandle":3441},"halilcoban","content:en-us:blog:authors:halil-coban.yml","en-us/blog/authors/halil-coban.yml","en-us/blog/authors/halil-coban",{"_path":3446,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3447,"config":3452,"_id":3453,"_type":32,"title":3448,"_source":34,"_file":3454,"_stem":3455,"_extension":37},"/en-us/blog/authors/hannah-sutor",{"name":3448,"config":3449},"Hannah Sutor",{"headshot":3450,"ctfId":3451},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665588/Blog/Author%20Headshots/hsutor-headshot.png","hsutor",{"template":694},"content:en-us:blog:authors:hannah-sutor.yml","en-us/blog/authors/hannah-sutor.yml","en-us/blog/authors/hannah-sutor",{"_path":3457,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3458,"config":3463,"_id":3464,"_type":32,"title":3459,"_source":34,"_file":3465,"_stem":3466,"_extension":37},"/en-us/blog/authors/harjeet-sharma",{"name":3459,"config":3460},"Harjeet Sharma",{"headshot":3461,"ctfId":3462},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665497/Blog/Author%20Headshots/harjeet_sharma_headshot.png","723O6GGQQEu75MCuhw6lqh",{"template":694},"content:en-us:blog:authors:harjeet-sharma.yml","en-us/blog/authors/harjeet-sharma.yml","en-us/blog/authors/harjeet-sharma",{"_path":3468,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3469,"config":3473,"_id":3474,"_type":32,"title":3470,"_source":34,"_file":3475,"_stem":3476,"_extension":37},"/en-us/blog/authors/haydn-mackay",{"name":3470,"config":3471},"Haydn Mackay",{"headshot":725,"ctfId":3472},"Haydn-Mackay",{"template":694},"content:en-us:blog:authors:haydn-mackay.yml","en-us/blog/authors/haydn-mackay.yml","en-us/blog/authors/haydn-mackay",{"_path":3478,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3479,"config":3483,"_id":3484,"_type":32,"title":3480,"_source":34,"_file":3485,"_stem":3486,"_extension":37},"/en-us/blog/authors/hazel-yang",{"name":3480,"config":3481},"Hazel Yang",{"headshot":7,"ctfId":3482},"hazelyang",{"template":694},"content:en-us:blog:authors:hazel-yang.yml","en-us/blog/authors/hazel-yang.yml","en-us/blog/authors/hazel-yang",{"_path":3488,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3489,"config":3493,"_id":3494,"_type":32,"title":3495,"_source":34,"_file":3496,"_stem":3497,"_extension":37},"/en-us/blog/authors/heather-mcnamee",{"name":3490,"config":3491},"Heather McNamee",{"headshot":725,"ctfId":3492},"Heather-McNamee",{"template":694},"content:en-us:blog:authors:heather-mcnamee.yml","Heather Mcnamee","en-us/blog/authors/heather-mcnamee.yml","en-us/blog/authors/heather-mcnamee",{"_path":3499,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3500,"config":3504,"_id":3505,"_type":32,"title":3501,"_source":34,"_file":3506,"_stem":3507,"_extension":37},"/en-us/blog/authors/heather-simpson",{"name":3501,"config":3502},"Heather Simpson",{"headshot":725,"ctfId":3503},"hsimpson",{"template":694},"content:en-us:blog:authors:heather-simpson.yml","en-us/blog/authors/heather-simpson.yml","en-us/blog/authors/heather-simpson",{"_path":3509,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3510,"config":3515,"_id":3516,"_type":32,"title":3511,"_source":34,"_file":3517,"_stem":3518,"_extension":37},"/en-us/blog/authors/hillary-benson",{"name":3511,"config":3512},"Hillary Benson",{"headshot":3513,"ctfId":3514},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683387/Blog/Author%20Headshots/hillarybensonheadshot.png","45VEFoISCoOhRXzyPyAf1x",{"template":694},"content:en-us:blog:authors:hillary-benson.yml","en-us/blog/authors/hillary-benson.yml","en-us/blog/authors/hillary-benson",{"_path":3520,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3521,"config":3525,"_id":3527,"_type":32,"title":3522,"_source":34,"_file":3528,"_stem":3529,"_extension":37},"/en-us/blog/authors/himanshu-kapoor",{"name":3522,"config":3523},"Himanshu Kapoor",{"headshot":3524},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1754585086/hfuoktkehmq0jyfybrnt.png",{"template":694,"gitlabHandle":3526},"himkp","content:en-us:blog:authors:himanshu-kapoor.yml","en-us/blog/authors/himanshu-kapoor.yml","en-us/blog/authors/himanshu-kapoor",{"_path":3531,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3532,"config":3537,"_id":3538,"_type":32,"title":3533,"_source":34,"_file":3539,"_stem":3540,"_extension":37},"/en-us/blog/authors/hiroki-suezawa",{"name":3533,"config":3534},"Hiroki Suezawa",{"headshot":3535,"ctfId":3536},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662370/Blog/Author%20Headshots/hiroki_suezawa.png","cw6ZIj0yjr1uw2LAFr23h",{"template":694},"content:en-us:blog:authors:hiroki-suezawa.yml","en-us/blog/authors/hiroki-suezawa.yml","en-us/blog/authors/hiroki-suezawa",{"_path":3542,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3543,"config":3547,"_id":3548,"_type":32,"title":3544,"_source":34,"_file":3549,"_stem":3550,"_extension":37},"/en-us/blog/authors/holly-reynolds",{"name":3544,"config":3545},"Holly Reynolds",{"headshot":7,"ctfId":3546},"hollyreynolds",{"template":694},"content:en-us:blog:authors:holly-reynolds.yml","en-us/blog/authors/holly-reynolds.yml","en-us/blog/authors/holly-reynolds",{"_path":3552,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3553,"config":3557,"_id":3558,"_type":32,"title":3554,"_source":34,"_file":3559,"_stem":3560,"_extension":37},"/en-us/blog/authors/huldra",{"name":3554,"config":3555},"Huldra",{"headshot":7,"ctfId":3556},"huldra",{"template":694},"content:en-us:blog:authors:huldra.yml","en-us/blog/authors/huldra.yml","en-us/blog/authors/huldra",{"_path":3562,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3563,"config":3567,"_id":3568,"_type":32,"title":3564,"_source":34,"_file":3569,"_stem":3570,"_extension":37},"/en-us/blog/authors/iain-camacho",{"name":3564,"config":3565},"Iain Camacho",{"headshot":7,"ctfId":3566},"icamacho",{"template":694},"content:en-us:blog:authors:iain-camacho.yml","en-us/blog/authors/iain-camacho.yml","en-us/blog/authors/iain-camacho",{"_path":3572,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3573,"config":3577,"_id":3578,"_type":32,"title":3574,"_source":34,"_file":3579,"_stem":3580,"_extension":37},"/en-us/blog/authors/ian-bartholomew",{"name":3574,"config":3575},"Ian Bartholomew",{"headshot":725,"ctfId":3576},"7D4PE43CXfi8pgOSCmipH0",{"template":694},"content:en-us:blog:authors:ian-bartholomew.yml","en-us/blog/authors/ian-bartholomew.yml","en-us/blog/authors/ian-bartholomew",{"_path":3582,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3583,"config":3588,"_id":3589,"_type":32,"title":3584,"_source":34,"_file":3590,"_stem":3591,"_extension":37},"/en-us/blog/authors/ian-khor",{"name":3584,"config":3585},"Ian Khor",{"headshot":3586,"ctfId":3587},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662933/Blog/Author%20Headshots/ian_khor_headshot.png","nSk8fzDwtG3LVFWwg8HrF",{"template":694},"content:en-us:blog:authors:ian-khor.yml","en-us/blog/authors/ian-khor.yml","en-us/blog/authors/ian-khor",{"_path":3593,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3594,"config":3599,"_id":3600,"_type":32,"title":3595,"_source":34,"_file":3601,"_stem":3602,"_extension":37},"/en-us/blog/authors/ian-pedowitz",{"name":3595,"config":3596},"Ian Pedowitz",{"headshot":3597,"ctfId":3598},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683040/Blog/Author%20Headshots/ipedowitz-headshot.jpg","ipedowitz",{"template":694},"content:en-us:blog:authors:ian-pedowitz.yml","en-us/blog/authors/ian-pedowitz.yml","en-us/blog/authors/ian-pedowitz",{"_path":3604,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3605,"config":3610,"_id":3611,"_type":32,"title":3606,"_source":34,"_file":3612,"_stem":3613,"_extension":37},"/en-us/blog/authors/igor-drozdov",{"name":3606,"config":3607},"Igor Drozdov",{"headshot":3608,"ctfId":3609},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672455/Blog/Author%20Headshots/igor.png","igordrozdov",{"template":694},"content:en-us:blog:authors:igor-drozdov.yml","en-us/blog/authors/igor-drozdov.yml","en-us/blog/authors/igor-drozdov",{"_path":3615,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3616,"config":3621,"_id":3622,"_type":32,"title":3617,"_source":34,"_file":3623,"_stem":3624,"_extension":37},"/en-us/blog/authors/igor-wiedler",{"name":3617,"config":3618},"Igor Wiedler",{"headshot":3619,"ctfId":3620},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681841/Blog/Author%20Headshots/igorwwwwwwwwwwwwwwwwwwww-headshot.png","igorwwwwwwwwwwwwwwwwwwww",{"template":694},"content:en-us:blog:authors:igor-wiedler.yml","en-us/blog/authors/igor-wiedler.yml","en-us/blog/authors/igor-wiedler",{"_path":3626,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3627,"config":3632,"_id":3633,"_type":32,"title":3634,"_source":34,"_file":3635,"_stem":3636,"_extension":37},"/en-us/blog/authors/inchul-yoo-sunjung-park",{"name":3628,"config":3629},"Inchul Yoo, Sunjung Park",{"headshot":3630,"ctfId":3631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669731/Blog/Author%20Headshots/sunjungp-headshot.png","sunjungp",{"template":694},"content:en-us:blog:authors:inchul-yoo-sunjung-park.yml","Inchul Yoo Sunjung Park","en-us/blog/authors/inchul-yoo-sunjung-park.yml","en-us/blog/authors/inchul-yoo-sunjung-park",{"_path":3638,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3639,"config":3644,"_id":3645,"_type":32,"title":3640,"_source":34,"_file":3646,"_stem":3647,"_extension":37},"/en-us/blog/authors/isaac-dawson",{"name":3640,"config":3641},"Isaac Dawson",{"headshot":3642,"ctfId":3643},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669814/Blog/Author%20Headshots/idawson-headshot.jpg","idawson",{"template":694},"content:en-us:blog:authors:isaac-dawson.yml","en-us/blog/authors/isaac-dawson.yml","en-us/blog/authors/isaac-dawson",{"_path":3649,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3650,"config":3654,"_id":3656,"_type":32,"title":3657,"_source":34,"_file":3658,"_stem":3659,"_extension":37},"/en-us/blog/authors/issei-hamada-sony-biz-networks-corporation",{"config":3651,"name":3653},{"headshot":3652},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1760414048/buvcowublhq36ongtzbx.png","Issei Hamada, Sony Biz Networks Corporation",{"template":694,"gitlabHandle":3655},"https://gitlab.com/issei-hamada","content:en-us:blog:authors:issei-hamada-sony-biz-networks-corporation.yml","Issei Hamada Sony Biz Networks Corporation","en-us/blog/authors/issei-hamada-sony-biz-networks-corporation.yml","en-us/blog/authors/issei-hamada-sony-biz-networks-corporation",{"_path":3661,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3662,"config":3667,"_id":3668,"_type":32,"title":3663,"_source":34,"_file":3669,"_stem":3670,"_extension":37},"/en-us/blog/authors/itzik-gan-baruch",{"name":3663,"config":3664},"Itzik Gan Baruch",{"headshot":3665,"ctfId":3666},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658921/Blog/Author%20Headshots/iganbaruch-headshot.jpg","iganbaruch",{"template":694},"content:en-us:blog:authors:itzik-gan-baruch.yml","en-us/blog/authors/itzik-gan-baruch.yml","en-us/blog/authors/itzik-gan-baruch",{"_path":3672,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3673,"config":3677,"_id":3678,"_type":32,"title":3674,"_source":34,"_file":3679,"_stem":3680,"_extension":37},"/en-us/blog/authors/ivan-lychev",{"name":3674,"config":3675},"Ivan Lychev",{"headshot":7,"ctfId":3676},"iLychevAD",{"template":694},"content:en-us:blog:authors:ivan-lychev.yml","en-us/blog/authors/ivan-lychev.yml","en-us/blog/authors/ivan-lychev",{"_path":3682,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3683,"config":3687,"_id":3688,"_type":32,"title":3684,"_source":34,"_file":3689,"_stem":3690,"_extension":37},"/en-us/blog/authors/ivan-nemytchenko",{"name":3684,"config":3685},"Ivan Nemytchenko",{"headshot":725,"ctfId":3686},"Ivan-Nemytchenko",{"template":694},"content:en-us:blog:authors:ivan-nemytchenko.yml","en-us/blog/authors/ivan-nemytchenko.yml","en-us/blog/authors/ivan-nemytchenko",{"_path":3692,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3693,"config":3699,"_id":3700,"_type":32,"title":3695,"_source":34,"_file":3701,"_stem":3702,"_extension":37},"/en-us/blog/authors/ivanha-paz",{"role":3694,"name":3695,"config":3696},"DevRel Lead at Jam","Ivanha Paz",{"headshot":3697,"ctfId":3698},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670359/Blog/Author%20Headshots/Ivanha_Paz_-_headshot.jpg","7sP877dkX9NIHekQO3HbUH",{"template":694},"content:en-us:blog:authors:ivanha-paz.yml","en-us/blog/authors/ivanha-paz.yml","en-us/blog/authors/ivanha-paz",{"_path":3704,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3705,"config":3709,"_id":3710,"_type":32,"title":3706,"_source":34,"_file":3711,"_stem":3712,"_extension":37},"/en-us/blog/authors/jacie-bandur",{"name":3706,"config":3707},"Jacie Bandur",{"headshot":7,"ctfId":3708},"jbandur",{"template":694},"content:en-us:blog:authors:jacie-bandur.yml","en-us/blog/authors/jacie-bandur.yml","en-us/blog/authors/jacie-bandur",{"_path":3714,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3715,"config":3720,"_id":3721,"_type":32,"title":3716,"_source":34,"_file":3722,"_stem":3723,"_extension":37},"/en-us/blog/authors/jacki-bauer",{"name":3716,"config":3717},"Jacki Bauer",{"headshot":3718,"ctfId":3719},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669728/Blog/Author%20Headshots/jackib-headshot.jpg","7nGz3EarOjQXW2gQuJaF1Z",{"template":694},"content:en-us:blog:authors:jacki-bauer.yml","en-us/blog/authors/jacki-bauer.yml","en-us/blog/authors/jacki-bauer",{"_path":3725,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3726,"config":3730,"_id":3731,"_type":32,"title":3727,"_source":34,"_file":3732,"_stem":3733,"_extension":37},"/en-us/blog/authors/jackie-meshell",{"name":3727,"config":3728},"Jackie Meshell",{"headshot":7,"ctfId":3729},"jmeshell",{"template":694},"content:en-us:blog:authors:jackie-meshell.yml","en-us/blog/authors/jackie-meshell.yml","en-us/blog/authors/jackie-meshell",{"_path":3735,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3736,"config":3741,"_id":3742,"_type":32,"title":3737,"_source":34,"_file":3743,"_stem":3744,"_extension":37},"/en-us/blog/authors/jackie-porter",{"name":3737,"config":3738},"Jackie Porter",{"headshot":3739,"ctfId":3740},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664942/Blog/Author%20Headshots/jreporter-headshot.png","jreporter",{"template":694},"content:en-us:blog:authors:jackie-porter.yml","en-us/blog/authors/jackie-porter.yml","en-us/blog/authors/jackie-porter",{"_path":3746,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3747,"config":3751,"_id":3752,"_type":32,"title":3748,"_source":34,"_file":3753,"_stem":3754,"_extension":37},"/en-us/blog/authors/jacob-schatz",{"name":3748,"config":3749},"Jacob Schatz",{"headshot":7,"ctfId":3750},"jschatz1",{"template":694},"content:en-us:blog:authors:jacob-schatz.yml","en-us/blog/authors/jacob-schatz.yml","en-us/blog/authors/jacob-schatz",{"_path":3756,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3757,"config":3761,"_id":3762,"_type":32,"title":3758,"_source":34,"_file":3763,"_stem":3764,"_extension":37},"/en-us/blog/authors/jacob-vosmaer",{"name":3758,"config":3759},"Jacob Vosmaer",{"headshot":725,"ctfId":3760},"Jacob-Vosmaer",{"template":694},"content:en-us:blog:authors:jacob-vosmaer.yml","en-us/blog/authors/jacob-vosmaer.yml","en-us/blog/authors/jacob-vosmaer",{"_path":3766,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3767,"config":3772,"_id":3773,"_type":32,"title":3768,"_source":34,"_file":3774,"_stem":3775,"_extension":37},"/en-us/blog/authors/jacques-erasmus",{"name":3768,"config":3769},"Jacques Erasmus",{"headshot":3770,"ctfId":3771},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682633/Blog/Author%20Headshots/jerasmus-headshot.png","jerasmus",{"template":694},"content:en-us:blog:authors:jacques-erasmus.yml","en-us/blog/authors/jacques-erasmus.yml","en-us/blog/authors/jacques-erasmus",{"_path":3777,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3778,"config":3783,"_id":3784,"_type":32,"title":3785,"_source":34,"_file":3786,"_stem":3787,"_extension":37},"/en-us/blog/authors/jaime-martnez",{"name":3779,"config":3780},"Jaime Martínez",{"headshot":3781,"ctfId":3782},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679630/Blog/Author%20Headshots/jaime-headshot.jpg","jaime",{"template":694},"content:en-us:blog:authors:jaime-martnez.yml","Jaime Martnez","en-us/blog/authors/jaime-martnez.yml","en-us/blog/authors/jaime-martnez",{"_path":3789,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3790,"config":3794,"_id":3795,"_type":32,"title":3791,"_source":34,"_file":3796,"_stem":3797,"_extension":37},"/en-us/blog/authors/jake-foster",{"name":3791,"config":3792},"Jake Foster",{"headshot":725,"ctfId":3793},"jakefoster1",{"template":694},"content:en-us:blog:authors:jake-foster.yml","en-us/blog/authors/jake-foster.yml","en-us/blog/authors/jake-foster",{"_path":3799,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3800,"config":3804,"_id":3805,"_type":32,"title":3801,"_source":34,"_file":3806,"_stem":3807,"_extension":37},"/en-us/blog/authors/jake-stein",{"name":3801,"config":3802},"Jake Stein",{"headshot":725,"ctfId":3803},"Jake-Stein",{"template":694},"content:en-us:blog:authors:jake-stein.yml","en-us/blog/authors/jake-stein.yml","en-us/blog/authors/jake-stein",{"_path":3809,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3810,"config":3814,"_id":3815,"_type":32,"title":3811,"_source":34,"_file":3816,"_stem":3817,"_extension":37},"/en-us/blog/authors/james-dang",{"name":3811,"config":3812},"James Dang",{"headshot":725,"ctfId":3813},"James-Dang",{"template":694},"content:en-us:blog:authors:james-dang.yml","en-us/blog/authors/james-dang.yml","en-us/blog/authors/james-dang",{"_path":3819,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3820,"config":3825,"_id":3826,"_type":32,"title":3821,"_source":34,"_file":3827,"_stem":3828,"_extension":37},"/en-us/blog/authors/james-heimbuck",{"name":3821,"config":3822},"James Heimbuck",{"headshot":3823,"ctfId":3824},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666934/Blog/Author%20Headshots/jheimbuck_gl-headshot.png","jheimbuckgl",{"template":694},"content:en-us:blog:authors:james-heimbuck.yml","en-us/blog/authors/james-heimbuck.yml","en-us/blog/authors/james-heimbuck",{"_path":3830,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3831,"config":3835,"_id":3836,"_type":32,"title":3832,"_source":34,"_file":3837,"_stem":3838,"_extension":37},"/en-us/blog/authors/james-ramsay",{"name":3832,"config":3833},"James Ramsay",{"headshot":7,"ctfId":3834},"jramsay",{"template":694},"content:en-us:blog:authors:james-ramsay.yml","en-us/blog/authors/james-ramsay.yml","en-us/blog/authors/james-ramsay",{"_path":3840,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3841,"config":3846,"_id":3847,"_type":32,"title":3842,"_source":34,"_file":3848,"_stem":3849,"_extension":37},"/en-us/blog/authors/james-wormwell",{"name":3842,"config":3843},"James Wormwell",{"headshot":3844,"ctfId":3845},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659474/Blog/Author%20Headshots/james_wormwell_headshot.png","CPPijHb0Op5C5aVcvsOEf",{"template":694},"content:en-us:blog:authors:james-wormwell.yml","en-us/blog/authors/james-wormwell.yml","en-us/blog/authors/james-wormwell",{"_path":3851,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3852,"config":3856,"_id":3857,"_type":32,"title":3853,"_source":34,"_file":3858,"_stem":3859,"_extension":37},"/en-us/blog/authors/jamie-hurewitz",{"name":3853,"config":3854},"Jamie Hurewitz",{"headshot":725,"ctfId":3855},"Jamie-Hurewitz",{"template":694},"content:en-us:blog:authors:jamie-hurewitz.yml","en-us/blog/authors/jamie-hurewitz.yml","en-us/blog/authors/jamie-hurewitz",{"_path":3861,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3862,"config":3866,"_id":3867,"_type":32,"title":3863,"_source":34,"_file":3868,"_stem":3869,"_extension":37},"/en-us/blog/authors/jamie-rachel",{"name":3863,"config":3864},"Jamie Rachel",{"headshot":7,"ctfId":3865},"jrachel1",{"template":694},"content:en-us:blog:authors:jamie-rachel.yml","en-us/blog/authors/jamie-rachel.yml","en-us/blog/authors/jamie-rachel",{"_path":3871,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3872,"config":3877,"_id":3878,"_type":32,"title":3873,"_source":34,"_file":3879,"_stem":3880,"_extension":37},"/en-us/blog/authors/jan-provaznik",{"name":3873,"config":3874},"Jan Provaznik",{"headshot":3875,"ctfId":3876},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683397/Blog/Author%20Headshots/jprovaznik-headshot.png","jprovaznik",{"template":694},"content:en-us:blog:authors:jan-provaznik.yml","en-us/blog/authors/jan-provaznik.yml","en-us/blog/authors/jan-provaznik",{"_path":3882,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3883,"config":3888,"_id":3889,"_type":32,"title":3884,"_source":34,"_file":3890,"_stem":3891,"_extension":37},"/en-us/blog/authors/janis-altherr",{"name":3884,"config":3885},"Janis Altherr",{"headshot":3886,"ctfId":3887},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663163/Blog/Author%20Headshots/janis-headshot.jpg","janis",{"template":694},"content:en-us:blog:authors:janis-altherr.yml","en-us/blog/authors/janis-altherr.yml","en-us/blog/authors/janis-altherr",{"_path":3893,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3894,"config":3899,"_id":3900,"_type":32,"title":3895,"_source":34,"_file":3901,"_stem":3902,"_extension":37},"/en-us/blog/authors/jannik-lehmann",{"name":3895,"config":3896},"Jannik Lehmann",{"headshot":3897,"ctfId":3898},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665530/Blog/Author%20Headshots/jannik_lehmann_headshot.png","1N3FaKXgM0jmYL8jdnWKGN",{"template":694},"content:en-us:blog:authors:jannik-lehmann.yml","en-us/blog/authors/jannik-lehmann.yml","en-us/blog/authors/jannik-lehmann",{"_path":3904,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3905,"config":3910,"_id":3911,"_type":32,"title":3912,"_source":34,"_file":3913,"_stem":3914,"_extension":37},"/en-us/blog/authors/jarka-koanov-et-al",{"name":3906,"config":3907},"Jarka Košanová et al",{"headshot":3908,"ctfId":3909},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672956/Blog/Author%20Headshots/jarka-headshot.jpg","jarka",{"template":694},"content:en-us:blog:authors:jarka-koanov-et-al.yml","Jarka Koanov Et Al","en-us/blog/authors/jarka-koanov-et-al.yml","en-us/blog/authors/jarka-koanov-et-al",{"_path":3916,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3917,"config":3921,"_id":3922,"_type":32,"title":3923,"_source":34,"_file":3924,"_stem":3925,"_extension":37},"/en-us/blog/authors/jason-blais-mattermost",{"name":3918,"config":3919},"Jason Blais – Mattermost",{"headshot":7,"ctfId":3920},"jasonblais",{"template":694},"content:en-us:blog:authors:jason-blais-mattermost.yml","Jason Blais Mattermost","en-us/blog/authors/jason-blais-mattermost.yml","en-us/blog/authors/jason-blais-mattermost",{"_path":3927,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3928,"config":3932,"_id":3933,"_type":32,"title":3929,"_source":34,"_file":3934,"_stem":3935,"_extension":37},"/en-us/blog/authors/jason-chen",{"name":3929,"config":3930},"Jason Chen",{"headshot":725,"ctfId":3931},"Jason-Chen",{"template":694},"content:en-us:blog:authors:jason-chen.yml","en-us/blog/authors/jason-chen.yml","en-us/blog/authors/jason-chen",{"_path":3937,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3938,"config":3943,"_id":3944,"_type":32,"title":3939,"_source":34,"_file":3945,"_stem":3946,"_extension":37},"/en-us/blog/authors/jason-colyer",{"name":3939,"config":3940},"Jason Colyer",{"headshot":3941,"ctfId":3942},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670540/Blog/Author%20Headshots/jcolyer-headshot.jpg","jcolyer",{"template":694},"content:en-us:blog:authors:jason-colyer.yml","en-us/blog/authors/jason-colyer.yml","en-us/blog/authors/jason-colyer",{"_path":3948,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3949,"config":3954,"_id":3955,"_type":32,"title":3950,"_source":34,"_file":3956,"_stem":3957,"_extension":37},"/en-us/blog/authors/jason-plum",{"name":3950,"config":3951},"Jason Plum",{"headshot":3952,"ctfId":3953},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683234/Blog/Author%20Headshots/WarheadsSE-headshot.jpg","WarheadsSE",{"template":694},"content:en-us:blog:authors:jason-plum.yml","en-us/blog/authors/jason-plum.yml","en-us/blog/authors/jason-plum",{"_path":3959,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3960,"config":3964,"_id":3965,"_type":32,"title":3961,"_source":34,"_file":3966,"_stem":3967,"_extension":37},"/en-us/blog/authors/jason-yavorska",{"name":3961,"config":3962},"Jason Yavorska",{"headshot":7,"ctfId":3963},"jyavorska",{"template":694},"content:en-us:blog:authors:jason-yavorska.yml","en-us/blog/authors/jason-yavorska.yml","en-us/blog/authors/jason-yavorska",{"_path":3969,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3970,"config":3974,"_id":3975,"_type":32,"title":3971,"_source":34,"_file":3976,"_stem":3977,"_extension":37},"/en-us/blog/authors/jay-newman",{"name":3971,"config":3972},"Jay Newman",{"headshot":725,"ctfId":3973},"Jay-Newman",{"template":694},"content:en-us:blog:authors:jay-newman.yml","en-us/blog/authors/jay-newman.yml","en-us/blog/authors/jay-newman",{"_path":3979,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3980,"config":3985,"_id":3986,"_type":32,"title":3981,"_source":34,"_file":3987,"_stem":3988,"_extension":37},"/en-us/blog/authors/jayson-salazar",{"name":3981,"config":3982},"Jayson Salazar",{"headshot":3983,"ctfId":3984},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669832/Blog/Author%20Headshots/jdsalaro-headshot.png","787SqtoQNu4DE3WGWE1WMv",{"template":694},"content:en-us:blog:authors:jayson-salazar.yml","en-us/blog/authors/jayson-salazar.yml","en-us/blog/authors/jayson-salazar",{"_path":3990,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":3991,"config":3995,"_id":3996,"_type":32,"title":3997,"_source":34,"_file":3998,"_stem":3999,"_extension":37},"/en-us/blog/authors/jd-alex",{"name":3992,"config":3993},"JD Alex",{"headshot":7,"ctfId":3994},"jalex1",{"template":694},"content:en-us:blog:authors:jd-alex.yml","Jd Alex","en-us/blog/authors/jd-alex.yml","en-us/blog/authors/jd-alex",{"_path":4001,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4002,"config":4006,"_id":4007,"_type":32,"title":4008,"_source":34,"_file":4009,"_stem":4010,"_extension":37},"/en-us/blog/authors/jean-philippe-baconnais",{"name":4003,"config":4004},"Jean-Philippe Baconnais",{"headshot":7,"ctfId":4005},"jeanphibaconnais",{"template":694},"content:en-us:blog:authors:jean-philippe-baconnais.yml","Jean Philippe Baconnais","en-us/blog/authors/jean-philippe-baconnais.yml","en-us/blog/authors/jean-philippe-baconnais",{"_path":4012,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4013,"config":4018,"_id":4019,"_type":32,"title":4014,"_source":34,"_file":4020,"_stem":4021,"_extension":37},"/en-us/blog/authors/jeff-burrows",{"name":4014,"config":4015},"Jeff Burrows",{"headshot":4016,"ctfId":4017},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680588/Blog/Author%20Headshots/jburrows001-headshot.jpg","jburrows001",{"template":694},"content:en-us:blog:authors:jeff-burrows.yml","en-us/blog/authors/jeff-burrows.yml","en-us/blog/authors/jeff-burrows",{"_path":4023,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4024,"config":4028,"_id":4029,"_type":32,"title":4025,"_source":34,"_file":4030,"_stem":4031,"_extension":37},"/en-us/blog/authors/jeff-kelsey",{"name":4025,"config":4026},"Jeff Kelsey",{"headshot":725,"ctfId":4027},"Jeff-Kelsey",{"template":694},"content:en-us:blog:authors:jeff-kelsey.yml","en-us/blog/authors/jeff-kelsey.yml","en-us/blog/authors/jeff-kelsey",{"_path":4033,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4034,"config":4039,"_id":4040,"_type":32,"title":4035,"_source":34,"_file":4041,"_stem":4042,"_extension":37},"/en-us/blog/authors/jeff-park",{"name":4035,"config":4036},"Jeff Park",{"headshot":4037,"ctfId":4038},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662462/Blog/Author%20Headshots/jeff_park.png","6f3sZWoxqV0RIufjUp6ohq",{"template":694},"content:en-us:blog:authors:jeff-park.yml","en-us/blog/authors/jeff-park.yml","en-us/blog/authors/jeff-park",{"_path":4044,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4045,"config":4050,"_id":4051,"_type":32,"title":4046,"_source":34,"_file":4052,"_stem":4053,"_extension":37},"/en-us/blog/authors/jeff-tucker",{"name":4046,"config":4047},"Jeff Tucker",{"headshot":4048,"ctfId":4049},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662256/Blog/Author%20Headshots/jeff_tucker_headshot.png","QsMDilyLUNsS2rvyaG3ne",{"template":694},"content:en-us:blog:authors:jeff-tucker.yml","en-us/blog/authors/jeff-tucker.yml","en-us/blog/authors/jeff-tucker",{"_path":4055,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4056,"config":4061,"_id":4062,"_type":32,"title":4057,"_source":34,"_file":4063,"_stem":4064,"_extension":37},"/en-us/blog/authors/jensen-stava",{"name":4057,"config":4058},"Jensen Stava",{"headshot":4059,"ctfId":4060},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679862/Blog/Author%20Headshots/jstava-headshot.png","jstava",{"template":694},"content:en-us:blog:authors:jensen-stava.yml","en-us/blog/authors/jensen-stava.yml","en-us/blog/authors/jensen-stava",{"_path":4066,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4067,"config":4071,"_id":4072,"_type":32,"title":4068,"_source":34,"_file":4073,"_stem":4074,"_extension":37},"/en-us/blog/authors/jeremy-cooper",{"name":4068,"config":4069},"Jeremy Cooper",{"headshot":725,"ctfId":4070},"6sXs62l8jODDcUlS9OPgTu",{"template":694},"content:en-us:blog:authors:jeremy-cooper.yml","en-us/blog/authors/jeremy-cooper.yml","en-us/blog/authors/jeremy-cooper",{"_path":4076,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4077,"config":4082,"_id":4083,"_type":32,"title":4078,"_source":34,"_file":4084,"_stem":4085,"_extension":37},"/en-us/blog/authors/jeremy-elder",{"name":4078,"config":4079},"Jeremy Elder",{"headshot":4080,"ctfId":4081},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666146/Blog/Author%20Headshots/jeldergl-headshot.jpg","jeldergl",{"template":694},"content:en-us:blog:authors:jeremy-elder.yml","en-us/blog/authors/jeremy-elder.yml","en-us/blog/authors/jeremy-elder",{"_path":4087,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4088,"config":4093,"_id":4094,"_type":32,"title":4089,"_source":34,"_file":4095,"_stem":4096,"_extension":37},"/en-us/blog/authors/jeremy-wagner",{"name":4089,"config":4090},"Jeremy Wagner",{"headshot":4091,"ctfId":4092},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663285/Blog/Author%20Headshots/jeremywagner-headshot.jpg","jeremywagner",{"template":694},"content:en-us:blog:authors:jeremy-wagner.yml","en-us/blog/authors/jeremy-wagner.yml","en-us/blog/authors/jeremy-wagner",{"_path":4098,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4099,"config":4103,"_id":4104,"_type":32,"title":4100,"_source":34,"_file":4105,"_stem":4106,"_extension":37},"/en-us/blog/authors/jeremy-watson",{"name":4100,"config":4101},"Jeremy Watson",{"headshot":7,"ctfId":4102},"jeremy",{"template":694},"content:en-us:blog:authors:jeremy-watson.yml","en-us/blog/authors/jeremy-watson.yml","en-us/blog/authors/jeremy-watson",{"_path":4108,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4109,"config":4114,"_id":4115,"_type":32,"title":4110,"_source":34,"_file":4116,"_stem":4117,"_extension":37},"/en-us/blog/authors/jerez-solis",{"name":4110,"config":4111},"Jerez Solis",{"headshot":4112,"ctfId":4113},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664494/Blog/Author%20Headshots/jerezsolis.jpg","1Tx8fzD6QQglwxBTAlwAOZ",{"template":694},"content:en-us:blog:authors:jerez-solis.yml","en-us/blog/authors/jerez-solis.yml","en-us/blog/authors/jerez-solis",{"_path":4119,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4120,"config":4124,"_id":4125,"_type":32,"title":4126,"_source":34,"_file":4127,"_stem":4128,"_extension":37},"/en-us/blog/authors/jeroen-van-baarsen",{"name":4121,"config":4122},"Jeroen van Baarsen",{"headshot":725,"ctfId":4123},"Jeroen-van-Baarsen",{"template":694},"content:en-us:blog:authors:jeroen-van-baarsen.yml","Jeroen Van Baarsen","en-us/blog/authors/jeroen-van-baarsen.yml","en-us/blog/authors/jeroen-van-baarsen",{"_path":4130,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4131,"config":4136,"_id":4137,"_type":32,"title":4132,"_source":34,"_file":4138,"_stem":4139,"_extension":37},"/en-us/blog/authors/jessica-hurwitz",{"name":4132,"config":4133},"Jessica Hurwitz",{"headshot":4134,"ctfId":4135},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659532/Blog/Author%20Headshots/jessica_hurwitz_headshot.png","6c35XpCSITw8fPmcAX67of",{"template":694},"content:en-us:blog:authors:jessica-hurwitz.yml","en-us/blog/authors/jessica-hurwitz.yml","en-us/blog/authors/jessica-hurwitz",{"_path":4141,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4142,"config":4146,"_id":4147,"_type":32,"title":4143,"_source":34,"_file":4148,"_stem":4149,"_extension":37},"/en-us/blog/authors/jim-riley",{"name":4143,"config":4144},"Jim Riley",{"headshot":7,"ctfId":4145},"GitLabcom-username-jrileyinva",{"template":694},"content:en-us:blog:authors:jim-riley.yml","en-us/blog/authors/jim-riley.yml","en-us/blog/authors/jim-riley",{"_path":4151,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4152,"config":4156,"_id":4157,"_type":32,"title":4153,"_source":34,"_file":4158,"_stem":4159,"_extension":37},"/en-us/blog/authors/jim-thavisouk",{"name":4153,"config":4154},"Jim Thavisouk",{"headshot":725,"ctfId":4155},"jimthavisouk",{"template":694},"content:en-us:blog:authors:jim-thavisouk.yml","en-us/blog/authors/jim-thavisouk.yml","en-us/blog/authors/jim-thavisouk",{"_path":4161,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4162,"config":4166,"_id":4167,"_type":32,"title":4168,"_source":34,"_file":4169,"_stem":4170,"_extension":37},"/en-us/blog/authors/job-van-der-voort",{"name":4163,"config":4164},"Job van der Voort",{"headshot":725,"ctfId":4165},"Job-van-der-Voort",{"template":694},"content:en-us:blog:authors:job-van-der-voort.yml","Job Van Der Voort","en-us/blog/authors/job-van-der-voort.yml","en-us/blog/authors/job-van-der-voort",{"_path":4172,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4173,"config":4178,"_id":4179,"_type":32,"title":4174,"_source":34,"_file":4180,"_stem":4181,"_extension":37},"/en-us/blog/authors/jocelyn-eillis",{"name":4174,"config":4175},"Jocelyn Eillis",{"headshot":4176,"ctfId":4177},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750713473/geqmxc4jkh4uy89m9loe.png","eGPL69Bvlva57elmDjuSo",{"template":694},"content:en-us:blog:authors:jocelyn-eillis.yml","en-us/blog/authors/jocelyn-eillis.yml","en-us/blog/authors/jocelyn-eillis",{"_path":4183,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4184,"config":4188,"_id":4189,"_type":32,"title":4185,"_source":34,"_file":4190,"_stem":4191,"_extension":37},"/en-us/blog/authors/jochen-roth",{"name":4185,"config":4186},"Jochen Roth",{"headshot":7,"ctfId":4187},"ochorocho",{"template":694},"content:en-us:blog:authors:jochen-roth.yml","en-us/blog/authors/jochen-roth.yml","en-us/blog/authors/jochen-roth",{"_path":4193,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4194,"config":4199,"_id":4200,"_type":32,"title":4195,"_source":34,"_file":4201,"_stem":4202,"_extension":37},"/en-us/blog/authors/joe-randazzo",{"name":4195,"config":4196},"Joe Randazzo",{"headshot":4197,"ctfId":4198},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664711/Blog/Author%20Headshots/randazzo.jpg","5DxpEbIVcwN2ukwiEMsHlH",{"template":694},"content:en-us:blog:authors:joe-randazzo.yml","en-us/blog/authors/joe-randazzo.yml","en-us/blog/authors/joe-randazzo",{"_path":4204,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4205,"config":4210,"_id":4211,"_type":32,"title":4206,"_source":34,"_file":4212,"_stem":4213,"_extension":37},"/en-us/blog/authors/joel-krooswyk",{"name":4206,"config":4207},"Joel Krooswyk",{"headshot":4208,"ctfId":4209},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669392/Blog/Author%20Headshots/jkrooswyk-headshot.jpg","jkrooswyk",{"template":694},"content:en-us:blog:authors:joel-krooswyk.yml","en-us/blog/authors/joel-krooswyk.yml","en-us/blog/authors/joel-krooswyk",{"_path":4215,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4216,"config":4221,"_id":4222,"_type":32,"title":4217,"_source":34,"_file":4223,"_stem":4224,"_extension":37},"/en-us/blog/authors/joern-schneeweisz",{"name":4217,"config":4218},"Joern Schneeweisz",{"headshot":4219,"ctfId":4220},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679144/Blog/Author%20Headshots/joernchen-headshot.png","joernchen",{"template":694},"content:en-us:blog:authors:joern-schneeweisz.yml","en-us/blog/authors/joern-schneeweisz.yml","en-us/blog/authors/joern-schneeweisz",{"_path":4226,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4227,"config":4231,"_id":4232,"_type":32,"title":4228,"_source":34,"_file":4233,"_stem":4234,"_extension":37},"/en-us/blog/authors/joey-salazar",{"name":4228,"config":4229},"Joey Salazar",{"headshot":725,"ctfId":4230},"4LgUP4bzQV6kuhoZNFID9r",{"template":694},"content:en-us:blog:authors:joey-salazar.yml","en-us/blog/authors/joey-salazar.yml","en-us/blog/authors/joey-salazar",{"_path":4236,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4237,"config":4241,"_id":4242,"_type":32,"title":4238,"_source":34,"_file":4243,"_stem":4244,"_extension":37},"/en-us/blog/authors/johanna-ambrosio",{"name":4238,"config":4239},"Johanna Ambrosio",{"headshot":725,"ctfId":4240},"Johanna-Ambrosio",{"template":694},"content:en-us:blog:authors:johanna-ambrosio.yml","en-us/blog/authors/johanna-ambrosio.yml","en-us/blog/authors/johanna-ambrosio",{"_path":4246,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4247,"config":4252,"_id":4253,"_type":32,"title":4248,"_source":34,"_file":4254,"_stem":4255,"_extension":37},"/en-us/blog/authors/johannes-bauer",{"name":4248,"config":4249},"Johannes Bauer",{"headshot":4250,"ctfId":4251},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662611/Blog/Author%20Headshots/johannes_bauer_headshot.png","6Snkao4VD1IxGOzV1YpcMZ",{"template":694},"content:en-us:blog:authors:johannes-bauer.yml","en-us/blog/authors/johannes-bauer.yml","en-us/blog/authors/johannes-bauer",{"_path":4257,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4258,"config":4263,"_id":4264,"_type":32,"title":4259,"_source":34,"_file":4265,"_stem":4266,"_extension":37},"/en-us/blog/authors/john-cai",{"name":4259,"config":4260},"John Cai",{"headshot":4261,"ctfId":4262},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667386/Blog/Author%20Headshots/jcaigitlab-headshot.jpg","jcaigitlab",{"template":694},"content:en-us:blog:authors:john-cai.yml","en-us/blog/authors/john-cai.yml","en-us/blog/authors/john-cai",{"_path":4268,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4269,"config":4274,"_id":4275,"_type":32,"title":4270,"_source":34,"_file":4276,"_stem":4277,"_extension":37},"/en-us/blog/authors/john-coghlan",{"name":4270,"config":4271},"John Coghlan",{"headshot":4272,"ctfId":4273},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670167/Blog/Author%20Headshots/johncoghlan-headshot.jpg","johncoghlan",{"template":694},"content:en-us:blog:authors:john-coghlan.yml","en-us/blog/authors/john-coghlan.yml","en-us/blog/authors/john-coghlan",{"_path":4279,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4280,"config":4285,"_id":4286,"_type":32,"title":4281,"_source":34,"_file":4287,"_stem":4288,"_extension":37},"/en-us/blog/authors/john-crowley",{"name":4281,"config":4282},"John Crowley",{"headshot":4283,"ctfId":4284},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666042/Blog/Author%20Headshots/john_crowley_headshot.png","64k6bR3mtIchoqBccJDaTO",{"template":694},"content:en-us:blog:authors:john-crowley.yml","en-us/blog/authors/john-crowley.yml","en-us/blog/authors/john-crowley",{"_path":4290,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4291,"config":4296,"_id":4297,"_type":32,"title":4292,"_source":34,"_file":4298,"_stem":4299,"_extension":37},"/en-us/blog/authors/john-jarvis",{"name":4292,"config":4293},"John Jarvis",{"headshot":4294,"ctfId":4295},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678622/Blog/Author%20Headshots/jarv-headshot.jpg","jarv",{"template":694},"content:en-us:blog:authors:john-jarvis.yml","en-us/blog/authors/john-jarvis.yml","en-us/blog/authors/john-jarvis",{"_path":4301,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4302,"config":4306,"_id":4307,"_type":32,"title":4303,"_source":34,"_file":4308,"_stem":4309,"_extension":37},"/en-us/blog/authors/john-jeremiah",{"name":4303,"config":4304},"John Jeremiah",{"headshot":725,"ctfId":4305},"johnjeremiah",{"template":694},"content:en-us:blog:authors:john-jeremiah.yml","en-us/blog/authors/john-jeremiah.yml","en-us/blog/authors/john-jeremiah",{"_path":4311,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4312,"config":4316,"_id":4317,"_type":32,"title":4318,"_source":34,"_file":4319,"_stem":4320,"_extension":37},"/en-us/blog/authors/john-mcguire",{"name":4313,"config":4314},"John McGuire",{"headshot":725,"ctfId":4315},"2BpYnUcWeqmuRlVM7w9ZIv",{"template":694},"content:en-us:blog:authors:john-mcguire.yml","John Mcguire","en-us/blog/authors/john-mcguire.yml","en-us/blog/authors/john-mcguire",{"_path":4322,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4323,"config":4327,"_id":4329,"_type":32,"title":4324,"_source":34,"_file":4330,"_stem":4331,"_extension":37},"/en-us/blog/authors/john-skarbek",{"name":4324,"config":4325},"John Skarbek",{"headshot":4326},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751303547/nq8dxitzoybran2r7crm.png",{"template":694,"gitlabHandle":4328},"skarbek","content:en-us:blog:authors:john-skarbek.yml","en-us/blog/authors/john-skarbek.yml","en-us/blog/authors/john-skarbek",{"_path":4333,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4334,"config":4338,"_id":4339,"_type":32,"title":4335,"_source":34,"_file":4340,"_stem":4341,"_extension":37},"/en-us/blog/authors/john-sparrow",{"name":4335,"config":4336},"John Sparrow",{"headshot":725,"ctfId":4337},"John-Sparrow",{"template":694},"content:en-us:blog:authors:john-sparrow.yml","en-us/blog/authors/john-sparrow.yml","en-us/blog/authors/john-sparrow",{"_path":4343,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4344,"config":4348,"_id":4349,"_type":32,"title":4345,"_source":34,"_file":4350,"_stem":4351,"_extension":37},"/en-us/blog/authors/johnathan-hunt",{"name":4345,"config":4346},"Johnathan Hunt",{"headshot":725,"ctfId":4347},"JohnathanHunt",{"template":694},"content:en-us:blog:authors:johnathan-hunt.yml","en-us/blog/authors/johnathan-hunt.yml","en-us/blog/authors/johnathan-hunt",{"_path":4353,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4354,"config":4358,"_id":4359,"_type":32,"title":4355,"_source":34,"_file":4360,"_stem":4361,"_extension":37},"/en-us/blog/authors/joni-klippert",{"name":4355,"config":4356},"Joni Klippert",{"headshot":725,"ctfId":4357},"Joni-Klippert",{"template":694},"content:en-us:blog:authors:joni-klippert.yml","en-us/blog/authors/joni-klippert.yml","en-us/blog/authors/joni-klippert",{"_path":4363,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4364,"config":4369,"_id":4370,"_type":32,"title":4371,"_source":34,"_file":4372,"_stem":4373,"_extension":37},"/en-us/blog/authors/joo-alexandre-prado-tavares-cunha",{"name":4365,"config":4366},"João Alexandre Prado Tavares Cunha",{"headshot":4367,"ctfId":4368},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682771/Blog/Author%20Headshots/Alexand-headshot.jpg","Alexand",{"template":694},"content:en-us:blog:authors:joo-alexandre-prado-tavares-cunha.yml","Joo Alexandre Prado Tavares Cunha","en-us/blog/authors/joo-alexandre-prado-tavares-cunha.yml","en-us/blog/authors/joo-alexandre-prado-tavares-cunha",{"_path":4375,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4376,"config":4381,"_id":4382,"_type":32,"title":4383,"_source":34,"_file":4384,"_stem":4385,"_extension":37},"/en-us/blog/authors/joo-pereira",{"name":4377,"config":4378},"João Pereira",{"headshot":4379,"ctfId":4380},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665547/Blog/Author%20Headshots/joao_pereira.png","7wLh5rwID5R39PRA6aiAb0",{"template":694},"content:en-us:blog:authors:joo-pereira.yml","Joo Pereira","en-us/blog/authors/joo-pereira.yml","en-us/blog/authors/joo-pereira",{"_path":4387,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4388,"config":4392,"_id":4393,"_type":32,"title":4389,"_source":34,"_file":4394,"_stem":4395,"_extension":37},"/en-us/blog/authors/jordi-mon",{"name":4389,"config":4390},"Jordi Mon",{"headshot":7,"ctfId":4391},"jordimon",{"template":694},"content:en-us:blog:authors:jordi-mon.yml","en-us/blog/authors/jordi-mon.yml","en-us/blog/authors/jordi-mon",{"_path":4397,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4398,"config":4403,"_id":4404,"_type":32,"title":4405,"_source":34,"_file":4406,"_stem":4407,"_extension":37},"/en-us/blog/authors/jos-ivn-vargas",{"name":4399,"config":4400},"José Iván Vargas",{"headshot":4401,"ctfId":4402},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679024/Blog/Author%20Headshots/jivanvl-headshot.jpg","jivanvl",{"template":694},"content:en-us:blog:authors:jos-ivn-vargas.yml","Jos Ivn Vargas","en-us/blog/authors/jos-ivn-vargas.yml","en-us/blog/authors/jos-ivn-vargas",{"_path":4409,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4410,"config":4414,"_id":4415,"_type":32,"title":4411,"_source":34,"_file":4416,"_stem":4417,"_extension":37},"/en-us/blog/authors/jose-finotto",{"name":4411,"config":4412},"Jose Finotto",{"headshot":7,"ctfId":4413},"finotto",{"template":694},"content:en-us:blog:authors:jose-finotto.yml","en-us/blog/authors/jose-finotto.yml","en-us/blog/authors/jose-finotto",{"_path":4419,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4420,"config":4424,"_id":4426,"_type":32,"title":4423,"_source":34,"_file":4427,"_stem":4428,"_extension":37},"/en-us/blog/authors/joseph-burnett",{"config":4421,"name":4423},{"headshot":4422},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752169072/teprmqbylocazrqdtuix.png","Joseph Burnett",{"template":694,"gitlabHandle":4425},"josephburnett","content:en-us:blog:authors:joseph-burnett.yml","en-us/blog/authors/joseph-burnett.yml","en-us/blog/authors/joseph-burnett",{"_path":4430,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4431,"config":4436,"_id":4437,"_type":32,"title":4432,"_source":34,"_file":4438,"_stem":4439,"_extension":37},"/en-us/blog/authors/joseph-longo",{"name":4432,"config":4433},"Joseph Longo",{"headshot":4434,"ctfId":4435},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659681/Blog/Author%20Headshots/jlongo_gitlab-headshot.jpg","jlongogitlab",{"template":694},"content:en-us:blog:authors:joseph-longo.yml","en-us/blog/authors/joseph-longo.yml","en-us/blog/authors/joseph-longo",{"_path":4441,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4442,"config":4446,"_id":4447,"_type":32,"title":4448,"_source":34,"_file":4449,"_stem":4450,"_extension":37},"/en-us/blog/authors/joseph-schorr-from-coreos",{"name":4443,"config":4444},"Joseph Schorr from CoreOS",{"headshot":725,"ctfId":4445},"Joseph-Schorr-from-CoreOS",{"template":694},"content:en-us:blog:authors:joseph-schorr-from-coreos.yml","Joseph Schorr From Coreos","en-us/blog/authors/joseph-schorr-from-coreos.yml","en-us/blog/authors/joseph-schorr-from-coreos",{"_path":4452,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4453,"config":4458,"_id":4459,"_type":32,"title":4454,"_source":34,"_file":4460,"_stem":4461,"_extension":37},"/en-us/blog/authors/josh-feehs",{"name":4454,"config":4455},"Josh Feehs",{"headshot":4456,"ctfId":4457},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683068/Blog/Author%20Headshots/Screenshot_2023-11-28_at_9.12.13_AM.png","g5S7qgnlO5aJJ00brs77P",{"template":694},"content:en-us:blog:authors:josh-feehs.yml","en-us/blog/authors/josh-feehs.yml","en-us/blog/authors/josh-feehs",{"_path":4463,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4464,"config":4470,"_id":4471,"_type":32,"title":4472,"_source":34,"_file":4473,"_stem":4474,"_extension":37},"/en-us/blog/authors/josh-kodroff-pulumi",{"role":4465,"name":4466,"config":4467},"Sr. Solutions Architect, Pulumi","Josh Kodroff, Pulumi",{"headshot":4468,"ctfId":4469},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683425/Blog/Author%20Headshots/joshkodroff.jpg","2GF0MF1ngEBxos4nRKt8tL",{"template":694},"content:en-us:blog:authors:josh-kodroff-pulumi.yml","Josh Kodroff Pulumi","en-us/blog/authors/josh-kodroff-pulumi.yml","en-us/blog/authors/josh-kodroff-pulumi",{"_path":4476,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4477,"config":4481,"_id":4482,"_type":32,"title":4478,"_source":34,"_file":4483,"_stem":4484,"_extension":37},"/en-us/blog/authors/josh-zimmerman",{"name":4478,"config":4479},"Josh Zimmerman",{"headshot":7,"ctfId":4480},"JoshZimmerman",{"template":694},"content:en-us:blog:authors:josh-zimmerman.yml","en-us/blog/authors/josh-zimmerman.yml","en-us/blog/authors/josh-zimmerman",{"_path":4486,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4487,"config":4492,"_id":4493,"_type":32,"title":4488,"_source":34,"_file":4494,"_stem":4495,"_extension":37},"/en-us/blog/authors/joshua-carroll",{"name":4488,"config":4489},"Joshua Carroll",{"headshot":4490,"ctfId":4491},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664952/Blog/Author%20Headshots/joshua_carroll_headshot.png","8HOTaXswBopyqMWFZMSv3",{"template":694},"content:en-us:blog:authors:joshua-carroll.yml","en-us/blog/authors/joshua-carroll.yml","en-us/blog/authors/joshua-carroll",{"_path":4497,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4498,"config":4503,"_id":4504,"_type":32,"title":4499,"_source":34,"_file":4505,"_stem":4506,"_extension":37},"/en-us/blog/authors/joshua-lambert",{"name":4499,"config":4500},"Joshua Lambert",{"headshot":4501,"ctfId":4502},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681281/Blog/Author%20Headshots/joshlambert-headshot.png","joshlambert",{"template":694},"content:en-us:blog:authors:joshua-lambert.yml","en-us/blog/authors/joshua-lambert.yml","en-us/blog/authors/joshua-lambert",{"_path":4508,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4509,"config":4513,"_id":4514,"_type":32,"title":4510,"_source":34,"_file":4515,"_stem":4516,"_extension":37},"/en-us/blog/authors/joyce-tompsett",{"name":4510,"config":4511},"Joyce Tompsett",{"headshot":7,"ctfId":4512},"Tompsett",{"template":694},"content:en-us:blog:authors:joyce-tompsett.yml","en-us/blog/authors/joyce-tompsett.yml","en-us/blog/authors/joyce-tompsett",{"_path":4518,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4519,"config":4523,"_id":4524,"_type":32,"title":4520,"_source":34,"_file":4525,"_stem":4526,"_extension":37},"/en-us/blog/authors/juan-broullon",{"name":4520,"config":4521},"Juan Broullon",{"headshot":7,"ctfId":4522},"jbroullon",{"template":694},"content:en-us:blog:authors:juan-broullon.yml","en-us/blog/authors/juan-broullon.yml","en-us/blog/authors/juan-broullon",{"_path":4528,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4529,"config":4533,"_id":4534,"_type":32,"title":4530,"_source":34,"_file":4535,"_stem":4536,"_extension":37},"/en-us/blog/authors/julia-lake",{"name":4530,"config":4531},"Julia Lake",{"headshot":725,"ctfId":4532},"5i9IDwCDDg3lfkiu9T3edZ",{"template":694},"content:en-us:blog:authors:julia-lake.yml","en-us/blog/authors/julia-lake.yml","en-us/blog/authors/julia-lake",{"_path":4538,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4539,"config":4544,"_id":4545,"_type":32,"title":4540,"_source":34,"_file":4546,"_stem":4547,"_extension":37},"/en-us/blog/authors/julia-miocene",{"name":4540,"config":4541},"Julia Miocene",{"headshot":4542,"ctfId":4543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755616177/yatkjhtf60edealtvpr4.png","6SK0DpWNK5NmfLyn2vWMPI",{"template":694},"content:en-us:blog:authors:julia-miocene.yml","en-us/blog/authors/julia-miocene.yml","en-us/blog/authors/julia-miocene",{"_path":4549,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4550,"config":4554,"_id":4555,"_type":32,"title":4551,"_source":34,"_file":4556,"_stem":4557,"_extension":37},"/en-us/blog/authors/julian-thome",{"name":4551,"config":4552},"Julian Thome",{"headshot":7,"ctfId":4553},"jthome",{"template":694},"content:en-us:blog:authors:julian-thome.yml","en-us/blog/authors/julian-thome.yml","en-us/blog/authors/julian-thome",{"_path":4559,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4560,"config":4565,"_id":4566,"_type":32,"title":4561,"_source":34,"_file":4567,"_stem":4568,"_extension":37},"/en-us/blog/authors/julie-byrne",{"name":4561,"config":4562},"Julie Byrne",{"headshot":4563,"ctfId":4564},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669432/Blog/Author%20Headshots/juliebyrne.jpg","3SaRWyz0u889xiq6rZkCO",{"template":694},"content:en-us:blog:authors:julie-byrne.yml","en-us/blog/authors/julie-byrne.yml","en-us/blog/authors/julie-byrne",{"_path":4570,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4571,"config":4576,"_id":4577,"_type":32,"title":4572,"_source":34,"_file":4578,"_stem":4579,"_extension":37},"/en-us/blog/authors/julie-griffin",{"name":4572,"config":4573},"Julie Griffin",{"headshot":4574,"ctfId":4575},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665206/Blog/Author%20Headshots/julie_griffin_-_headshot.png","3djBidFIW3or5K9uhi9LE5",{"template":694},"content:en-us:blog:authors:julie-griffin.yml","en-us/blog/authors/julie-griffin.yml","en-us/blog/authors/julie-griffin",{"_path":4581,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4582,"config":4586,"_id":4587,"_type":32,"title":4583,"_source":34,"_file":4588,"_stem":4589,"_extension":37},"/en-us/blog/authors/julien-andrieux",{"name":4583,"config":4584},"Julien Andrieux",{"headshot":725,"ctfId":4585},"Julien-Andrieux",{"template":694},"content:en-us:blog:authors:julien-andrieux.yml","en-us/blog/authors/julien-andrieux.yml","en-us/blog/authors/julien-andrieux",{"_path":4591,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4592,"config":4597,"_id":4598,"_type":32,"title":4593,"_source":34,"_file":4599,"_stem":4600,"_extension":37},"/en-us/blog/authors/juliet-wanjohi",{"name":4593,"config":4594},"Juliet Wanjohi",{"headshot":4595,"ctfId":4596},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669837/Blog/Author%20Headshots/jwanjohi-headshot.jpg","jwanjohi",{"template":694},"content:en-us:blog:authors:juliet-wanjohi.yml","en-us/blog/authors/juliet-wanjohi.yml","en-us/blog/authors/juliet-wanjohi",{"_path":4602,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4603,"config":4607,"_id":4608,"_type":32,"title":4604,"_source":34,"_file":4609,"_stem":4610,"_extension":37},"/en-us/blog/authors/justin-farris",{"name":4604,"config":4605},"Justin Farris",{"headshot":725,"ctfId":4606},"5RHYudAlWLmSj5U7AOIcbG",{"template":694},"content:en-us:blog:authors:justin-farris.yml","en-us/blog/authors/justin-farris.yml","en-us/blog/authors/justin-farris",{"_path":4612,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4613,"config":4618,"_id":4619,"_type":32,"title":4614,"_source":34,"_file":4620,"_stem":4621,"_extension":37},"/en-us/blog/authors/justin-tobler",{"name":4614,"config":4615},"Justin Tobler",{"headshot":4616,"ctfId":4617},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664737/Blog/Author%20Headshots/james_tobler_headshot.png","5pnOIbNI1Sc5IFnReNHNtv",{"template":694},"content:en-us:blog:authors:justin-tobler.yml","en-us/blog/authors/justin-tobler.yml","en-us/blog/authors/justin-tobler",{"_path":4623,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4624,"config":4629,"_id":4630,"_type":32,"title":4625,"_source":34,"_file":4631,"_stem":4632,"_extension":37},"/en-us/blog/authors/kai-armstrong",{"name":4625,"config":4626},"Kai Armstrong",{"headshot":4627,"ctfId":4628},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682535/Blog/Author%20Headshots/phikai-headshot.png","phikai",{"template":694},"content:en-us:blog:authors:kai-armstrong.yml","en-us/blog/authors/kai-armstrong.yml","en-us/blog/authors/kai-armstrong",{"_path":4634,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4635,"config":4639,"_id":4640,"_type":32,"title":4641,"_source":34,"_file":4642,"_stem":4643,"_extension":37},"/en-us/blog/authors/kamil-trzciski",{"name":4636,"config":4637},"Kamil Trzciński",{"headshot":725,"ctfId":4638},"Kamil-Trzciski",{"template":694},"content:en-us:blog:authors:kamil-trzciski.yml","Kamil Trzciski","en-us/blog/authors/kamil-trzciski.yml","en-us/blog/authors/kamil-trzciski",{"_path":4645,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4646,"config":4650,"_id":4651,"_type":32,"title":4652,"_source":34,"_file":4653,"_stem":4654,"_extension":37},"/en-us/blog/authors/karen-caras",{"name":4647,"config":4648},"Karen Carías",{"headshot":725,"ctfId":4649},"Karen-Caras",{"template":694},"content:en-us:blog:authors:karen-caras.yml","Karen Caras","en-us/blog/authors/karen-caras.yml","en-us/blog/authors/karen-caras",{"_path":4656,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4657,"config":4662,"_id":4663,"_type":32,"title":4658,"_source":34,"_file":4664,"_stem":4665,"_extension":37},"/en-us/blog/authors/karthik-nayak",{"name":4658,"config":4659},"Karthik Nayak",{"headshot":4660,"ctfId":4661},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659809/Blog/Author%20Headshots/Screenshot_2025-06-04_at_8.49.51%C3%A2__AM.png","3Q6ZKvaiCRw7tFZdDGlecg",{"template":694},"content:en-us:blog:authors:karthik-nayak.yml","en-us/blog/authors/karthik-nayak.yml","en-us/blog/authors/karthik-nayak",{"_path":4667,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4668,"config":4672,"_id":4673,"_type":32,"title":4669,"_source":34,"_file":4674,"_stem":4675,"_extension":37},"/en-us/blog/authors/katherine-okpara",{"name":4669,"config":4670},"Katherine Okpara",{"headshot":7,"ctfId":4671},"katokpara",{"template":694},"content:en-us:blog:authors:katherine-okpara.yml","en-us/blog/authors/katherine-okpara.yml","en-us/blog/authors/katherine-okpara",{"_path":4677,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4678,"config":4682,"_id":4683,"_type":32,"title":4679,"_source":34,"_file":4684,"_stem":4685,"_extension":37},"/en-us/blog/authors/kathy-wang",{"name":4679,"config":4680},"Kathy Wang",{"headshot":7,"ctfId":4681},"kathyw",{"template":694},"content:en-us:blog:authors:kathy-wang.yml","en-us/blog/authors/kathy-wang.yml","en-us/blog/authors/kathy-wang",{"_path":4687,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4688,"config":4692,"_id":4693,"_type":32,"title":4694,"_source":34,"_file":4695,"_stem":4696,"_extension":37},"/en-us/blog/authors/keanon-okeefe",{"name":4689,"config":4690},"Keanon O’Keefe",{"headshot":7,"ctfId":4691},"kokeefe",{"template":694},"content:en-us:blog:authors:keanon-okeefe.yml","Keanon Okeefe","en-us/blog/authors/keanon-okeefe.yml","en-us/blog/authors/keanon-okeefe",{"_path":4698,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4699,"config":4704,"_id":4705,"_type":32,"title":4700,"_source":34,"_file":4706,"_stem":4707,"_extension":37},"/en-us/blog/authors/kees-valkhof",{"name":4700,"role":4701,"config":4702},"Kees Valkhof","Configuration manager at Lely",{"headshot":4703},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750331281/xojwtvpk5pif84wlahx1.jpg",{"template":694},"content:en-us:blog:authors:kees-valkhof.yml","en-us/blog/authors/kees-valkhof.yml","en-us/blog/authors/kees-valkhof",{"_path":4709,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4710,"config":4714,"_id":4715,"_type":32,"title":4711,"_source":34,"_file":4716,"_stem":4717,"_extension":37},"/en-us/blog/authors/kelly-hair",{"name":4711,"config":4712},"Kelly Hair",{"headshot":725,"ctfId":4713},"16z1eHwE7Ok5Ty4C6gpbUY",{"template":694},"content:en-us:blog:authors:kelly-hair.yml","en-us/blog/authors/kelly-hair.yml","en-us/blog/authors/kelly-hair",{"_path":4719,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4720,"config":4724,"_id":4725,"_type":32,"title":4721,"_source":34,"_file":4726,"_stem":4727,"_extension":37},"/en-us/blog/authors/kendra-marquart",{"name":4721,"config":4722},"Kendra Marquart",{"headshot":7,"ctfId":4723},"kmarquart",{"template":694},"content:en-us:blog:authors:kendra-marquart.yml","en-us/blog/authors/kendra-marquart.yml","en-us/blog/authors/kendra-marquart",{"_path":4729,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4730,"config":4734,"_id":4735,"_type":32,"title":4731,"_source":34,"_file":4736,"_stem":4737,"_extension":37},"/en-us/blog/authors/kenny-johnston",{"name":4731,"config":4732},"Kenny Johnston",{"headshot":7,"ctfId":4733},"kencjohnston",{"template":694},"content:en-us:blog:authors:kenny-johnston.yml","en-us/blog/authors/kenny-johnston.yml","en-us/blog/authors/kenny-johnston",{"_path":4739,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4740,"config":4745,"_id":4746,"_type":32,"title":4741,"_source":34,"_file":4747,"_stem":4748,"_extension":37},"/en-us/blog/authors/kevin-chu",{"name":4741,"config":4742},"Kevin Chu",{"headshot":4743,"ctfId":4744},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683472/Blog/Author%20Headshots/Screenshot_2024-01-12_at_2.12.33_PM.png","4wPeZqchWYCDsBeGjla485",{"template":694},"content:en-us:blog:authors:kevin-chu.yml","en-us/blog/authors/kevin-chu.yml","en-us/blog/authors/kevin-chu",{"_path":4750,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4751,"config":4756,"_id":4757,"_type":32,"title":4752,"_source":34,"_file":4758,"_stem":4759,"_extension":37},"/en-us/blog/authors/kevin-morrison",{"name":4752,"config":4753},"Kevin Morrison",{"headshot":4754,"ctfId":4755},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663642/Blog/Author%20Headshots/kevin_morrison_headshot.png","AcJIuz1VNQZIVdqgesMMh",{"template":694},"content:en-us:blog:authors:kevin-morrison.yml","en-us/blog/authors/kevin-morrison.yml","en-us/blog/authors/kevin-morrison",{"_path":4761,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4762,"config":4766,"_id":4767,"_type":32,"title":4763,"_source":34,"_file":4768,"_stem":4769,"_extension":37},"/en-us/blog/authors/khrystyna-humenna",{"name":4763,"config":4764},"Khrystyna Humenna",{"headshot":725,"ctfId":4765},"Khrystyna-Humenna",{"template":694},"content:en-us:blog:authors:khrystyna-humenna.yml","en-us/blog/authors/khrystyna-humenna.yml","en-us/blog/authors/khrystyna-humenna",{"_path":4771,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4772,"config":4776,"_id":4777,"_type":32,"title":4773,"_source":34,"_file":4778,"_stem":4779,"_extension":37},"/en-us/blog/authors/kim-lock",{"name":4773,"config":4774},"Kim Lock",{"headshot":7,"ctfId":4775},"KimLock",{"template":694},"content:en-us:blog:authors:kim-lock.yml","en-us/blog/authors/kim-lock.yml","en-us/blog/authors/kim-lock",{"_path":4781,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4782,"config":4786,"_id":4787,"_type":32,"title":4783,"_source":34,"_file":4788,"_stem":4789,"_extension":37},"/en-us/blog/authors/kirsten-abma",{"name":4783,"config":4784},"Kirsten Abma",{"headshot":725,"ctfId":4785},"Kirsten-Abma",{"template":694},"content:en-us:blog:authors:kirsten-abma.yml","en-us/blog/authors/kirsten-abma.yml","en-us/blog/authors/kirsten-abma",{"_path":4791,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4792,"config":4796,"_id":4797,"_type":32,"title":4793,"_source":34,"_file":4798,"_stem":4799,"_extension":37},"/en-us/blog/authors/kristian-larsson",{"name":4793,"config":4794},"Kristian Larsson",{"headshot":725,"ctfId":4795},"Kristian-Larsson",{"template":694},"content:en-us:blog:authors:kristian-larsson.yml","en-us/blog/authors/kristian-larsson.yml","en-us/blog/authors/kristian-larsson",{"_path":4801,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4802,"config":4807,"_id":4808,"_type":32,"title":4803,"_source":34,"_file":4809,"_stem":4810,"_extension":37},"/en-us/blog/authors/kristina-weis",{"name":4803,"config":4804},"Kristina Weis",{"headshot":4805,"ctfId":4806},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663955/Blog/Author%20Headshots/K-W-0155.jpg","kristinaweis",{"template":694},"content:en-us:blog:authors:kristina-weis.yml","en-us/blog/authors/kristina-weis.yml","en-us/blog/authors/kristina-weis",{"_path":4812,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4813,"config":4817,"_id":4818,"_type":32,"title":4814,"_source":34,"_file":4819,"_stem":4820,"_extension":37},"/en-us/blog/authors/kurt-dusek",{"name":4814,"config":4815},"Kurt Dusek",{"headshot":7,"ctfId":4816},"kdusek",{"template":694},"content:en-us:blog:authors:kurt-dusek.yml","en-us/blog/authors/kurt-dusek.yml","en-us/blog/authors/kurt-dusek",{"_path":4822,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4823,"config":4827,"_id":4828,"_type":32,"title":4824,"_source":34,"_file":4829,"_stem":4830,"_extension":37},"/en-us/blog/authors/kushal-koolwal",{"name":4824,"config":4825},"Kushal Koolwal",{"headshot":725,"ctfId":4826},"Kushal-Koolwal",{"template":694},"content:en-us:blog:authors:kushal-koolwal.yml","en-us/blog/authors/kushal-koolwal.yml","en-us/blog/authors/kushal-koolwal",{"_path":4832,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4833,"config":4838,"_id":4839,"_type":32,"title":4834,"_source":34,"_file":4840,"_stem":4841,"_extension":37},"/en-us/blog/authors/kushal-pandya",{"name":4834,"config":4835},"Kushal Pandya",{"headshot":4836,"ctfId":4837},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659454/Blog/Author%20Headshots/kushalpandya-headshot.png","kushalpandya",{"template":694},"content:en-us:blog:authors:kushal-pandya.yml","en-us/blog/authors/kushal-pandya.yml","en-us/blog/authors/kushal-pandya",{"_path":4843,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4844,"config":4848,"_id":4849,"_type":32,"title":4845,"_source":34,"_file":4850,"_stem":4851,"_extension":37},"/en-us/blog/authors/kwan-lee",{"name":4845,"config":4846},"Kwan Lee",{"headshot":725,"ctfId":4847},"Kwan-Lee",{"template":694},"content:en-us:blog:authors:kwan-lee.yml","en-us/blog/authors/kwan-lee.yml","en-us/blog/authors/kwan-lee",{"_path":4853,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4854,"config":4859,"_id":4860,"_type":32,"title":4855,"_source":34,"_file":4861,"_stem":4862,"_extension":37},"/en-us/blog/authors/kyla-gradin-dahl",{"name":4855,"config":4856},"Kyla Gradin Dahl",{"headshot":4857,"ctfId":4858},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682273/Blog/Author%20Headshots/kyla-headshot.jpg","kyla",{"template":694},"content:en-us:blog:authors:kyla-gradin-dahl.yml","en-us/blog/authors/kyla-gradin-dahl.yml","en-us/blog/authors/kyla-gradin-dahl",{"_path":4864,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4865,"config":4869,"_id":4870,"_type":32,"title":4866,"_source":34,"_file":4871,"_stem":4872,"_extension":37},"/en-us/blog/authors/kyle-mann",{"name":4866,"config":4867},"Kyle Mann",{"headshot":725,"ctfId":4868},"44YiW1r6sTpbC9wKBeHGgE",{"template":694},"content:en-us:blog:authors:kyle-mann.yml","en-us/blog/authors/kyle-mann.yml","en-us/blog/authors/kyle-mann",{"_path":4874,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4875,"config":4880,"_id":4881,"_type":32,"title":4876,"_source":34,"_file":4882,"_stem":4883,"_extension":37},"/en-us/blog/authors/kyle-smith",{"name":4876,"config":4877},"Kyle Smith",{"headshot":4878,"ctfId":4879},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664290/Blog/Author%20Headshots/kyle_smith_headshot.png","3Cec6opzqJpbhKXQ5nA4gU",{"template":694},"content:en-us:blog:authors:kyle-smith.yml","en-us/blog/authors/kyle-smith.yml","en-us/blog/authors/kyle-smith",{"_path":4885,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4886,"config":4890,"_id":4892,"_type":32,"title":4887,"_source":34,"_file":4893,"_stem":4894,"_extension":37},"/en-us/blog/authors/kymberlee-price",{"name":4887,"config":4888},"Kymberlee Price",{"headshot":4889},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753961652/wggh3ikqpm5plrptfza0.png",{"template":694,"gitlabHandle":4891},"eelrebmyk","content:en-us:blog:authors:kymberlee-price.yml","en-us/blog/authors/kymberlee-price.yml","en-us/blog/authors/kymberlee-price",{"_path":4896,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4897,"config":4901,"_id":4902,"_type":32,"title":4898,"_source":34,"_file":4903,"_stem":4904,"_extension":37},"/en-us/blog/authors/lasse-schuirmann",{"name":4898,"config":4899},"Lasse Schuirmann",{"headshot":725,"ctfId":4900},"5vpo2ZOrPIS8PBp3k47S6w",{"template":694},"content:en-us:blog:authors:lasse-schuirmann.yml","en-us/blog/authors/lasse-schuirmann.yml","en-us/blog/authors/lasse-schuirmann",{"_path":4906,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4907,"config":4911,"_id":4912,"_type":32,"title":4908,"_source":34,"_file":4913,"_stem":4914,"_extension":37},"/en-us/blog/authors/laura-montemayor",{"name":4908,"config":4909},"Laura Montemayor",{"headshot":7,"ctfId":4910},"lauraMon",{"template":694},"content:en-us:blog:authors:laura-montemayor.yml","en-us/blog/authors/laura-montemayor.yml","en-us/blog/authors/laura-montemayor",{"_path":4916,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4917,"config":4922,"_id":4923,"_type":32,"title":4918,"_source":34,"_file":4924,"_stem":4925,"_extension":37},"/en-us/blog/authors/lauren-barker",{"name":4918,"config":4919},"Lauren Barker",{"headshot":4920,"ctfId":4921},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669974/Blog/Author%20Headshots/laurenbarker-headshot.jpg","laurenbarker",{"template":694},"content:en-us:blog:authors:lauren-barker.yml","en-us/blog/authors/lauren-barker.yml","en-us/blog/authors/lauren-barker",{"_path":4927,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4928,"config":4932,"_id":4933,"_type":32,"title":4929,"_source":34,"_file":4934,"_stem":4935,"_extension":37},"/en-us/blog/authors/lauren-gibbons-paul",{"name":4929,"config":4930},"Lauren Gibbons Paul",{"headshot":725,"ctfId":4931},"Lauren-Gibbons-Paul",{"template":694},"content:en-us:blog:authors:lauren-gibbons-paul.yml","en-us/blog/authors/lauren-gibbons-paul.yml","en-us/blog/authors/lauren-gibbons-paul",{"_path":4937,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4938,"config":4942,"_id":4943,"_type":32,"title":4939,"_source":34,"_file":4944,"_stem":4945,"_extension":37},"/en-us/blog/authors/lauren-minning",{"name":4939,"config":4940},"Lauren Minning",{"headshot":7,"ctfId":4941},"lminning",{"template":694},"content:en-us:blog:authors:lauren-minning.yml","en-us/blog/authors/lauren-minning.yml","en-us/blog/authors/lauren-minning",{"_path":4947,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4948,"config":4953,"_id":4954,"_type":32,"title":4949,"_source":34,"_file":4955,"_stem":4956,"_extension":37},"/en-us/blog/authors/laurena-alves",{"name":4949,"config":4950},"Laurena Alves",{"headshot":4951,"ctfId":4952},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750713473/ip0jiy4wwyc0btfb09y5.png","Q834apoVRmcNXy507xyf5",{"template":694},"content:en-us:blog:authors:laurena-alves.yml","en-us/blog/authors/laurena-alves.yml","en-us/blog/authors/laurena-alves",{"_path":4958,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4959,"config":4964,"_id":4965,"_type":32,"title":4960,"_source":34,"_file":4966,"_stem":4967,"_extension":37},"/en-us/blog/authors/lee-faus",{"name":4960,"config":4961},"Lee Faus",{"headshot":4962,"ctfId":4963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666427/Blog/Author%20Headshots/lee_faus_headshot.png","lfaus",{"template":694},"content:en-us:blog:authors:lee-faus.yml","en-us/blog/authors/lee-faus.yml","en-us/blog/authors/lee-faus",{"_path":4969,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4970,"config":4975,"_id":4976,"_type":32,"title":4971,"_source":34,"_file":4977,"_stem":4978,"_extension":37},"/en-us/blog/authors/lee-matos",{"name":4971,"config":4972},"Lee Matos",{"headshot":4973,"ctfId":4974},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670430/Blog/Author%20Headshots/lbot-headshot.jpg","lbot",{"template":694},"content:en-us:blog:authors:lee-matos.yml","en-us/blog/authors/lee-matos.yml","en-us/blog/authors/lee-matos",{"_path":4980,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4981,"config":4986,"_id":4987,"_type":32,"title":4982,"_source":34,"_file":4988,"_stem":4989,"_extension":37},"/en-us/blog/authors/lee-tickett",{"name":4982,"config":4983},"Lee Tickett",{"headshot":4984,"ctfId":4985},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752592356/ibeixykxeiey9aiebylt.png","leetickett",{"template":694},"content:en-us:blog:authors:lee-tickett.yml","en-us/blog/authors/lee-tickett.yml","en-us/blog/authors/lee-tickett",{"_path":4991,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":4992,"config":4996,"_id":4997,"_type":32,"title":4993,"_source":34,"_file":4998,"_stem":4999,"_extension":37},"/en-us/blog/authors/levente-polyak",{"name":4993,"config":4994},"Levente Polyak",{"headshot":7,"ctfId":4995},"anthraxx",{"template":694},"content:en-us:blog:authors:levente-polyak.yml","en-us/blog/authors/levente-polyak.yml","en-us/blog/authors/levente-polyak",{"_path":5001,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5002,"config":5007,"_id":5008,"_type":32,"title":5009,"_source":34,"_file":5010,"_stem":5011,"_extension":37},"/en-us/blog/authors/lin-jen-shin",{"name":5003,"config":5004},"Lin Jen-Shin",{"headshot":5005,"ctfId":5006},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678992/Blog/Author%20Headshots/godfat-gitlab-headshot.jpg","godfatgitlab",{"template":694},"content:en-us:blog:authors:lin-jen-shin.yml","Lin Jen Shin","en-us/blog/authors/lin-jen-shin.yml","en-us/blog/authors/lin-jen-shin",{"_path":5013,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5014,"config":5019,"_id":5020,"_type":32,"title":5015,"_source":34,"_file":5021,"_stem":5022,"_extension":37},"/en-us/blog/authors/liz-coleman",{"name":5015,"config":5016},"Liz Coleman",{"headshot":5017,"ctfId":5018},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659695/Blog/Author%20Headshots/coleman_headshot.png","5MTSBqnOko7zYTQa3vVy1c",{"template":694},"content:en-us:blog:authors:liz-coleman.yml","en-us/blog/authors/liz-coleman.yml","en-us/blog/authors/liz-coleman",{"_path":5024,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5025,"config":5030,"_id":5031,"_type":32,"title":5026,"_source":34,"_file":5032,"_stem":5033,"_extension":37},"/en-us/blog/authors/loryn-bortins",{"name":5026,"config":5027},"Loryn Bortins",{"headshot":5028,"ctfId":5029},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668992/Blog/Author%20Headshots/loryn_bortins_headshot.png","5LgbtMISutHieB86Rk8uOL",{"template":694},"content:en-us:blog:authors:loryn-bortins.yml","en-us/blog/authors/loryn-bortins.yml","en-us/blog/authors/loryn-bortins",{"_path":5035,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5036,"config":5040,"_id":5041,"_type":32,"title":5037,"_source":34,"_file":5042,"_stem":5043,"_extension":37},"/en-us/blog/authors/lucas-charles",{"name":5037,"config":5038},"Lucas Charles",{"headshot":725,"ctfId":5039},"01OUkmRJImMowxMk3YHGNS",{"template":694},"content:en-us:blog:authors:lucas-charles.yml","en-us/blog/authors/lucas-charles.yml","en-us/blog/authors/lucas-charles",{"_path":5045,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5046,"config":5050,"_id":5051,"_type":32,"title":5047,"_source":34,"_file":5052,"_stem":5053,"_extension":37},"/en-us/blog/authors/luka-trbojevic",{"name":5047,"config":5048},"Luka Trbojevic",{"headshot":7,"ctfId":5049},"ltrbojevic",{"template":694},"content:en-us:blog:authors:luka-trbojevic.yml","en-us/blog/authors/luka-trbojevic.yml","en-us/blog/authors/luka-trbojevic",{"_path":5055,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5056,"config":5060,"_id":5061,"_type":32,"title":5057,"_source":34,"_file":5062,"_stem":5063,"_extension":37},"/en-us/blog/authors/lukas-eipert",{"name":5057,"config":5058},"Lukas Eipert",{"headshot":725,"ctfId":5059},"37PO8stm7JUQgglr4tWcmw",{"template":694},"content:en-us:blog:authors:lukas-eipert.yml","en-us/blog/authors/lukas-eipert.yml","en-us/blog/authors/lukas-eipert",{"_path":5065,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5066,"config":5071,"_id":5072,"_type":32,"title":5067,"_source":34,"_file":5073,"_stem":5074,"_extension":37},"/en-us/blog/authors/lyle-kozloff",{"name":5067,"config":5068},"Lyle Kozloff",{"headshot":5069,"ctfId":5070},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666803/Blog/Author%20Headshots/lyle-headshot.jpg","lyle",{"template":694},"content:en-us:blog:authors:lyle-kozloff.yml","en-us/blog/authors/lyle-kozloff.yml","en-us/blog/authors/lyle-kozloff",{"_path":5076,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5077,"config":5082,"_id":5083,"_type":32,"title":5078,"_source":34,"_file":5084,"_stem":5085,"_extension":37},"/en-us/blog/authors/madeline-lake",{"name":5078,"config":5079},"Madeline Lake",{"headshot":5080,"ctfId":5081},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659736/Blog/Author%20Headshots/madlake-headshot.jpg","madlake",{"template":694},"content:en-us:blog:authors:madeline-lake.yml","en-us/blog/authors/madeline-lake.yml","en-us/blog/authors/madeline-lake",{"_path":5087,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5088,"config":5093,"_id":5094,"_type":32,"title":5089,"_source":34,"_file":5095,"_stem":5096,"_extension":37},"/en-us/blog/authors/madou-coulibaly",{"name":5089,"config":5090},"Madou Coulibaly",{"headshot":5091,"ctfId":5092},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679848/Blog/Author%20Headshots/madou-headshot.jpg","madou",{"template":694},"content:en-us:blog:authors:madou-coulibaly.yml","en-us/blog/authors/madou-coulibaly.yml","en-us/blog/authors/madou-coulibaly",{"_path":5098,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5099,"config":5104,"_id":5105,"_type":32,"title":5100,"_source":34,"_file":5106,"_stem":5107,"_extension":37},"/en-us/blog/authors/magdalena-frankiewicz",{"name":5100,"config":5101},"Magdalena Frankiewicz",{"headshot":5102,"ctfId":5103},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663511/Blog/Author%20Headshots/m_frankiewicz-headshot.jpg","mfrankiewicz",{"template":694},"content:en-us:blog:authors:magdalena-frankiewicz.yml","en-us/blog/authors/magdalena-frankiewicz.yml","en-us/blog/authors/magdalena-frankiewicz",{"_path":5109,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5110,"config":5114,"_id":5115,"_type":32,"title":5111,"_source":34,"_file":5116,"_stem":5117,"_extension":37},"/en-us/blog/authors/mahesh-kumar",{"name":5111,"config":5112},"Mahesh Kumar",{"headshot":725,"ctfId":5113},"2ihYV6SzSOXfvpI2eJ87Mv",{"template":694},"content:en-us:blog:authors:mahesh-kumar.yml","en-us/blog/authors/mahesh-kumar.yml","en-us/blog/authors/mahesh-kumar",{"_path":5119,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5120,"config":5125,"_id":5126,"_type":32,"title":5121,"_source":34,"_file":5127,"_stem":5128,"_extension":37},"/en-us/blog/authors/manav-khurana",{"name":5121,"config":5122,"role":5124},"Manav Khurana",{"headshot":5123},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1757676476/ygij7nxvn2caq6vajhmy.png","Chief Product and Marketing Officer",{"template":694,"gitlabHandle":7},"content:en-us:blog:authors:manav-khurana.yml","en-us/blog/authors/manav-khurana.yml","en-us/blog/authors/manav-khurana",{"_path":5130,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5131,"config":5136,"_id":5137,"_type":32,"title":5132,"_source":34,"_file":5138,"_stem":5139,"_extension":37},"/en-us/blog/authors/manuel-kraft",{"name":5132,"config":5133},"Manuel Kraft",{"headshot":5134,"ctfId":5135},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659815/Blog/Author%20Headshots/manuel_kraft.png","5q1NADtEqxyoV1F1s6JKDz",{"template":694},"content:en-us:blog:authors:manuel-kraft.yml","en-us/blog/authors/manuel-kraft.yml","en-us/blog/authors/manuel-kraft",{"_path":5141,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5142,"config":5146,"_id":5147,"_type":32,"title":5143,"_source":34,"_file":5148,"_stem":5149,"_extension":37},"/en-us/blog/authors/marc-radulescu",{"name":5143,"config":5144},"Marc Radulescu",{"headshot":725,"ctfId":5145},"Marc-Radulescu",{"template":694},"content:en-us:blog:authors:marc-radulescu.yml","en-us/blog/authors/marc-radulescu.yml","en-us/blog/authors/marc-radulescu",{"_path":5151,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5152,"config":5157,"_id":5158,"_type":32,"title":5153,"_source":34,"_file":5159,"_stem":5160,"_extension":37},"/en-us/blog/authors/marc-shaw",{"name":5153,"config":5154},"Marc Shaw",{"headshot":5155,"ctfId":5156},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672589/Blog/Author%20Headshots/marc_shaw-headshot.jpg","marcshaw",{"template":694},"content:en-us:blog:authors:marc-shaw.yml","en-us/blog/authors/marc-shaw.yml","en-us/blog/authors/marc-shaw",{"_path":5162,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5163,"config":5168,"_id":5169,"_type":32,"title":5170,"_source":34,"_file":5171,"_stem":5172,"_extension":37},"/en-us/blog/authors/marcel-van-remmerden",{"name":5164,"config":5165},"Marcel van Remmerden",{"headshot":5166,"ctfId":5167},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669545/Blog/Author%20Headshots/mvanremmerden-headshot.jpg","7lMCQY4CU5xfTjIiMsNqkR",{"template":694},"content:en-us:blog:authors:marcel-van-remmerden.yml","Marcel Van Remmerden","en-us/blog/authors/marcel-van-remmerden.yml","en-us/blog/authors/marcel-van-remmerden",{"_path":5174,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5175,"config":5179,"_id":5180,"_type":32,"title":5176,"_source":34,"_file":5181,"_stem":5182,"_extension":37},"/en-us/blog/authors/marcia-ramos",{"name":5176,"config":5177},"Marcia Ramos",{"headshot":725,"ctfId":5178},"Marcia-Ramos",{"template":694},"content:en-us:blog:authors:marcia-ramos.yml","en-us/blog/authors/marcia-ramos.yml","en-us/blog/authors/marcia-ramos",{"_path":5184,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5185,"config":5189,"_id":5190,"_type":32,"title":5186,"_source":34,"_file":5191,"_stem":5192,"_extension":37},"/en-us/blog/authors/marco-lenzo",{"name":5186,"config":5187},"Marco Lenzo",{"headshot":725,"ctfId":5188},"Marco-Lenzo",{"template":694},"content:en-us:blog:authors:marco-lenzo.yml","en-us/blog/authors/marco-lenzo.yml","en-us/blog/authors/marco-lenzo",{"_path":5194,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5195,"config":5199,"_id":5200,"_type":32,"title":5196,"_source":34,"_file":5201,"_stem":5202,"_extension":37},"/en-us/blog/authors/marie-hargitt",{"name":5196,"config":5197},"Marie Hargitt",{"headshot":725,"ctfId":5198},"Marie-Hargitt",{"template":694},"content:en-us:blog:authors:marie-hargitt.yml","en-us/blog/authors/marie-hargitt.yml","en-us/blog/authors/marie-hargitt",{"_path":5204,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5205,"config":5210,"_id":5211,"_type":32,"title":5206,"_source":34,"_file":5212,"_stem":5213,"_extension":37},"/en-us/blog/authors/marin-jankovski",{"name":5206,"config":5207},"Marin Jankovski",{"headshot":5208,"ctfId":5209},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671628/Blog/Author%20Headshots/marin-headshot.jpg","Marin-Jankovski",{"template":694},"content:en-us:blog:authors:marin-jankovski.yml","en-us/blog/authors/marin-jankovski.yml","en-us/blog/authors/marin-jankovski",{"_path":5215,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5216,"config":5220,"_id":5221,"_type":32,"title":5222,"_source":34,"_file":5223,"_stem":5224,"_extension":37},"/en-us/blog/authors/marin-job",{"name":5217,"config":5218},"Marin, Job",{"headshot":725,"ctfId":5219},"Marin-Job",{"template":694},"content:en-us:blog:authors:marin-job.yml","Marin Job","en-us/blog/authors/marin-job.yml","en-us/blog/authors/marin-job",{"_path":5226,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5227,"config":5231,"_id":5232,"_type":32,"title":5233,"_source":34,"_file":5234,"_stem":5235,"_extension":37},"/en-us/blog/authors/mario-de-la-ossa",{"name":5228,"config":5229},"Mario de la Ossa",{"headshot":7,"ctfId":5230},"mdelaossa",{"template":694},"content:en-us:blog:authors:mario-de-la-ossa.yml","Mario De La Ossa","en-us/blog/authors/mario-de-la-ossa.yml","en-us/blog/authors/mario-de-la-ossa",{"_path":5237,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5238,"config":5242,"_id":5243,"_type":32,"title":5239,"_source":34,"_file":5244,"_stem":5245,"_extension":37},"/en-us/blog/authors/mark-art",{"name":5239,"config":5240},"Mark Art",{"headshot":725,"ctfId":5241},"55KCfyNmgPaJRmBZhiN7k5",{"template":694},"content:en-us:blog:authors:mark-art.yml","en-us/blog/authors/mark-art.yml","en-us/blog/authors/mark-art",{"_path":5247,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5248,"config":5252,"_id":5253,"_type":32,"title":5249,"_source":34,"_file":5254,"_stem":5255,"_extension":37},"/en-us/blog/authors/mark-fletcher",{"name":5249,"config":5250},"Mark Fletcher",{"headshot":7,"ctfId":5251},"markglenfletcher",{"template":694},"content:en-us:blog:authors:mark-fletcher.yml","en-us/blog/authors/mark-fletcher.yml","en-us/blog/authors/mark-fletcher",{"_path":5257,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5258,"config":5263,"_id":5264,"_type":32,"title":5259,"_source":34,"_file":5265,"_stem":5266,"_extension":37},"/en-us/blog/authors/mark-lapierre",{"name":5259,"config":5260},"Mark Lapierre",{"headshot":5261,"ctfId":5262},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669066/Blog/Author%20Headshots/mark_lapierre.png","2Fnsk5H33npbli2fy9kMqu",{"template":694},"content:en-us:blog:authors:mark-lapierre.yml","en-us/blog/authors/mark-lapierre.yml","en-us/blog/authors/mark-lapierre",{"_path":5268,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5269,"config":5274,"_id":5275,"_type":32,"title":5270,"_source":34,"_file":5276,"_stem":5277,"_extension":37},"/en-us/blog/authors/mark-loveless",{"name":5270,"config":5271},"Mark Loveless",{"headshot":5272,"ctfId":5273},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664093/Blog/Author%20Headshots/mloveless-headshot.png","mloveless",{"template":694},"content:en-us:blog:authors:mark-loveless.yml","en-us/blog/authors/mark-loveless.yml","en-us/blog/authors/mark-loveless",{"_path":5279,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5280,"config":5284,"_id":5285,"_type":32,"title":5281,"_source":34,"_file":5286,"_stem":5287,"_extension":37},"/en-us/blog/authors/mark-pundsack",{"name":5281,"config":5282},"Mark Pundsack",{"headshot":725,"ctfId":5283},"markpundsack",{"template":694},"content:en-us:blog:authors:mark-pundsack.yml","en-us/blog/authors/mark-pundsack.yml","en-us/blog/authors/mark-pundsack",{"_path":5289,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5290,"config":5295,"_id":5296,"_type":32,"title":5297,"_source":34,"_file":5298,"_stem":5299,"_extension":37},"/en-us/blog/authors/martin-brmmer",{"name":5291,"config":5292},"Martin Brümmer",{"headshot":5293,"ctfId":5294},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659427/Blog/Author%20Headshots/martin_brummer.webp","1QkLKK0UnkvZDDBzzEhkaA",{"template":694},"content:en-us:blog:authors:martin-brmmer.yml","Martin Brmmer","en-us/blog/authors/martin-brmmer.yml","en-us/blog/authors/martin-brmmer",{"_path":5301,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5302,"config":5306,"_id":5307,"_type":32,"title":5303,"_source":34,"_file":5308,"_stem":5309,"_extension":37},"/en-us/blog/authors/martynas-krupskis",{"name":5303,"config":5304},"Martynas Krupskis",{"headshot":725,"ctfId":5305},"3tK5S0f4QshGFGRrdEl7rn",{"template":694},"content:en-us:blog:authors:martynas-krupskis.yml","en-us/blog/authors/martynas-krupskis.yml","en-us/blog/authors/martynas-krupskis",{"_path":5311,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5312,"config":5316,"_id":5317,"_type":32,"title":5313,"_source":34,"_file":5318,"_stem":5319,"_extension":37},"/en-us/blog/authors/matej-latin",{"name":5313,"config":5314},"Matej Latin",{"headshot":7,"ctfId":5315},"matejlatin",{"template":694},"content:en-us:blog:authors:matej-latin.yml","en-us/blog/authors/matej-latin.yml","en-us/blog/authors/matej-latin",{"_path":5321,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5322,"config":5327,"_id":5328,"_type":32,"title":5323,"_source":34,"_file":5329,"_stem":5330,"_extension":37},"/en-us/blog/authors/mathias-ewald",{"name":5323,"config":5324},"Mathias Ewald",{"headshot":5325,"ctfId":5326},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664526/Blog/Author%20Headshots/mathias_ewald_headshot.png","7vLTPhU3yvh4xTToXcLpg9",{"template":694},"content:en-us:blog:authors:mathias-ewald.yml","en-us/blog/authors/mathias-ewald.yml","en-us/blog/authors/mathias-ewald",{"_path":5332,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5333,"config":5337,"_id":5338,"_type":32,"title":5334,"_source":34,"_file":5339,"_stem":5340,"_extension":37},"/en-us/blog/authors/matt-baldwin",{"name":5334,"config":5335},"Matt Baldwin",{"headshot":725,"ctfId":5336},"Matt-Baldwin",{"template":694},"content:en-us:blog:authors:matt-baldwin.yml","en-us/blog/authors/matt-baldwin.yml","en-us/blog/authors/matt-baldwin",{"_path":5342,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5343,"config":5348,"_id":5349,"_type":32,"title":5344,"_source":34,"_file":5350,"_stem":5351,"_extension":37},"/en-us/blog/authors/matt-coons",{"name":5344,"config":5345},"Matt Coons",{"headshot":5346,"ctfId":5347},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661888/Blog/Author%20Headshots/mcoons-headshot.jpg","mcoons",{"template":694},"content:en-us:blog:authors:matt-coons.yml","en-us/blog/authors/matt-coons.yml","en-us/blog/authors/matt-coons",{"_path":5353,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5354,"config":5359,"_id":5360,"_type":32,"title":5361,"_source":34,"_file":5362,"_stem":5363,"_extension":37},"/en-us/blog/authors/matt-delaney",{"name":5355,"config":5356},"Matt DeLaney",{"headshot":5357,"ctfId":5358},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659749/Blog/Author%20Headshots/matt_delaney_headshot.png","6apeWdrqrZlMIdaxzV5NvZ",{"template":694},"content:en-us:blog:authors:matt-delaney.yml","Matt Delaney","en-us/blog/authors/matt-delaney.yml","en-us/blog/authors/matt-delaney",{"_path":5365,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5366,"config":5371,"_id":5372,"_type":32,"title":5367,"_source":34,"_file":5373,"_stem":5374,"_extension":37},"/en-us/blog/authors/matt-genelin",{"name":5367,"config":5368},"Matt Genelin",{"headshot":5369,"ctfId":5370},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664522/Blog/Author%20Headshots/matty_genelin.png","6x9dTYZik3lSViI8hu6dYQ",{"template":694},"content:en-us:blog:authors:matt-genelin.yml","en-us/blog/authors/matt-genelin.yml","en-us/blog/authors/matt-genelin",{"_path":5376,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5377,"config":5381,"_id":5382,"_type":32,"title":5378,"_source":34,"_file":5383,"_stem":5384,"_extension":37},"/en-us/blog/authors/matt-nguyen",{"name":5378,"config":5379},"Matt Nguyen",{"headshot":725,"ctfId":5380},"Matt-Nguyen",{"template":694},"content:en-us:blog:authors:matt-nguyen.yml","en-us/blog/authors/matt-nguyen.yml","en-us/blog/authors/matt-nguyen",{"_path":5386,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5387,"config":5392,"_id":5393,"_type":32,"title":5388,"_source":34,"_file":5394,"_stem":5395,"_extension":37},"/en-us/blog/authors/matt-nohr",{"name":5388,"config":5389},"Matt Nohr",{"headshot":5390,"ctfId":5391},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681473/Blog/Author%20Headshots/mnohr-headshot.jpg","mnohr",{"template":694},"content:en-us:blog:authors:matt-nohr.yml","en-us/blog/authors/matt-nohr.yml","en-us/blog/authors/matt-nohr",{"_path":5397,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5398,"config":5403,"_id":5404,"_type":32,"title":5399,"_source":34,"_file":5405,"_stem":5406,"_extension":37},"/en-us/blog/authors/matt-smiley",{"name":5399,"config":5400},"Matt Smiley",{"headshot":5401,"ctfId":5402},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682529/Blog/Author%20Headshots/msmiley-headshot.jpg","msmiley",{"template":694},"content:en-us:blog:authors:matt-smiley.yml","en-us/blog/authors/matt-smiley.yml","en-us/blog/authors/matt-smiley",{"_path":5408,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5409,"config":5413,"_id":5414,"_type":32,"title":5410,"_source":34,"_file":5415,"_stem":5416,"_extension":37},"/en-us/blog/authors/matt-wilson",{"name":5410,"config":5411},"Matt Wilson",{"headshot":725,"ctfId":5412},"mattwilson",{"template":694},"content:en-us:blog:authors:matt-wilson.yml","en-us/blog/authors/matt-wilson.yml","en-us/blog/authors/matt-wilson",{"_path":5418,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5419,"config":5424,"_id":5425,"_type":32,"title":5420,"_source":34,"_file":5426,"_stem":5427,"_extension":37},"/en-us/blog/authors/matthew-macfarlane",{"name":5420,"config":5421},"Matthew Macfarlane",{"headshot":5422,"ctfId":5423},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663160/Blog/Author%20Headshots/matthew_mcfarlane_headshot.png","6dyod6DIfkxY5CognC5g2N",{"template":694},"content:en-us:blog:authors:matthew-macfarlane.yml","en-us/blog/authors/matthew-macfarlane.yml","en-us/blog/authors/matthew-macfarlane",{"_path":5429,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5430,"config":5435,"_id":5436,"_type":32,"title":5431,"_source":34,"_file":5437,"_stem":5438,"_extension":37},"/en-us/blog/authors/matthew-nearents",{"name":5431,"config":5432},"Matthew Nearents",{"headshot":5433,"ctfId":5434},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681789/Blog/Author%20Headshots/mnearents-headshot.jpg","mnearents",{"template":694},"content:en-us:blog:authors:matthew-nearents.yml","en-us/blog/authors/matthew-nearents.yml","en-us/blog/authors/matthew-nearents",{"_path":5440,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5441,"config":5446,"_id":5447,"_type":32,"title":5448,"_source":34,"_file":5449,"_stem":5450,"_extension":37},"/en-us/blog/authors/matthias-kppler",{"name":5442,"config":5443},"Matthias Käppler",{"headshot":5444,"ctfId":5445},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670351/Blog/Author%20Headshots/mkaeppler-headshot.jpg","mkaeppler",{"template":694},"content:en-us:blog:authors:matthias-kppler.yml","Matthias Kppler","en-us/blog/authors/matthias-kppler.yml","en-us/blog/authors/matthias-kppler",{"_path":5452,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5453,"config":5457,"_id":5458,"_type":32,"title":5454,"_source":34,"_file":5459,"_stem":5460,"_extension":37},"/en-us/blog/authors/matthieu-fronton",{"name":5454,"config":5455},"Matthieu Fronton",{"headshot":7,"ctfId":5456},"frntn",{"template":694},"content:en-us:blog:authors:matthieu-fronton.yml","en-us/blog/authors/matthieu-fronton.yml","en-us/blog/authors/matthieu-fronton",{"_path":5462,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5463,"config":5467,"_id":5468,"_type":32,"title":5464,"_source":34,"_file":5469,"_stem":5470,"_extension":37},"/en-us/blog/authors/max-woolf",{"name":5464,"config":5465},"Max Woolf",{"headshot":725,"ctfId":5466},"Max-Woolf",{"template":694},"content:en-us:blog:authors:max-woolf.yml","en-us/blog/authors/max-woolf.yml","en-us/blog/authors/max-woolf",{"_path":5472,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5473,"config":5478,"_id":5479,"_type":32,"title":5474,"_source":34,"_file":5480,"_stem":5481,"_extension":37},"/en-us/blog/authors/maximilien-belinga",{"name":5474,"config":5475},"Maximilien Belinga",{"headshot":5476,"ctfId":5477},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665080/Blog/Author%20Headshots/max_belinga.png","4n2a5tKPKk6qCis0IzevOS",{"template":694},"content:en-us:blog:authors:maximilien-belinga.yml","en-us/blog/authors/maximilien-belinga.yml","en-us/blog/authors/maximilien-belinga",{"_path":5483,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5484,"config":5488,"_id":5489,"_type":32,"title":5485,"_source":34,"_file":5490,"_stem":5491,"_extension":37},"/en-us/blog/authors/mayank-tahilramani",{"name":5485,"config":5486},"Mayank Tahilramani",{"headshot":7,"ctfId":5487},"mayanktahil",{"template":694},"content:en-us:blog:authors:mayank-tahilramani.yml","en-us/blog/authors/mayank-tahilramani.yml","en-us/blog/authors/mayank-tahilramani",{"_path":5493,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5494,"config":5499,"_id":5500,"_type":32,"title":5495,"_source":34,"_file":5501,"_stem":5502,"_extension":37},"/en-us/blog/authors/mayra-cabrera",{"name":5495,"config":5496},"Mayra Cabrera",{"headshot":5497,"ctfId":5498},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663224/Blog/Author%20Headshots/mayra-cabrera-headshot.jpg","mayracabrera",{"template":694},"content:en-us:blog:authors:mayra-cabrera.yml","en-us/blog/authors/mayra-cabrera.yml","en-us/blog/authors/mayra-cabrera",{"_path":5504,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5505,"config":5509,"_id":5510,"_type":32,"title":5506,"_source":34,"_file":5511,"_stem":5512,"_extension":37},"/en-us/blog/authors/meghan-maneval",{"name":5506,"config":5507},"Meghan Maneval",{"headshot":7,"ctfId":5508},"mmaneval20",{"template":694},"content:en-us:blog:authors:meghan-maneval.yml","en-us/blog/authors/meghan-maneval.yml","en-us/blog/authors/meghan-maneval",{"_path":5514,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5515,"config":5520,"_id":5521,"_type":32,"title":5516,"_source":34,"_file":5522,"_stem":5523,"_extension":37},"/en-us/blog/authors/mek-stittri",{"name":5516,"config":5517},"Mek Stittri",{"headshot":5518,"ctfId":5519},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682281/Blog/Author%20Headshots/meks-headshot.png","meks",{"template":694},"content:en-us:blog:authors:mek-stittri.yml","en-us/blog/authors/mek-stittri.yml","en-us/blog/authors/mek-stittri",{"_path":5525,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5526,"config":5530,"_id":5531,"_type":32,"title":5527,"_source":34,"_file":5532,"_stem":5533,"_extension":37},"/en-us/blog/authors/melissa-farber",{"name":5527,"config":5528},"Melissa Farber",{"headshot":7,"ctfId":5529},"mfarber",{"template":694},"content:en-us:blog:authors:melissa-farber.yml","en-us/blog/authors/melissa-farber.yml","en-us/blog/authors/melissa-farber",{"_path":5535,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5536,"config":5540,"_id":5541,"_type":32,"title":5537,"_source":34,"_file":5542,"_stem":5543,"_extension":37},"/en-us/blog/authors/melissa-smolensky",{"name":5537,"config":5538},"Melissa Smolensky",{"headshot":7,"ctfId":5539},"melsmo",{"template":694},"content:en-us:blog:authors:melissa-smolensky.yml","en-us/blog/authors/melissa-smolensky.yml","en-us/blog/authors/melissa-smolensky",{"_path":5545,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5546,"config":5551,"_id":5552,"_type":32,"title":5547,"_source":34,"_file":5553,"_stem":5554,"_extension":37},"/en-us/blog/authors/melissa-ushakov",{"name":5547,"config":5548},"Melissa Ushakov",{"headshot":5549,"ctfId":5550},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666529/Blog/Author%20Headshots/mushakov-headshot.jpg","mushakov",{"template":694},"content:en-us:blog:authors:melissa-ushakov.yml","en-us/blog/authors/melissa-ushakov.yml","en-us/blog/authors/melissa-ushakov",{"_path":5556,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5557,"config":5561,"_id":5562,"_type":32,"title":5558,"_source":34,"_file":5563,"_stem":5564,"_extension":37},"/en-us/blog/authors/michael-fahey",{"name":5558,"config":5559},"Michael Fahey",{"headshot":7,"ctfId":5560},"mfahey",{"template":694},"content:en-us:blog:authors:michael-fahey.yml","en-us/blog/authors/michael-fahey.yml","en-us/blog/authors/michael-fahey",{"_path":5566,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5567,"config":5571,"_id":5572,"_type":32,"title":18,"_source":34,"_file":5573,"_stem":5574,"_extension":37},"/en-us/blog/authors/michael-friedrich",{"name":18,"config":5568},{"headshot":5569,"ctfId":5570},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659879/Blog/Author%20Headshots/dnsmichi-headshot.jpg","dnsmichi",{"template":694},"content:en-us:blog:authors:michael-friedrich.yml","en-us/blog/authors/michael-friedrich.yml","en-us/blog/authors/michael-friedrich",{"_path":5576,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5577,"config":5581,"_id":5582,"_type":32,"title":5578,"_source":34,"_file":5583,"_stem":5584,"_extension":37},"/en-us/blog/authors/michael-henriksen",{"name":5578,"config":5579},"Michael Henriksen",{"headshot":725,"ctfId":5580},"3DmojnawcJFqAgoNMCpFTX",{"template":694},"content:en-us:blog:authors:michael-henriksen.yml","en-us/blog/authors/michael-henriksen.yml","en-us/blog/authors/michael-henriksen",{"_path":5586,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5587,"config":5591,"_id":5592,"_type":32,"title":5588,"_source":34,"_file":5593,"_stem":5594,"_extension":37},"/en-us/blog/authors/michael-karampalas",{"name":5588,"config":5589},"Michael Karampalas",{"headshot":7,"ctfId":5590},"mkarampalas",{"template":694},"content:en-us:blog:authors:michael-karampalas.yml","en-us/blog/authors/michael-karampalas.yml","en-us/blog/authors/michael-karampalas",{"_path":5596,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5597,"config":5602,"_id":5603,"_type":32,"title":5598,"_source":34,"_file":5604,"_stem":5605,"_extension":37},"/en-us/blog/authors/michael-kozono",{"name":5598,"config":5599},"Michael Kozono",{"headshot":5600,"ctfId":5601},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679544/Blog/Author%20Headshots/mkozono-headshot.jpg","mkozono",{"template":694},"content:en-us:blog:authors:michael-kozono.yml","en-us/blog/authors/michael-kozono.yml","en-us/blog/authors/michael-kozono",{"_path":5607,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5608,"config":5612,"_id":5613,"_type":32,"title":5609,"_source":34,"_file":5614,"_stem":5615,"_extension":37},"/en-us/blog/authors/michael-miranda",{"name":5609,"config":5610},"Michael Miranda",{"headshot":7,"ctfId":5611},"mikemiranda",{"template":694},"content:en-us:blog:authors:michael-miranda.yml","en-us/blog/authors/michael-miranda.yml","en-us/blog/authors/michael-miranda",{"_path":5617,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5618,"config":5623,"_id":5624,"_type":32,"title":5619,"_source":34,"_file":5625,"_stem":5626,"_extension":37},"/en-us/blog/authors/michelle-gill",{"name":5619,"config":5620},"Michelle Gill",{"headshot":5621,"ctfId":5622},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666460/Blog/Author%20Headshots/michelle_gill_headshot.png","1o9MOYTUcO2koXs4FgpOEw",{"template":694},"content:en-us:blog:authors:michelle-gill.yml","en-us/blog/authors/michelle-gill.yml","en-us/blog/authors/michelle-gill",{"_path":5628,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5629,"config":5634,"_id":5635,"_type":32,"title":5630,"_source":34,"_file":5636,"_stem":5637,"_extension":37},"/en-us/blog/authors/miguel-rincon",{"name":5630,"config":5631},"Miguel Rincon",{"headshot":5632,"ctfId":5633},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681865/Blog/Author%20Headshots/mrincon-headshot.jpg","mrincon",{"template":694},"content:en-us:blog:authors:miguel-rincon.yml","en-us/blog/authors/miguel-rincon.yml","en-us/blog/authors/miguel-rincon",{"_path":5639,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5640,"config":5644,"_id":5645,"_type":32,"title":5641,"_source":34,"_file":5646,"_stem":5647,"_extension":37},"/en-us/blog/authors/mike-bartlett",{"name":5641,"config":5642},"Mike Bartlett",{"headshot":7,"ctfId":5643},"mydigitalself",{"template":694},"content:en-us:blog:authors:mike-bartlett.yml","en-us/blog/authors/mike-bartlett.yml","en-us/blog/authors/mike-bartlett",{"_path":5649,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5650,"config":5654,"_id":5655,"_type":32,"title":5651,"_source":34,"_file":5656,"_stem":5657,"_extension":37},"/en-us/blog/authors/mike-eddington",{"name":5651,"config":5652},"Mike Eddington",{"headshot":725,"ctfId":5653},"q5tK0TgB1ZovSwShKSvOJ",{"template":694},"content:en-us:blog:authors:mike-eddington.yml","en-us/blog/authors/mike-eddington.yml","en-us/blog/authors/mike-eddington",{"_path":5659,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5660,"config":5665,"_id":5666,"_type":32,"title":5661,"_source":34,"_file":5667,"_stem":5668,"_extension":37},"/en-us/blog/authors/mike-flouton",{"name":5661,"config":5662},"Mike Flouton",{"headshot":5663,"ctfId":5664},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679190/Blog/Author%20Headshots/mflouton-headshot.jpg","mflouton",{"template":694},"content:en-us:blog:authors:mike-flouton.yml","en-us/blog/authors/mike-flouton.yml","en-us/blog/authors/mike-flouton",{"_path":5670,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5671,"config":5675,"_id":5676,"_type":32,"title":5672,"_source":34,"_file":5677,"_stem":5678,"_extension":37},"/en-us/blog/authors/mike-gerwitz",{"name":5672,"config":5673},"Mike Gerwitz",{"headshot":725,"ctfId":5674},"Mike-Gerwitz",{"template":694},"content:en-us:blog:authors:mike-gerwitz.yml","en-us/blog/authors/mike-gerwitz.yml","en-us/blog/authors/mike-gerwitz",{"_path":5680,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5681,"config":5685,"_id":5686,"_type":32,"title":5682,"_source":34,"_file":5687,"_stem":5688,"_extension":37},"/en-us/blog/authors/mike-greiling",{"name":5682,"config":5683},"Mike Greiling",{"headshot":7,"ctfId":5684},"mikegreiling",{"template":694},"content:en-us:blog:authors:mike-greiling.yml","en-us/blog/authors/mike-greiling.yml","en-us/blog/authors/mike-greiling",{"_path":5690,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5691,"config":5695,"_id":5696,"_type":32,"title":5692,"_source":34,"_file":5697,"_stem":5698,"_extension":37},"/en-us/blog/authors/mike-vanbuskirk",{"name":5692,"config":5693},"Mike Vanbuskirk",{"headshot":725,"ctfId":5694},"Mike-Vanbuskirk",{"template":694},"content:en-us:blog:authors:mike-vanbuskirk.yml","en-us/blog/authors/mike-vanbuskirk.yml","en-us/blog/authors/mike-vanbuskirk",{"_path":5700,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5701,"config":5705,"_id":5706,"_type":32,"title":5702,"_source":34,"_file":5707,"_stem":5708,"_extension":37},"/en-us/blog/authors/miranda-carter",{"name":5702,"config":5703},"Miranda Carter",{"headshot":725,"ctfId":5704},"4xT4dbRh6N9i7jW5xuPhVp",{"template":694},"content:en-us:blog:authors:miranda-carter.yml","en-us/blog/authors/miranda-carter.yml","en-us/blog/authors/miranda-carter",{"_path":5710,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5711,"config":5716,"_id":5717,"_type":32,"title":5712,"_source":34,"_file":5718,"_stem":5719,"_extension":37},"/en-us/blog/authors/mitra-jozenazemian",{"name":5712,"config":5713},"Mitra Jozenazemian",{"headshot":5714,"ctfId":5715},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662373/Blog/Author%20Headshots/Screenshot_2024-10-25_at_8.23.56_AM.png","4suqsutT8w5ZmkIvSVrmWQ",{"template":694},"content:en-us:blog:authors:mitra-jozenazemian.yml","en-us/blog/authors/mitra-jozenazemian.yml","en-us/blog/authors/mitra-jozenazemian",{"_path":5721,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5722,"config":5727,"_id":5728,"_type":32,"title":5723,"_source":34,"_file":5729,"_stem":5730,"_extension":37},"/en-us/blog/authors/monmayuri-ray",{"name":5723,"config":5724},"Monmayuri Ray",{"headshot":5725,"ctfId":5726},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679381/Blog/Author%20Headshots/mray2020-headshot.png","mray2020",{"template":694},"content:en-us:blog:authors:monmayuri-ray.yml","en-us/blog/authors/monmayuri-ray.yml","en-us/blog/authors/monmayuri-ray",{"_path":5732,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5733,"config":5738,"_id":5740,"_type":32,"title":5734,"_source":34,"_file":5741,"_stem":5742,"_extension":37},"/en-us/blog/authors/naoharu-sasaki",{"name":5734,"config":5735,"role":5737},"Naoharu Sasaki",{"headshot":5736},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751951026/qgwsq65eqcrrxemihenj.png","Senior Solutions Architect",{"template":694,"gitlabHandle":5739},"https://gitlab.com/naosasaki","content:en-us:blog:authors:naoharu-sasaki.yml","en-us/blog/authors/naoharu-sasaki.yml","en-us/blog/authors/naoharu-sasaki",{"_path":5744,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5745,"config":5750,"_id":5751,"_type":32,"title":5746,"_source":34,"_file":5752,"_stem":5753,"_extension":37},"/en-us/blog/authors/nate-rosandich",{"name":5746,"config":5747},"Nate Rosandich",{"headshot":5748,"ctfId":5749},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665774/Blog/Author%20Headshots/nate_rosandich_headshot.png","6o7KM5bD29P7qtz6yu60rZ",{"template":694},"content:en-us:blog:authors:nate-rosandich.yml","en-us/blog/authors/nate-rosandich.yml","en-us/blog/authors/nate-rosandich",{"_path":5755,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5756,"config":5761,"_id":5762,"_type":32,"title":5757,"_source":34,"_file":5763,"_stem":5764,"_extension":37},"/en-us/blog/authors/neha-khalwadekar",{"name":5757,"config":5758},"Neha Khalwadekar",{"headshot":5759,"ctfId":5760},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682666/Blog/Author%20Headshots/nkhalwadekar-headshot.jpg","nkhalwadekar",{"template":694},"content:en-us:blog:authors:neha-khalwadekar.yml","en-us/blog/authors/neha-khalwadekar.yml","en-us/blog/authors/neha-khalwadekar",{"_path":5766,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5767,"config":5772,"_id":5773,"_type":32,"title":5774,"_source":34,"_file":5775,"_stem":5776,"_extension":37},"/en-us/blog/authors/neil-mccorrison",{"name":5768,"config":5769},"Neil McCorrison",{"headshot":5770,"ctfId":5771},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669499/Blog/Author%20Headshots/nmccorrison-headshot.jpg","nmccorrison",{"template":694},"content:en-us:blog:authors:neil-mccorrison.yml","Neil Mccorrison","en-us/blog/authors/neil-mccorrison.yml","en-us/blog/authors/neil-mccorrison",{"_path":5778,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5779,"config":5784,"_id":5785,"_type":32,"title":5786,"_source":34,"_file":5787,"_stem":5788,"_extension":37},"/en-us/blog/authors/neil-mcdonald",{"name":5780,"config":5781},"Neil McDonald",{"headshot":5782,"ctfId":5783},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665769/Blog/Author%20Headshots/neil_mcdonald_headshot.png","3AlbY0x99iY5eFvSZcn1zL",{"template":694},"content:en-us:blog:authors:neil-mcdonald.yml","Neil Mcdonald","en-us/blog/authors/neil-mcdonald.yml","en-us/blog/authors/neil-mcdonald",{"_path":5790,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5791,"config":5795,"_id":5797,"_type":32,"title":5792,"_source":34,"_file":5798,"_stem":5799,"_extension":37},"/en-us/blog/authors/nick-cayou",{"name":5792,"config":5793,"role":7},"Nick Cayou",{"headshot":5794},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751467780/nzign0cbu1g4ulxlhgop.png",{"template":694,"gitlabHandle":5796},"ncayou","content:en-us:blog:authors:nick-cayou.yml","en-us/blog/authors/nick-cayou.yml","en-us/blog/authors/nick-cayou",{"_path":5801,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5802,"config":5807,"_id":5808,"_type":32,"title":5803,"_source":34,"_file":5809,"_stem":5810,"_extension":37},"/en-us/blog/authors/nick-malcolm",{"name":5803,"config":5804},"Nick Malcolm",{"headshot":5805,"ctfId":5806},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679150/Blog/Author%20Headshots/nmalcolm-headshot.jpg","nmalcolm",{"template":694},"content:en-us:blog:authors:nick-malcolm.yml","en-us/blog/authors/nick-malcolm.yml","en-us/blog/authors/nick-malcolm",{"_path":5812,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5813,"config":5817,"_id":5818,"_type":32,"title":5814,"_source":34,"_file":5819,"_stem":5820,"_extension":37},"/en-us/blog/authors/nick-thomas",{"name":5814,"config":5815},"Nick Thomas",{"headshot":7,"ctfId":5816},"nickthomas",{"template":694},"content:en-us:blog:authors:nick-thomas.yml","en-us/blog/authors/nick-thomas.yml","en-us/blog/authors/nick-thomas",{"_path":5822,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5823,"config":5828,"_id":5829,"_type":32,"title":5824,"_source":34,"_file":5830,"_stem":5831,"_extension":37},"/en-us/blog/authors/nick-veenhof",{"name":5824,"config":5825},"Nick Veenhof",{"headshot":5826,"ctfId":5827},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679373/Blog/Author%20Headshots/nick_vh-headshot.jpg","nickvh",{"template":694},"content:en-us:blog:authors:nick-veenhof.yml","en-us/blog/authors/nick-veenhof.yml","en-us/blog/authors/nick-veenhof",{"_path":5833,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5834,"config":5838,"_id":5839,"_type":32,"title":5835,"_source":34,"_file":5840,"_stem":5841,"_extension":37},"/en-us/blog/authors/nico-meisenzahl",{"name":5835,"config":5836},"Nico Meisenzahl",{"headshot":7,"ctfId":5837},"nicomeisenzahl",{"template":694},"content:en-us:blog:authors:nico-meisenzahl.yml","en-us/blog/authors/nico-meisenzahl.yml","en-us/blog/authors/nico-meisenzahl",{"_path":5843,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5844,"config":5848,"_id":5849,"_type":32,"title":5845,"_source":34,"_file":5850,"_stem":5851,"_extension":37},"/en-us/blog/authors/nicole-schwartz",{"name":5845,"config":5846},"Nicole Schwartz",{"headshot":7,"ctfId":5847},"nicoleschwartz",{"template":694},"content:en-us:blog:authors:nicole-schwartz.yml","en-us/blog/authors/nicole-schwartz.yml","en-us/blog/authors/nicole-schwartz",{"_path":5853,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5854,"config":5859,"_id":5860,"_type":32,"title":5855,"_source":34,"_file":5861,"_stem":5862,"_extension":37},"/en-us/blog/authors/nikhil-george",{"name":5855,"config":5856},"Nikhil George",{"headshot":5857,"ctfId":5858},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666175/Blog/Author%20Headshots/ngeorge1-headshot.jpg","ngeorge1",{"template":694},"content:en-us:blog:authors:nikhil-george.yml","en-us/blog/authors/nikhil-george.yml","en-us/blog/authors/nikhil-george",{"_path":5864,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5865,"config":5870,"_id":5871,"_type":32,"title":5866,"_source":34,"_file":5872,"_stem":5873,"_extension":37},"/en-us/blog/authors/nima-badiey",{"name":5866,"config":5867},"Nima Badiey",{"headshot":5868,"ctfId":5869},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668177/Blog/Author%20Headshots/nbadiey-headshot.jpg","nbadiey",{"template":694},"content:en-us:blog:authors:nima-badiey.yml","en-us/blog/authors/nima-badiey.yml","en-us/blog/authors/nima-badiey",{"_path":5875,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5876,"config":5881,"_id":5882,"_type":32,"title":5877,"_source":34,"_file":5883,"_stem":5884,"_extension":37},"/en-us/blog/authors/noah-ing",{"name":5877,"config":5878},"Noah Ing",{"headshot":5879,"ctfId":5880},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664410/Blog/Author%20Headshots/noahing.png","noahing",{"template":694},"content:en-us:blog:authors:noah-ing.yml","en-us/blog/authors/noah-ing.yml","en-us/blog/authors/noah-ing",{"_path":5886,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5887,"config":5891,"_id":5892,"_type":32,"title":5888,"_source":34,"_file":5893,"_stem":5894,"_extension":37},"/en-us/blog/authors/noah-manger",{"name":5888,"config":5889},"Noah Manger",{"headshot":725,"ctfId":5890},"Noah-Manger",{"template":694},"content:en-us:blog:authors:noah-manger.yml","en-us/blog/authors/noah-manger.yml","en-us/blog/authors/noah-manger",{"_path":5896,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5897,"config":5901,"_id":5902,"_type":32,"title":5898,"_source":34,"_file":5903,"_stem":5904,"_extension":37},"/en-us/blog/authors/noah-zoschke",{"name":5898,"config":5899},"Noah Zoschke",{"headshot":725,"ctfId":5900},"Noah-Zoschke",{"template":694},"content:en-us:blog:authors:noah-zoschke.yml","en-us/blog/authors/noah-zoschke.yml","en-us/blog/authors/noah-zoschke",{"_path":5906,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5907,"config":5911,"_id":5912,"_type":32,"title":5908,"_source":34,"_file":5913,"_stem":5914,"_extension":37},"/en-us/blog/authors/nolan-myers",{"name":5908,"config":5909},"Nolan Myers",{"headshot":725,"ctfId":5910},"Nolan-Myers",{"template":694},"content:en-us:blog:authors:nolan-myers.yml","en-us/blog/authors/nolan-myers.yml","en-us/blog/authors/nolan-myers",{"_path":5916,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5917,"config":5921,"_id":5922,"_type":32,"title":5918,"_source":34,"_file":5923,"_stem":5924,"_extension":37},"/en-us/blog/authors/nupur-sharma",{"name":5918,"config":5919},"Nupur Sharma",{"headshot":725,"ctfId":5920},"6p7RQDl0cDWnAxU8yu2vVK",{"template":694},"content:en-us:blog:authors:nupur-sharma.yml","en-us/blog/authors/nupur-sharma.yml","en-us/blog/authors/nupur-sharma",{"_path":5926,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5927,"config":5931,"_id":5932,"_type":32,"title":5928,"_source":34,"_file":5933,"_stem":5934,"_extension":37},"/en-us/blog/authors/nuritzi-sanchez",{"name":5928,"config":5929},"Nuritzi Sanchez",{"headshot":7,"ctfId":5930},"nuritzi",{"template":694},"content:en-us:blog:authors:nuritzi-sanchez.yml","en-us/blog/authors/nuritzi-sanchez.yml","en-us/blog/authors/nuritzi-sanchez",{"_path":5936,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5937,"config":5942,"_id":5943,"_type":32,"title":5938,"_source":34,"_file":5944,"_stem":5945,"_extension":37},"/en-us/blog/authors/oleksandr-pysaryuk",{"name":5938,"config":5939},"Oleksandr Pysaryuk",{"headshot":5940,"ctfId":5941},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664469/Blog/Author%20Headshots/opysaryuk_headshot.png","5EbCnvbwgeZKYOUug8fFFO",{"template":694},"content:en-us:blog:authors:oleksandr-pysaryuk.yml","en-us/blog/authors/oleksandr-pysaryuk.yml","en-us/blog/authors/oleksandr-pysaryuk",{"_path":5947,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5948,"config":5953,"_id":5954,"_type":32,"title":5955,"_source":34,"_file":5956,"_stem":5957,"_extension":37},"/en-us/blog/authors/olena-horal-koretska",{"name":5949,"config":5950},"Olena Horal-Koretska",{"headshot":5951,"ctfId":5952},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681267/Blog/Author%20Headshots/ohoral-headshot.jpg","ohoral",{"template":694},"content:en-us:blog:authors:olena-horal-koretska.yml","Olena Horal Koretska","en-us/blog/authors/olena-horal-koretska.yml","en-us/blog/authors/olena-horal-koretska",{"_path":5959,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5960,"config":5964,"_id":5966,"_type":32,"title":5961,"_source":34,"_file":5967,"_stem":5968,"_extension":37},"/en-us/blog/authors/olivier-campeau",{"name":5961,"config":5962},"Olivier Campeau",{"headshot":5963},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750704785/kyqz7c4ctjvo4qpj8ldf.png",{"template":694,"gitlabHandle":5965},"oli.campeau","content:en-us:blog:authors:olivier-campeau.yml","en-us/blog/authors/olivier-campeau.yml","en-us/blog/authors/olivier-campeau",{"_path":5970,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5971,"config":5976,"_id":5977,"_type":32,"title":5978,"_source":34,"_file":5979,"_stem":5980,"_extension":37},"/en-us/blog/authors/olivier-dupr",{"name":5972,"config":5973},"Olivier Dupré",{"headshot":5974,"ctfId":5975},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750713474/cj6odchlpoqxbibenvye.png","4VIckvQsyfNxEtz4pM42aP",{"template":694},"content:en-us:blog:authors:olivier-dupr.yml","Olivier Dupr","en-us/blog/authors/olivier-dupr.yml","en-us/blog/authors/olivier-dupr",{"_path":5982,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5983,"config":5988,"_id":5989,"_type":32,"title":5984,"_source":34,"_file":5990,"_stem":5991,"_extension":37},"/en-us/blog/authors/omar-fernandez",{"name":5984,"config":5985},"Omar Fernandez",{"headshot":5986,"ctfId":5987},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668073/Blog/Author%20Headshots/ofernandez2-headshot.jpg","ofernandez2",{"template":694},"content:en-us:blog:authors:omar-fernandez.yml","en-us/blog/authors/omar-fernandez.yml","en-us/blog/authors/omar-fernandez",{"_path":5993,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":5994,"config":5998,"_id":5999,"_type":32,"title":5995,"_source":34,"_file":6000,"_stem":6001,"_extension":37},"/en-us/blog/authors/opher-vishnia",{"name":5995,"config":5996},"Opher Vishnia",{"headshot":725,"ctfId":5997},"O0F3sw3av9pRAxeP9iR7N",{"template":694},"content:en-us:blog:authors:opher-vishnia.yml","en-us/blog/authors/opher-vishnia.yml","en-us/blog/authors/opher-vishnia",{"_path":6003,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6004,"config":6008,"_id":6009,"_type":32,"title":6005,"_source":34,"_file":6010,"_stem":6011,"_extension":37},"/en-us/blog/authors/orit-golowinski",{"name":6005,"config":6006},"Orit Golowinski",{"headshot":7,"ctfId":6007},"ogolowinski",{"template":694},"content:en-us:blog:authors:orit-golowinski.yml","en-us/blog/authors/orit-golowinski.yml","en-us/blog/authors/orit-golowinski",{"_path":6013,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6014,"config":6019,"_id":6020,"_type":32,"title":6015,"_source":34,"_file":6021,"_stem":6022,"_extension":37},"/en-us/blog/authors/ottilia-westerlund",{"name":6015,"config":6016},"Ottilia Westerlund",{"headshot":6017,"ctfId":6018},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664791/Blog/Author%20Headshots/ottiliawesterlundheadshot.png","ottiliawesterlund",{"template":694},"content:en-us:blog:authors:ottilia-westerlund.yml","en-us/blog/authors/ottilia-westerlund.yml","en-us/blog/authors/ottilia-westerlund",{"_path":6024,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6025,"config":6029,"_id":6030,"_type":32,"title":6026,"_source":34,"_file":6031,"_stem":6032,"_extension":37},"/en-us/blog/authors/owen-williams",{"name":6026,"config":6027},"Owen Williams",{"headshot":725,"ctfId":6028},"Owen-Williams",{"template":694},"content:en-us:blog:authors:owen-williams.yml","en-us/blog/authors/owen-williams.yml","en-us/blog/authors/owen-williams",{"_path":6034,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6035,"config":6039,"_id":6040,"_type":32,"title":6036,"_source":34,"_file":6041,"_stem":6042,"_extension":37},"/en-us/blog/authors/pablo-carranza",{"name":6036,"config":6037},"Pablo Carranza",{"headshot":725,"ctfId":6038},"Pablo-Carranza",{"template":694},"content:en-us:blog:authors:pablo-carranza.yml","en-us/blog/authors/pablo-carranza.yml","en-us/blog/authors/pablo-carranza",{"_path":6044,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6045,"config":6049,"_id":6050,"_type":32,"title":6046,"_source":34,"_file":6051,"_stem":6052,"_extension":37},"/en-us/blog/authors/parker-ennis",{"name":6046,"config":6047},"Parker Ennis",{"headshot":7,"ctfId":6048},"parkerennis",{"template":694},"content:en-us:blog:authors:parker-ennis.yml","en-us/blog/authors/parker-ennis.yml","en-us/blog/authors/parker-ennis",{"_path":6054,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6055,"config":6059,"_id":6060,"_type":32,"title":6056,"_source":34,"_file":6061,"_stem":6062,"_extension":37},"/en-us/blog/authors/patricio-cano",{"name":6056,"config":6057},"Patricio Cano",{"headshot":725,"ctfId":6058},"Patricio-Cano",{"template":694},"content:en-us:blog:authors:patricio-cano.yml","en-us/blog/authors/patricio-cano.yml","en-us/blog/authors/patricio-cano",{"_path":6064,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6065,"config":6069,"_id":6070,"_type":32,"title":6066,"_source":34,"_file":6071,"_stem":6072,"_extension":37},"/en-us/blog/authors/patrick-deuley",{"name":6066,"config":6067},"Patrick Deuley",{"headshot":725,"ctfId":6068},"4YYemtKKpxKC4yukyFavai",{"template":694},"content:en-us:blog:authors:patrick-deuley.yml","en-us/blog/authors/patrick-deuley.yml","en-us/blog/authors/patrick-deuley",{"_path":6074,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6075,"config":6079,"_id":6080,"_type":32,"title":6076,"_source":34,"_file":6081,"_stem":6082,"_extension":37},"/en-us/blog/authors/patrick-foster",{"name":6076,"config":6077},"Patrick Foster",{"headshot":725,"ctfId":6078},"Patrick-Foster",{"template":694},"content:en-us:blog:authors:patrick-foster.yml","en-us/blog/authors/patrick-foster.yml","en-us/blog/authors/patrick-foster",{"_path":6084,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6085,"config":6090,"_id":6091,"_type":32,"title":6086,"_source":34,"_file":6092,"_stem":6093,"_extension":37},"/en-us/blog/authors/patrick-steinhardt",{"name":6086,"config":6087},"Patrick Steinhardt",{"headshot":6088,"ctfId":6089},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661952/Blog/Author%20Headshots/pks-gitlab-headshot.png","pksgitlab",{"template":694},"content:en-us:blog:authors:patrick-steinhardt.yml","en-us/blog/authors/patrick-steinhardt.yml","en-us/blog/authors/patrick-steinhardt",{"_path":6095,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6096,"config":6100,"_id":6101,"_type":32,"title":6097,"_source":34,"_file":6102,"_stem":6103,"_extension":37},"/en-us/blog/authors/patty-cheung",{"name":6097,"config":6098},"Patty Cheung",{"headshot":725,"ctfId":6099},"pattycheung",{"template":694},"content:en-us:blog:authors:patty-cheung.yml","en-us/blog/authors/patty-cheung.yml","en-us/blog/authors/patty-cheung",{"_path":6105,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6106,"config":6110,"_id":6111,"_type":32,"title":6107,"_source":34,"_file":6112,"_stem":6113,"_extension":37},"/en-us/blog/authors/paul-badcock",{"name":6107,"config":6108},"Paul Badcock",{"headshot":725,"ctfId":6109},"TbNQIdiD4vlFB7XYXeArb",{"template":694},"content:en-us:blog:authors:paul-badcock.yml","en-us/blog/authors/paul-badcock.yml","en-us/blog/authors/paul-badcock",{"_path":6115,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6116,"config":6120,"_id":6121,"_type":32,"title":6122,"_source":34,"_file":6123,"_stem":6124,"_extension":37},"/en-us/blog/authors/paul-gascou-vaillancourt",{"name":6117,"config":6118},"Paul Gascou-Vaillancourt",{"headshot":725,"ctfId":6119},"6Yg7HWPoy2E5vwudH0EZja",{"template":694},"content:en-us:blog:authors:paul-gascou-vaillancourt.yml","Paul Gascou Vaillancourt","en-us/blog/authors/paul-gascou-vaillancourt.yml","en-us/blog/authors/paul-gascou-vaillancourt",{"_path":6126,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6127,"config":6131,"_id":6132,"_type":32,"title":6128,"_source":34,"_file":6133,"_stem":6134,"_extension":37},"/en-us/blog/authors/paul-hibbitts",{"name":6128,"config":6129},"Paul Hibbitts",{"headshot":725,"ctfId":6130},"Paul-Hibbitts",{"template":694},"content:en-us:blog:authors:paul-hibbitts.yml","en-us/blog/authors/paul-hibbitts.yml","en-us/blog/authors/paul-hibbitts",{"_path":6136,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6137,"config":6141,"_id":6142,"_type":32,"title":6138,"_source":34,"_file":6143,"_stem":6144,"_extension":37},"/en-us/blog/authors/paul-machle",{"name":6138,"config":6139},"Paul Machle",{"headshot":725,"ctfId":6140},"Paul-Machle",{"template":694},"content:en-us:blog:authors:paul-machle.yml","en-us/blog/authors/paul-machle.yml","en-us/blog/authors/paul-machle",{"_path":6146,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6147,"config":6151,"_id":6153,"_type":32,"title":6148,"_source":34,"_file":6154,"_stem":6155,"_extension":37},"/en-us/blog/authors/paul-meresanu",{"name":6148,"role":7,"config":6149},"Paul Meresanu",{"headshot":6150},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750267141/qpw5ayteg0sewyh7s8xi.png",{"template":694,"gitlabHandle":6152},"pmeresanu","content:en-us:blog:authors:paul-meresanu.yml","en-us/blog/authors/paul-meresanu.yml","en-us/blog/authors/paul-meresanu",{"_path":6157,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6158,"config":6163,"_id":6164,"_type":32,"title":6159,"_source":34,"_file":6165,"_stem":6166,"_extension":37},"/en-us/blog/authors/payton-burdette",{"name":6159,"config":6160},"Payton Burdette",{"headshot":6161,"ctfId":6162},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667712/Blog/Author%20Headshots/payton_burdette_headshot.png","42ZmAy1Ix0cQeI3hHYupW",{"template":694},"content:en-us:blog:authors:payton-burdette.yml","en-us/blog/authors/payton-burdette.yml","en-us/blog/authors/payton-burdette",{"_path":6168,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6169,"config":6173,"_id":6174,"_type":32,"title":6170,"_source":34,"_file":6175,"_stem":6176,"_extension":37},"/en-us/blog/authors/pedro-fortuna",{"name":6170,"config":6171},"Pedro Fortuna",{"headshot":725,"ctfId":6172},"7JwB4WZYF19OKwOo4yk5n4",{"template":694},"content:en-us:blog:authors:pedro-fortuna.yml","en-us/blog/authors/pedro-fortuna.yml","en-us/blog/authors/pedro-fortuna",{"_path":6178,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6179,"config":6184,"_id":6185,"_type":32,"title":6186,"_source":34,"_file":6187,"_stem":6188,"_extension":37},"/en-us/blog/authors/pedro-moreira-da-silva",{"name":6180,"config":6181},"Pedro Moreira da Silva",{"headshot":6182,"ctfId":6183},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666783/Blog/Author%20Headshots/pedroms-headshot.jpg","pedroms",{"template":694},"content:en-us:blog:authors:pedro-moreira-da-silva.yml","Pedro Moreira Da Silva","en-us/blog/authors/pedro-moreira-da-silva.yml","en-us/blog/authors/pedro-moreira-da-silva",{"_path":6190,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6191,"config":6196,"_id":6197,"_type":32,"title":6192,"_source":34,"_file":6198,"_stem":6199,"_extension":37},"/en-us/blog/authors/phil-hughes",{"name":6192,"config":6193},"Phil Hughes",{"headshot":6194,"ctfId":6195},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681552/Blog/Author%20Headshots/iamphill-headshot.jpg","iamphill",{"template":694},"content:en-us:blog:authors:phil-hughes.yml","en-us/blog/authors/phil-hughes.yml","en-us/blog/authors/phil-hughes",{"_path":6201,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6202,"config":6206,"_id":6207,"_type":32,"title":6203,"_source":34,"_file":6208,"_stem":6209,"_extension":37},"/en-us/blog/authors/philip-welz",{"name":6203,"config":6204},"Philip Welz",{"headshot":7,"ctfId":6205},"philxx",{"template":694},"content:en-us:blog:authors:philip-welz.yml","en-us/blog/authors/philip-welz.yml","en-us/blog/authors/philip-welz",{"_path":6211,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6212,"config":6217,"_id":6218,"_type":32,"title":6219,"_source":34,"_file":6220,"_stem":6221,"_extension":37},"/en-us/blog/authors/philippe-lafoucrire",{"name":6213,"config":6214},"Philippe Lafoucrière",{"headshot":6215,"ctfId":6216},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679747/Blog/Author%20Headshots/plafoucriere-headshot.jpg","plafoucriere",{"template":694},"content:en-us:blog:authors:philippe-lafoucrire.yml","Philippe Lafoucrire","en-us/blog/authors/philippe-lafoucrire.yml","en-us/blog/authors/philippe-lafoucrire",{"_path":6223,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6224,"config":6228,"_id":6229,"_type":32,"title":6230,"_source":34,"_file":6231,"_stem":6232,"_extension":37},"/en-us/blog/authors/pierre-de-la-morinerie",{"name":6225,"config":6226},"Pierre de La Morinerie",{"headshot":725,"ctfId":6227},"Pierre-de-La-Morinerie",{"template":694},"content:en-us:blog:authors:pierre-de-la-morinerie.yml","Pierre De La Morinerie","en-us/blog/authors/pierre-de-la-morinerie.yml","en-us/blog/authors/pierre-de-la-morinerie",{"_path":6234,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6235,"config":6239,"_id":6240,"_type":32,"title":6236,"_source":34,"_file":6241,"_stem":6242,"_extension":37},"/en-us/blog/authors/pierre-smeyers",{"name":6236,"config":6237},"Pierre Smeyers",{"headshot":7,"ctfId":6238},"pismy",{"template":694},"content:en-us:blog:authors:pierre-smeyers.yml","en-us/blog/authors/pierre-smeyers.yml","en-us/blog/authors/pierre-smeyers",{"_path":6244,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6245,"config":6250,"_id":6251,"_type":32,"title":6246,"_source":34,"_file":6252,"_stem":6253,"_extension":37},"/en-us/blog/authors/pini-wietchner",{"name":6246,"config":6247},"Pini Wietchner",{"headshot":6248,"ctfId":6249},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660171/Blog/Author%20Headshots/Pini_Wietchner_headshot.png","4FclpbCSjD5ytIrKCyRL0o",{"template":694},"content:en-us:blog:authors:pini-wietchner.yml","en-us/blog/authors/pini-wietchner.yml","en-us/blog/authors/pini-wietchner",{"_path":6255,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6256,"config":6260,"_id":6261,"_type":32,"title":6262,"_source":34,"_file":6263,"_stem":6264,"_extension":37},"/en-us/blog/authors/pj-metz",{"name":6257,"config":6258},"PJ Metz",{"headshot":725,"ctfId":6259},"PjMetz",{"template":694},"content:en-us:blog:authors:pj-metz.yml","Pj Metz","en-us/blog/authors/pj-metz.yml","en-us/blog/authors/pj-metz",{"_path":6266,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6267,"config":6270,"_id":6271,"_type":32,"title":6272,"_source":34,"_file":6273,"_stem":6274,"_extension":37},"/en-us/blog/authors/plapadoo",{"name":6268,"config":6269},"plapadoo",{"headshot":725,"ctfId":6268},{"template":694},"content:en-us:blog:authors:plapadoo.yml","Plapadoo","en-us/blog/authors/plapadoo.yml","en-us/blog/authors/plapadoo",{"_path":6276,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6277,"config":6281,"_id":6282,"_type":32,"title":6278,"_source":34,"_file":6283,"_stem":6284,"_extension":37},"/en-us/blog/authors/pranay-bakre",{"name":6278,"config":6279},"Pranay Bakre",{"headshot":7,"ctfId":6280},"Darren-Eastman",{"template":694},"content:en-us:blog:authors:pranay-bakre.yml","en-us/blog/authors/pranay-bakre.yml","en-us/blog/authors/pranay-bakre",{"_path":6286,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6287,"config":6291,"_id":6292,"_type":32,"title":6288,"_source":34,"_file":6293,"_stem":6294,"_extension":37},"/en-us/blog/authors/priyanka-sharma",{"name":6288,"config":6289},"Priyanka Sharma",{"headshot":7,"ctfId":6290},"pritianka",{"template":694},"content:en-us:blog:authors:priyanka-sharma.yml","en-us/blog/authors/priyanka-sharma.yml","en-us/blog/authors/priyanka-sharma",{"_path":6296,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6297,"config":6302,"_id":6303,"_type":32,"title":6304,"_source":34,"_file":6305,"_stem":6306,"_extension":37},"/en-us/blog/authors/pter-bozs",{"name":6298,"config":6299},"Péter Bozsó",{"headshot":6300,"ctfId":6301},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666384/Blog/Author%20Headshots/pbozso_headshot.png","4i1NVYip0RqxRnbpZ9deKp",{"template":694},"content:en-us:blog:authors:pter-bozs.yml","Pter Bozs","en-us/blog/authors/pter-bozs.yml","en-us/blog/authors/pter-bozs",{"_path":6308,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6309,"config":6313,"_id":6314,"_type":32,"title":6310,"_source":34,"_file":6315,"_stem":6316,"_extension":37},"/en-us/blog/authors/quan-to",{"name":6310,"config":6311},"Quan To",{"headshot":725,"ctfId":6312},"5dswLnpCobgICjM0RpHMU2",{"template":694},"content:en-us:blog:authors:quan-to.yml","en-us/blog/authors/quan-to.yml","en-us/blog/authors/quan-to",{"_path":6318,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6319,"config":6324,"_id":6325,"_type":32,"title":6320,"_source":34,"_file":6326,"_stem":6327,"_extension":37},"/en-us/blog/authors/rachel-nienaber",{"name":6320,"config":6321},"Rachel Nienaber",{"headshot":6322,"ctfId":6323},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667065/Blog/Author%20Headshots/rnienaber-headshot.jpg","rnienaber",{"template":694},"content:en-us:blog:authors:rachel-nienaber.yml","en-us/blog/authors/rachel-nienaber.yml","en-us/blog/authors/rachel-nienaber",{"_path":6329,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6330,"config":6334,"_id":6336,"_type":32,"title":6331,"_source":34,"_file":6337,"_stem":6338,"_extension":37},"/en-us/blog/authors/radovan-bacovic",{"name":6331,"config":6332},"Radovan Bacovic",{"headshot":6333},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1760036179/vvj2tiujit6kopuz8mqp.png",{"template":694,"gitlabHandle":6335},"rbacovic","content:en-us:blog:authors:radovan-bacovic.yml","en-us/blog/authors/radovan-bacovic.yml","en-us/blog/authors/radovan-bacovic",{"_path":6340,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6341,"config":6345,"_id":6346,"_type":32,"title":6347,"_source":34,"_file":6348,"_stem":6349,"_extension":37},"/en-us/blog/authors/rahul-bhargava-cto-evolphin",{"name":6342,"config":6343},"Rahul Bhargava, CTO, Evolphin",{"headshot":725,"ctfId":6344},"Rahul-Bhargava-CTO-Evolphin",{"template":694},"content:en-us:blog:authors:rahul-bhargava-cto-evolphin.yml","Rahul Bhargava Cto Evolphin","en-us/blog/authors/rahul-bhargava-cto-evolphin.yml","en-us/blog/authors/rahul-bhargava-cto-evolphin",{"_path":6351,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6352,"config":6357,"_id":6358,"_type":32,"title":6353,"_source":34,"_file":6359,"_stem":6360,"_extension":37},"/en-us/blog/authors/raimund-hook",{"name":6353,"config":6354},"Raimund Hook",{"headshot":6355,"ctfId":6356},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672472/Blog/Author%20Headshots/stingrayza-headshot.jpg","stingrayza",{"template":694},"content:en-us:blog:authors:raimund-hook.yml","en-us/blog/authors/raimund-hook.yml","en-us/blog/authors/raimund-hook",{"_path":6362,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6363,"config":6367,"_id":6368,"_type":32,"title":6364,"_source":34,"_file":6369,"_stem":6370,"_extension":37},"/en-us/blog/authors/raquel-campuzano",{"name":6364,"config":6365},"Raquel Campuzano",{"headshot":725,"ctfId":6366},"Raquel-Campuzano",{"template":694},"content:en-us:blog:authors:raquel-campuzano.yml","en-us/blog/authors/raquel-campuzano.yml","en-us/blog/authors/raquel-campuzano",{"_path":6372,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6373,"config":6377,"_id":6378,"_type":32,"title":6374,"_source":34,"_file":6379,"_stem":6380,"_extension":37},"/en-us/blog/authors/ray-paik",{"name":6374,"config":6375},"Ray Paik",{"headshot":7,"ctfId":6376},"rpaik",{"template":694},"content:en-us:blog:authors:ray-paik.yml","en-us/blog/authors/ray-paik.yml","en-us/blog/authors/ray-paik",{"_path":6382,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6383,"config":6388,"_id":6389,"_type":32,"title":6384,"_source":34,"_file":6390,"_stem":6391,"_extension":37},"/en-us/blog/authors/rayana-verissimo",{"name":6384,"config":6385},"Rayana Verissimo",{"headshot":6386,"ctfId":6387},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679581/Blog/Author%20Headshots/rayana-headshot.png","rayana",{"template":694},"content:en-us:blog:authors:rayana-verissimo.yml","en-us/blog/authors/rayana-verissimo.yml","en-us/blog/authors/rayana-verissimo",{"_path":6393,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6394,"config":6398,"_id":6400,"_type":32,"title":6401,"_source":34,"_file":6402,"_stem":6403,"_extension":37},"/en-us/blog/authors/rebeca-fenoy-anthony",{"name":6395,"config":6396},"Rebeca Fenoy-Anthony",{"headshot":6397},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1756988188/r1og9bwc9mxwxqeoehyi.png",{"template":694,"gitlabHandle":6399},"rfenoyanthony","content:en-us:blog:authors:rebeca-fenoy-anthony.yml","Rebeca Fenoy Anthony","en-us/blog/authors/rebeca-fenoy-anthony.yml","en-us/blog/authors/rebeca-fenoy-anthony",{"_path":6405,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6406,"config":6410,"_id":6411,"_type":32,"title":6407,"_source":34,"_file":6412,"_stem":6413,"_extension":37},"/en-us/blog/authors/rebecca-dodd",{"name":6407,"config":6408},"Rebecca Dodd",{"headshot":725,"ctfId":6409},"Rebecca-Dodd",{"template":694},"content:en-us:blog:authors:rebecca-dodd.yml","en-us/blog/authors/rebecca-dodd.yml","en-us/blog/authors/rebecca-dodd",{"_path":6415,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6416,"config":6420,"_id":6421,"_type":32,"title":6417,"_source":34,"_file":6422,"_stem":6423,"_extension":37},"/en-us/blog/authors/regis-freyd",{"name":6417,"config":6418},"Regis Freyd",{"headshot":725,"ctfId":6419},"Regis-Freyd",{"template":694},"content:en-us:blog:authors:regis-freyd.yml","en-us/blog/authors/regis-freyd.yml","en-us/blog/authors/regis-freyd",{"_path":6425,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6426,"config":6431,"_id":6432,"_type":32,"title":6427,"_source":34,"_file":6433,"_stem":6434,"_extension":37},"/en-us/blog/authors/regnard-raquedan",{"name":6427,"config":6428},"Regnard Raquedan",{"headshot":6429,"ctfId":6430},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663118/Blog/Author%20Headshots/regnard_raquedan_headshot.png","rraquedan",{"template":694},"content:en-us:blog:authors:regnard-raquedan.yml","en-us/blog/authors/regnard-raquedan.yml","en-us/blog/authors/regnard-raquedan",{"_path":6436,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6437,"config":6441,"_id":6442,"_type":32,"title":6438,"_source":34,"_file":6443,"_stem":6444,"_extension":37},"/en-us/blog/authors/renato-stanic",{"name":6438,"config":6439},"Renato Stanic",{"headshot":7,"ctfId":6440},"rstanic12",{"template":694},"content:en-us:blog:authors:renato-stanic.yml","en-us/blog/authors/renato-stanic.yml","en-us/blog/authors/renato-stanic",{"_path":6446,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6447,"config":6452,"_id":6453,"_type":32,"title":6448,"_source":34,"_file":6454,"_stem":6455,"_extension":37},"/en-us/blog/authors/ricardo-amarilla-villalba",{"name":6448,"config":6449},"Ricardo Amarilla Villalba",{"headshot":6450,"ctfId":6451},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659922/Blog/Author%20Headshots/amarilla_headshot.png","4WSHcpkt7wBzARJQ1JkIMm",{"template":694},"content:en-us:blog:authors:ricardo-amarilla-villalba.yml","en-us/blog/authors/ricardo-amarilla-villalba.yml","en-us/blog/authors/ricardo-amarilla-villalba",{"_path":6457,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6458,"config":6462,"_id":6463,"_type":32,"title":6459,"_source":34,"_file":6464,"_stem":6465,"_extension":37},"/en-us/blog/authors/riccardo-padovani",{"name":6459,"config":6460},"Riccardo Padovani",{"headshot":725,"ctfId":6461},"Riccardo-Padovani",{"template":694},"content:en-us:blog:authors:riccardo-padovani.yml","en-us/blog/authors/riccardo-padovani.yml","en-us/blog/authors/riccardo-padovani",{"_path":6467,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6468,"config":6473,"_id":6474,"_type":32,"title":6475,"_source":34,"_file":6476,"_stem":6477,"_extension":37},"/en-us/blog/authors/rmy-coutable",{"name":6469,"config":6470},"Rémy Coutable",{"headshot":6471,"ctfId":6472},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667148/Blog/Author%20Headshots/rymai-headshot.jpg","rymai",{"template":694},"content:en-us:blog:authors:rmy-coutable.yml","Rmy Coutable","en-us/blog/authors/rmy-coutable.yml","en-us/blog/authors/rmy-coutable",{"_path":6479,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6480,"config":6485,"_id":6486,"_type":32,"title":6481,"_source":34,"_file":6487,"_stem":6488,"_extension":37},"/en-us/blog/authors/rob-jackson",{"name":6481,"config":6482},"Rob Jackson",{"headshot":6483,"ctfId":6484},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664773/Blog/Author%20Headshots/rob_jackson_headshot.png","12y1rDDleLKyUs9QhZFDQe",{"template":694},"content:en-us:blog:authors:rob-jackson.yml","en-us/blog/authors/rob-jackson.yml","en-us/blog/authors/rob-jackson",{"_path":6490,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6491,"config":6495,"_id":6496,"_type":32,"title":6492,"_source":34,"_file":6497,"_stem":6498,"_extension":37},"/en-us/blog/authors/rob-ribeiro",{"name":6492,"config":6493},"Rob Ribeiro",{"headshot":725,"ctfId":6494},"Rob-Ribeiro",{"template":694},"content:en-us:blog:authors:rob-ribeiro.yml","en-us/blog/authors/rob-ribeiro.yml","en-us/blog/authors/rob-ribeiro",{"_path":6500,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6501,"config":6505,"_id":6506,"_type":32,"title":6502,"_source":34,"_file":6507,"_stem":6508,"_extension":37},"/en-us/blog/authors/robert-speicher",{"name":6502,"config":6503},"Robert Speicher",{"headshot":7,"ctfId":6504},"rspeicher",{"template":694},"content:en-us:blog:authors:robert-speicher.yml","en-us/blog/authors/robert-speicher.yml","en-us/blog/authors/robert-speicher",{"_path":6510,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6511,"config":6516,"_id":6517,"_type":32,"title":6512,"_source":34,"_file":6518,"_stem":6519,"_extension":37},"/en-us/blog/authors/robert-williams",{"name":6512,"config":6513},"Robert Williams",{"headshot":6514,"ctfId":6515},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682973/Blog/Author%20Headshots/r_williams-headshot.png","rwilliams",{"template":694},"content:en-us:blog:authors:robert-williams.yml","en-us/blog/authors/robert-williams.yml","en-us/blog/authors/robert-williams",{"_path":6521,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6522,"config":6528,"_id":6529,"_type":32,"title":6523,"_source":34,"_file":6530,"_stem":6531,"_extension":37},"/en-us/blog/authors/robin-schulman",{"name":6523,"config":6524,"role":6527},"Robin Schulman",{"headshot":6525,"ctfId":6526},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665748/Blog/Author%20Headshots/robin-headshot.png","robin","Chief Legal Officer and Head of Corporate Affairs",{"template":694},"content:en-us:blog:authors:robin-schulman.yml","en-us/blog/authors/robin-schulman.yml","en-us/blog/authors/robin-schulman",{"_path":6533,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6534,"config":6538,"_id":6539,"_type":32,"title":6535,"_source":34,"_file":6540,"_stem":6541,"_extension":37},"/en-us/blog/authors/roger-woo",{"name":6535,"config":6536},"Roger Woo",{"headshot":725,"ctfId":6537},"rogerwoo",{"template":694},"content:en-us:blog:authors:roger-woo.yml","en-us/blog/authors/roger-woo.yml","en-us/blog/authors/roger-woo",{"_path":6543,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6544,"config":6550,"_id":6551,"_type":32,"title":6552,"_source":34,"_file":6553,"_stem":6554,"_extension":37},"/en-us/blog/authors/rohit-shambhuni",{"role":6545,"name":6546,"config":6547},"Staff Application Security Engineer"," Rohit Shambhuni",{"headshot":6548,"ctfId":6549},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661924/Blog/Author%20Headshots/rohit.png","182K42TpkCqjIAwBkZxTmD",{"template":694},"content:en-us:blog:authors:rohit-shambhuni.yml","Rohit Shambhuni","en-us/blog/authors/rohit-shambhuni.yml","en-us/blog/authors/rohit-shambhuni",{"_path":6556,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6557,"config":6561,"_id":6562,"_type":32,"title":6558,"_source":34,"_file":6563,"_stem":6564,"_extension":37},"/en-us/blog/authors/roman-kuba",{"name":6558,"config":6559},"Roman Kuba",{"headshot":7,"ctfId":6560},"rkuba",{"template":694},"content:en-us:blog:authors:roman-kuba.yml","en-us/blog/authors/roman-kuba.yml","en-us/blog/authors/roman-kuba",{"_path":6566,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6567,"config":6572,"_id":6573,"_type":32,"title":6574,"_source":34,"_file":6575,"_stem":6576,"_extension":37},"/en-us/blog/authors/romuald-atchad",{"name":6568,"config":6569},"Romuald Atchadé",{"headshot":6570,"ctfId":6571},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683323/Blog/Author%20Headshots/romuald_headshot.png","UlDEnaT6wqUdPZMmBKpE2",{"template":694},"content:en-us:blog:authors:romuald-atchad.yml","Romuald Atchad","en-us/blog/authors/romuald-atchad.yml","en-us/blog/authors/romuald-atchad",{"_path":6578,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6579,"config":6583,"_id":6584,"_type":32,"title":6585,"_source":34,"_file":6586,"_stem":6587,"_extension":37},"/en-us/blog/authors/ronald-van-zon",{"name":6580,"config":6581},"Ronald van Zon",{"headshot":7,"ctfId":6582},"Eagllus",{"template":694},"content:en-us:blog:authors:ronald-van-zon.yml","Ronald Van Zon","en-us/blog/authors/ronald-van-zon.yml","en-us/blog/authors/ronald-van-zon",{"_path":6589,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6590,"config":6594,"_id":6595,"_type":32,"title":6591,"_source":34,"_file":6596,"_stem":6597,"_extension":37},"/en-us/blog/authors/ross-fuhrman",{"name":6591,"config":6592},"Ross Fuhrman",{"headshot":725,"ctfId":6593},"7dkuWBvIc0AQanUclt3pOk",{"template":694},"content:en-us:blog:authors:ross-fuhrman.yml","en-us/blog/authors/ross-fuhrman.yml","en-us/blog/authors/ross-fuhrman",{"_path":6599,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6600,"config":6604,"_id":6605,"_type":32,"title":6601,"_source":34,"_file":6606,"_stem":6607,"_extension":37},"/en-us/blog/authors/roy-taragan",{"name":6601,"config":6602},"Roy Taragan",{"headshot":725,"ctfId":6603},"3pnwP9gqELfda3DCOQJQCL",{"template":694},"content:en-us:blog:authors:roy-taragan.yml","en-us/blog/authors/roy-taragan.yml","en-us/blog/authors/roy-taragan",{"_path":6609,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6610,"config":6615,"_id":6616,"_type":32,"title":6611,"_source":34,"_file":6617,"_stem":6618,"_extension":37},"/en-us/blog/authors/ruby-nealon",{"name":6611,"config":6612},"Ruby Nealon",{"headshot":6613,"ctfId":6614},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661883/Blog/Author%20Headshots/ruby_nealon_headshot.png","4N7iu9ue1QnoovueNm4S7r",{"template":694},"content:en-us:blog:authors:ruby-nealon.yml","en-us/blog/authors/ruby-nealon.yml","en-us/blog/authors/ruby-nealon",{"_path":6620,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6621,"config":6625,"_id":6626,"_type":32,"title":6622,"_source":34,"_file":6627,"_stem":6628,"_extension":37},"/en-us/blog/authors/rupert-douglas",{"name":6622,"config":6623},"Rupert Douglas",{"headshot":7,"ctfId":6624},"rdouglasgitlab",{"template":694},"content:en-us:blog:authors:rupert-douglas.yml","en-us/blog/authors/rupert-douglas.yml","en-us/blog/authors/rupert-douglas",{"_path":6630,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6631,"config":6635,"_id":6636,"_type":32,"title":6637,"_source":34,"_file":6638,"_stem":6639,"_extension":37},"/en-us/blog/authors/rusty-weston-guest-contributor",{"name":6632,"config":6633},"Rusty Weston, Guest Contributor",{"headshot":7,"ctfId":6634},"3PShSyZ6DJXnkDa5xrQs7V",{"template":694},"content:en-us:blog:authors:rusty-weston-guest-contributor.yml","Rusty Weston Guest Contributor","en-us/blog/authors/rusty-weston-guest-contributor.yml","en-us/blog/authors/rusty-weston-guest-contributor",{"_path":6641,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6642,"config":6647,"_id":6648,"_type":32,"title":6643,"_source":34,"_file":6649,"_stem":6650,"_extension":37},"/en-us/blog/authors/rutvik-shah",{"name":6643,"config":6644},"Rutvik Shah",{"headshot":6645,"ctfId":6646},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661843/Blog/Author%20Headshots/rutvik_shah_headshot.png","6co92rUBTbWcyV3EW23iEx",{"template":694},"content:en-us:blog:authors:rutvik-shah.yml","en-us/blog/authors/rutvik-shah.yml","en-us/blog/authors/rutvik-shah",{"_path":6652,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6653,"config":6658,"_id":6659,"_type":32,"title":6654,"_source":34,"_file":6660,"_stem":6661,"_extension":37},"/en-us/blog/authors/sacha-guyon",{"name":6654,"config":6655},"Sacha Guyon",{"headshot":6656,"ctfId":6657},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664566/Blog/Author%20Headshots/sacha_guyon_headshot.png","24pBtwb7WTU9fJB9qfqJYu",{"template":694},"content:en-us:blog:authors:sacha-guyon.yml","en-us/blog/authors/sacha-guyon.yml","en-us/blog/authors/sacha-guyon",{"_path":6663,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6664,"config":6669,"_id":6670,"_type":32,"title":6665,"_source":34,"_file":6671,"_stem":6672,"_extension":37},"/en-us/blog/authors/safwan-ahmed",{"name":6665,"config":6666},"Safwan Ahmed",{"headshot":6667,"ctfId":6668},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667732/Blog/Author%20Headshots/safwan_headshot.png","2Nw8KPOPpRBiBrVxMIaEn3",{"template":694},"content:en-us:blog:authors:safwan-ahmed.yml","en-us/blog/authors/safwan-ahmed.yml","en-us/blog/authors/safwan-ahmed",{"_path":6674,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6675,"config":6679,"_id":6681,"_type":32,"title":6676,"_source":34,"_file":6682,"_stem":6683,"_extension":37},"/en-us/blog/authors/salahddine-aberkan",{"name":6676,"config":6677},"Salahddine Aberkan",{"headshot":6678},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750434234/comdtybiix8pjqdpsxow.png",{"template":694,"gitlabHandle":6680},"saberkan","content:en-us:blog:authors:salahddine-aberkan.yml","en-us/blog/authors/salahddine-aberkan.yml","en-us/blog/authors/salahddine-aberkan",{"_path":6685,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6686,"config":6691,"_id":6692,"_type":32,"title":6687,"_source":34,"_file":6693,"_stem":6694,"_extension":37},"/en-us/blog/authors/salman-ladha",{"name":6687,"config":6688},"Salman Ladha",{"headshot":6689,"ctfId":6690},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662937/Blog/Author%20Headshots/salman_ladha_headshot.png","2AYyG99S9PBB8PQIJ6aKuq",{"template":694},"content:en-us:blog:authors:salman-ladha.yml","en-us/blog/authors/salman-ladha.yml","en-us/blog/authors/salman-ladha",{"_path":6696,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6697,"config":6702,"_id":6703,"_type":32,"title":6698,"_source":34,"_file":6704,"_stem":6705,"_extension":37},"/en-us/blog/authors/sam-beckham",{"name":6698,"config":6699},"Sam Beckham",{"headshot":6700,"ctfId":6701},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678740/Blog/Author%20Headshots/samdbeckham-headshot.jpg","samdbeckham",{"template":694},"content:en-us:blog:authors:sam-beckham.yml","en-us/blog/authors/sam-beckham.yml","en-us/blog/authors/sam-beckham",{"_path":6707,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6708,"config":6713,"_id":6714,"_type":32,"title":6709,"_source":34,"_file":6715,"_stem":6716,"_extension":37},"/en-us/blog/authors/sam-kerr",{"name":6709,"config":6710},"Sam Kerr",{"headshot":6711,"ctfId":6712},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668841/Blog/Author%20Headshots/stkerr-headshot.jpg","stkerr",{"template":694},"content:en-us:blog:authors:sam-kerr.yml","en-us/blog/authors/sam-kerr.yml","en-us/blog/authors/sam-kerr",{"_path":6718,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6719,"config":6724,"_id":6725,"_type":32,"title":6720,"_source":34,"_file":6726,"_stem":6727,"_extension":37},"/en-us/blog/authors/sam-morris",{"name":6720,"config":6721},"Sam Morris",{"headshot":6722,"ctfId":6723},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660148/Blog/Author%20Headshots/sam_morris.png","6JTrhUIqSCU30Y9KZOaan8",{"template":694},"content:en-us:blog:authors:sam-morris.yml","en-us/blog/authors/sam-morris.yml","en-us/blog/authors/sam-morris",{"_path":6729,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6730,"config":6735,"_id":6736,"_type":32,"title":6731,"_source":34,"_file":6737,"_stem":6738,"_extension":37},"/en-us/blog/authors/sam-white",{"name":6731,"config":6732},"Sam White",{"headshot":6733,"ctfId":6734},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682227/Blog/Author%20Headshots/sam.png","samwhite",{"template":694},"content:en-us:blog:authors:sam-white.yml","en-us/blog/authors/sam-white.yml","en-us/blog/authors/sam-white",{"_path":6740,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6741,"config":6746,"_id":6747,"_type":32,"title":6742,"_source":34,"_file":6748,"_stem":6749,"_extension":37},"/en-us/blog/authors/sam-wiskow",{"name":6742,"config":6743},"Sam Wiskow",{"headshot":6744,"ctfId":6745},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659433/Blog/Author%20Headshots/swiskow-headshot.jpg","swiskow",{"template":694},"content:en-us:blog:authors:sam-wiskow.yml","en-us/blog/authors/sam-wiskow.yml","en-us/blog/authors/sam-wiskow",{"_path":6751,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6752,"config":6757,"_id":6758,"_type":32,"title":6753,"_source":34,"_file":6759,"_stem":6760,"_extension":37},"/en-us/blog/authors/samantha-lee",{"name":6753,"config":6754},"Samantha Lee",{"headshot":6755,"ctfId":6756},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679833/Blog/Author%20Headshots/slee24-headshot.png","slee24",{"template":694},"content:en-us:blog:authors:samantha-lee.yml","en-us/blog/authors/samantha-lee.yml","en-us/blog/authors/samantha-lee",{"_path":6762,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6763,"config":6767,"_id":6768,"_type":32,"title":6769,"_source":34,"_file":6770,"_stem":6771,"_extension":37},"/en-us/blog/authors/sameer-farooqui-octoml",{"name":6764,"config":6765},"Sameer Farooqui, OctoML",{"headshot":725,"ctfId":6766},"Sameer-Farooqui-OctoML",{"template":694},"content:en-us:blog:authors:sameer-farooqui-octoml.yml","Sameer Farooqui Octoml","en-us/blog/authors/sameer-farooqui-octoml.yml","en-us/blog/authors/sameer-farooqui-octoml",{"_path":6773,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6774,"config":6779,"_id":6780,"_type":32,"title":6775,"_source":34,"_file":6781,"_stem":6782,"_extension":37},"/en-us/blog/authors/sameer-kamani",{"name":6775,"config":6776},"Sameer Kamani",{"headshot":6777,"ctfId":6778},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682359/Blog/Author%20Headshots/skamani-headshot.jpg","skamani",{"template":694},"content:en-us:blog:authors:sameer-kamani.yml","en-us/blog/authors/sameer-kamani.yml","en-us/blog/authors/sameer-kamani",{"_path":6784,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6785,"config":6790,"_id":6791,"_type":32,"title":6786,"_source":34,"_file":6792,"_stem":6793,"_extension":37},"/en-us/blog/authors/samer-akkoub",{"name":6786,"config":6787},"Samer Akkoub",{"headshot":6788,"ctfId":6789},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664173/Blog/Author%20Headshots/SamerAkkoub.png","BekAzK0RFux30pt6dvtWh",{"template":694},"content:en-us:blog:authors:samer-akkoub.yml","en-us/blog/authors/samer-akkoub.yml","en-us/blog/authors/samer-akkoub",{"_path":6795,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6796,"config":6800,"_id":6801,"_type":32,"title":6797,"_source":34,"_file":6802,"_stem":6803,"_extension":37},"/en-us/blog/authors/samuel-alfageme",{"name":6797,"config":6798},"Samuel Alfageme",{"headshot":725,"ctfId":6799},"Samuel-Alfageme",{"template":694},"content:en-us:blog:authors:samuel-alfageme.yml","en-us/blog/authors/samuel-alfageme.yml","en-us/blog/authors/samuel-alfageme",{"_path":6805,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6806,"config":6813,"_id":6814,"_type":32,"title":6808,"_source":34,"_file":6815,"_stem":6816,"_extension":37},"/en-us/blog/authors/sandra-gittlen",{"role":6807,"name":6808,"config":6809},"Managing Editor, GitLab Blog","Sandra Gittlen",{"headshot":6810,"linkedin":6811,"ctfId":6812},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659648/Blog/Author%20Headshots/Sgittlen-headshot.jpg","https://www.linkedin.com/in/sandra-gittlen-48557a294/","sgittlen",{"template":694},"content:en-us:blog:authors:sandra-gittlen.yml","en-us/blog/authors/sandra-gittlen.yml","en-us/blog/authors/sandra-gittlen",{"_path":6818,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6819,"config":6823,"_id":6824,"_type":32,"title":6820,"_source":34,"_file":6825,"_stem":6826,"_extension":37},"/en-us/blog/authors/sandra-salerno",{"name":6820,"config":6821},"Sandra Salerno",{"headshot":725,"ctfId":6822},"Sandra-Salerno",{"template":694},"content:en-us:blog:authors:sandra-salerno.yml","en-us/blog/authors/sandra-salerno.yml","en-us/blog/authors/sandra-salerno",{"_path":6828,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6829,"config":6833,"_id":6834,"_type":32,"title":6835,"_source":34,"_file":6836,"_stem":6837,"_extension":37},"/en-us/blog/authors/santiago-ruano-rincn",{"name":6830,"config":6831},"Santiago Ruano Rincón",{"headshot":7,"ctfId":6832},"topodelapradera",{"template":694},"content:en-us:blog:authors:santiago-ruano-rincn.yml","Santiago Ruano Rincn","en-us/blog/authors/santiago-ruano-rincn.yml","en-us/blog/authors/santiago-ruano-rincn",{"_path":6839,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6840,"config":6844,"_id":6845,"_type":32,"title":6841,"_source":34,"_file":6846,"_stem":6847,"_extension":37},"/en-us/blog/authors/sara-kassabian",{"name":6841,"config":6842},"Sara Kassabian",{"headshot":7,"ctfId":6843},"skassabian",{"template":694},"content:en-us:blog:authors:sara-kassabian.yml","en-us/blog/authors/sara-kassabian.yml","en-us/blog/authors/sara-kassabian",{"_path":6849,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6850,"config":6855,"_id":6856,"_type":32,"title":6851,"_source":34,"_file":6857,"_stem":6858,"_extension":37},"/en-us/blog/authors/sara-meadzinger",{"name":6851,"config":6852},"Sara Meadzinger",{"headshot":6853,"ctfId":6854},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750713474/ucbe3kgq9cylttuqy5lt.png","53lD8Rb05nXLHefXurjdvI",{"template":694},"content:en-us:blog:authors:sara-meadzinger.yml","en-us/blog/authors/sara-meadzinger.yml","en-us/blog/authors/sara-meadzinger",{"_path":6860,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6861,"config":6865,"_id":6866,"_type":32,"title":6862,"_source":34,"_file":6867,"_stem":6868,"_extension":37},"/en-us/blog/authors/sarah-daily",{"name":6862,"config":6863},"Sarah Daily",{"headshot":725,"ctfId":6864},"2YhqRPG08HF0FCF1l7oeZL",{"template":694},"content:en-us:blog:authors:sarah-daily.yml","en-us/blog/authors/sarah-daily.yml","en-us/blog/authors/sarah-daily",{"_path":6870,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6871,"config":6875,"_id":6876,"_type":32,"title":6872,"_source":34,"_file":6877,"_stem":6878,"_extension":37},"/en-us/blog/authors/sarah-german",{"name":6872,"config":6873},"Sarah German",{"headshot":6874,"ctfId":4543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755639969/jgc97wpptft48qsbrla7.jpg",{"template":694},"content:en-us:blog:authors:sarah-german.yml","en-us/blog/authors/sarah-german.yml","en-us/blog/authors/sarah-german",{"_path":6880,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6881,"config":6886,"_id":6887,"_type":32,"title":6882,"_source":34,"_file":6888,"_stem":6889,"_extension":37},"/en-us/blog/authors/sarah-matthies",{"name":6882,"config":6883},"Sarah Matthies",{"headshot":6884,"ctfId":6885},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664405/Blog/Author%20Headshots/Screenshot_2024-11-19_at_9.50.14_AM.png","2Giv8NnS4VVAq9RsHYqHkg",{"template":694},"content:en-us:blog:authors:sarah-matthies.yml","en-us/blog/authors/sarah-matthies.yml","en-us/blog/authors/sarah-matthies",{"_path":6891,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6892,"config":6896,"_id":6897,"_type":32,"title":6898,"_source":34,"_file":6899,"_stem":6900,"_extension":37},"/en-us/blog/authors/sarah-odonnell",{"name":6893,"config":6894},"Sarah O’Donnell",{"headshot":7,"ctfId":6895},"sarahod",{"template":694},"content:en-us:blog:authors:sarah-odonnell.yml","Sarah Odonnell","en-us/blog/authors/sarah-odonnell.yml","en-us/blog/authors/sarah-odonnell",{"_path":6902,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6903,"config":6908,"_id":6909,"_type":32,"title":6904,"_source":34,"_file":6910,"_stem":6911,"_extension":37},"/en-us/blog/authors/sarah-waldner",{"name":6904,"config":6905},"Sarah Waldner",{"headshot":6906,"ctfId":6907},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667588/Blog/Author%20Headshots/sarahwaldner-headshot.png","sarahwaldner",{"template":694},"content:en-us:blog:authors:sarah-waldner.yml","en-us/blog/authors/sarah-waldner.yml","en-us/blog/authors/sarah-waldner",{"_path":6913,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6914,"config":6918,"_id":6919,"_type":32,"title":6915,"_source":34,"_file":6920,"_stem":6921,"_extension":37},"/en-us/blog/authors/sarrah-vesselov",{"name":6915,"config":6916},"Sarrah Vesselov",{"headshot":7,"ctfId":6917},"sarrahvesselov",{"template":694},"content:en-us:blog:authors:sarrah-vesselov.yml","en-us/blog/authors/sarrah-vesselov.yml","en-us/blog/authors/sarrah-vesselov",{"_path":6923,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6924,"config":6928,"_id":6929,"_type":32,"title":6925,"_source":34,"_file":6930,"_stem":6931,"_extension":37},"/en-us/blog/authors/sarup-banskota",{"name":6925,"config":6926},"Sarup Banskota",{"headshot":725,"ctfId":6927},"3sY2Ef0sXxaJKCmArdSLsA",{"template":694},"content:en-us:blog:authors:sarup-banskota.yml","en-us/blog/authors/sarup-banskota.yml","en-us/blog/authors/sarup-banskota",{"_path":6933,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6934,"config":6939,"_id":6940,"_type":32,"title":6935,"_source":34,"_file":6941,"_stem":6942,"_extension":37},"/en-us/blog/authors/sascha-eggenberger",{"name":6935,"config":6936},"Sascha Eggenberger",{"headshot":6937,"ctfId":6938},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666141/Blog/Author%20Headshots/sascha_eggenberger_headshot.png","O6MskfzTlsw7vLqbd86bX",{"template":694},"content:en-us:blog:authors:sascha-eggenberger.yml","en-us/blog/authors/sascha-eggenberger.yml","en-us/blog/authors/sascha-eggenberger",{"_path":6944,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6945,"config":6949,"_id":6950,"_type":32,"title":6946,"_source":34,"_file":6951,"_stem":6952,"_extension":37},"/en-us/blog/authors/sasha-bannister",{"name":6946,"config":6947},"Sasha Bannister",{"headshot":725,"ctfId":6948},"Sasha-Bannister",{"template":694},"content:en-us:blog:authors:sasha-bannister.yml","en-us/blog/authors/sasha-bannister.yml","en-us/blog/authors/sasha-bannister",{"_path":6954,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6955,"config":6960,"_id":6961,"_type":32,"title":6956,"_source":34,"_file":6962,"_stem":6963,"_extension":37},"/en-us/blog/authors/sasha-gazlay",{"name":6956,"config":6957},"Sasha Gazlay",{"headshot":6958,"ctfId":6959},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663565/Blog/Author%20Headshots/sasha_gazlay_headshot.png","77Cb6RM2x7PjvfDc64pZxa",{"template":694},"content:en-us:blog:authors:sasha-gazlay.yml","en-us/blog/authors/sasha-gazlay.yml","en-us/blog/authors/sasha-gazlay",{"_path":6965,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6966,"config":6971,"_id":6972,"_type":32,"title":6967,"_source":34,"_file":6973,"_stem":6974,"_extension":37},"/en-us/blog/authors/saumya-upadhyaya",{"name":6967,"config":6968},"Saumya Upadhyaya",{"headshot":6969,"ctfId":6970},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665624/Blog/Author%20Headshots/supadhyaya-headshot.jpg","4aP7wXPoc3veAEWbngqxKR",{"template":694},"content:en-us:blog:authors:saumya-upadhyaya.yml","en-us/blog/authors/saumya-upadhyaya.yml","en-us/blog/authors/saumya-upadhyaya",{"_path":6976,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6977,"config":6982,"_id":6983,"_type":32,"title":6984,"_source":34,"_file":6985,"_stem":6986,"_extension":37},"/en-us/blog/authors/scott-de-jonge",{"name":6978,"config":6979},"Scott de Jonge",{"headshot":6980,"ctfId":6981},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682764/Blog/Author%20Headshots/sdejonge-headshot.jpg","sdejonge",{"template":694},"content:en-us:blog:authors:scott-de-jonge.yml","Scott De Jonge","en-us/blog/authors/scott-de-jonge.yml","en-us/blog/authors/scott-de-jonge",{"_path":6988,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":6989,"config":6994,"_id":6995,"_type":32,"title":6990,"_source":34,"_file":6996,"_stem":6997,"_extension":37},"/en-us/blog/authors/scott-hampton",{"name":6990,"config":6991},"Scott Hampton",{"headshot":6992,"ctfId":6993},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682259/Blog/Author%20Headshots/shampton-headshot.png","shampton",{"template":694},"content:en-us:blog:authors:scott-hampton.yml","en-us/blog/authors/scott-hampton.yml","en-us/blog/authors/scott-hampton",{"_path":6999,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7000,"config":7004,"_id":7005,"_type":32,"title":7001,"_source":34,"_file":7006,"_stem":7007,"_extension":37},"/en-us/blog/authors/scott-williamson",{"name":7001,"config":7002},"Scott Williamson",{"headshot":7,"ctfId":7003},"sfwgitlab",{"template":694},"content:en-us:blog:authors:scott-williamson.yml","en-us/blog/authors/scott-williamson.yml","en-us/blog/authors/scott-williamson",{"_path":7009,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7010,"config":7015,"_id":7016,"_type":32,"title":7011,"_source":34,"_file":7017,"_stem":7018,"_extension":37},"/en-us/blog/authors/sean-arnold",{"name":7011,"config":7012},"Sean Arnold",{"headshot":7013,"ctfId":7014},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681647/Blog/Author%20Headshots/seanarnold-headshot.jpg","seanarnold",{"template":694},"content:en-us:blog:authors:sean-arnold.yml","en-us/blog/authors/sean-arnold.yml","en-us/blog/authors/sean-arnold",{"_path":7020,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7021,"config":7025,"_id":7026,"_type":32,"title":7027,"_source":34,"_file":7028,"_stem":7029,"_extension":37},"/en-us/blog/authors/sean-mcgivern",{"name":7022,"config":7023},"Sean McGivern",{"headshot":725,"ctfId":7024},"Sean-McGivern",{"template":694},"content:en-us:blog:authors:sean-mcgivern.yml","Sean Mcgivern","en-us/blog/authors/sean-mcgivern.yml","en-us/blog/authors/sean-mcgivern",{"_path":7031,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7032,"config":7036,"_id":7037,"_type":32,"title":7033,"_source":34,"_file":7038,"_stem":7039,"_extension":37},"/en-us/blog/authors/sean-packham",{"name":7033,"config":7034},"Sean Packham",{"headshot":725,"ctfId":7035},"Sean-Packham",{"template":694},"content:en-us:blog:authors:sean-packham.yml","en-us/blog/authors/sean-packham.yml","en-us/blog/authors/sean-packham",{"_path":7041,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7042,"config":7046,"_id":7047,"_type":32,"title":7043,"_source":34,"_file":7048,"_stem":7049,"_extension":37},"/en-us/blog/authors/sebastian-latacz",{"name":7043,"config":7044},"Sebastian Latacz",{"headshot":725,"ctfId":7045},"4DoWSQV719HEWt2rbDIoQR",{"template":694},"content:en-us:blog:authors:sebastian-latacz.yml","en-us/blog/authors/sebastian-latacz.yml","en-us/blog/authors/sebastian-latacz",{"_path":7051,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7052,"config":7056,"_id":7057,"_type":32,"title":7053,"_source":34,"_file":7058,"_stem":7059,"_extension":37},"/en-us/blog/authors/sergey-nuzhdin",{"name":7053,"config":7054},"Sergey Nuzhdin",{"headshot":725,"ctfId":7055},"Sergey-Nuzhdin",{"template":694},"content:en-us:blog:authors:sergey-nuzhdin.yml","en-us/blog/authors/sergey-nuzhdin.yml","en-us/blog/authors/sergey-nuzhdin",{"_path":7061,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7062,"config":7066,"_id":7067,"_type":32,"title":7063,"_source":34,"_file":7068,"_stem":7069,"_extension":37},"/en-us/blog/authors/seth-berger",{"name":7063,"config":7064},"Seth Berger",{"headshot":7,"ctfId":7065},"sethgitlab",{"template":694},"content:en-us:blog:authors:seth-berger.yml","en-us/blog/authors/seth-berger.yml","en-us/blog/authors/seth-berger",{"_path":7071,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7072,"config":7076,"_id":7077,"_type":32,"title":7073,"_source":34,"_file":7078,"_stem":7079,"_extension":37},"/en-us/blog/authors/shane-rice",{"name":7073,"config":7074},"Shane Rice",{"headshot":725,"ctfId":7075},"3uVL7xMsEf13JzpbXYTCbM",{"template":694},"content:en-us:blog:authors:shane-rice.yml","en-us/blog/authors/shane-rice.yml","en-us/blog/authors/shane-rice",{"_path":7081,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7082,"config":7087,"_id":7088,"_type":32,"title":7083,"_source":34,"_file":7089,"_stem":7090,"_extension":37},"/en-us/blog/authors/sharon-gaudin",{"name":7083,"config":7084},"Sharon Gaudin",{"headshot":7085,"ctfId":7086},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663767/Blog/Author%20Headshots/sharongaudinheadshot.png","sgaudin",{"template":694},"content:en-us:blog:authors:sharon-gaudin.yml","en-us/blog/authors/sharon-gaudin.yml","en-us/blog/authors/sharon-gaudin",{"_path":7092,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7093,"config":7097,"_id":7098,"_type":32,"title":7094,"_source":34,"_file":7099,"_stem":7100,"_extension":37},"/en-us/blog/authors/shawn-winters",{"name":7094,"config":7095},"Shawn Winters",{"headshot":7,"ctfId":7096},"ShawnWinters",{"template":694},"content:en-us:blog:authors:shawn-winters.yml","en-us/blog/authors/shawn-winters.yml","en-us/blog/authors/shawn-winters",{"_path":7102,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7103,"config":7107,"_id":7108,"_type":32,"title":7109,"_source":34,"_file":7110,"_stem":7111,"_extension":37},"/en-us/blog/authors/sherida-mcmullan",{"name":7104,"config":7105},"Sherida McMullan",{"headshot":725,"ctfId":7106},"BpqiUFXm6aUxjXJdAeKuL",{"template":694},"content:en-us:blog:authors:sherida-mcmullan.yml","Sherida Mcmullan","en-us/blog/authors/sherida-mcmullan.yml","en-us/blog/authors/sherida-mcmullan",{"_path":7113,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7114,"config":7118,"_id":7119,"_type":32,"title":7115,"_source":34,"_file":7120,"_stem":7121,"_extension":37},"/en-us/blog/authors/shinya-maeda",{"name":7115,"config":7116},"Shinya Maeda",{"headshot":7,"ctfId":7117},"dosuken123",{"template":694},"content:en-us:blog:authors:shinya-maeda.yml","en-us/blog/authors/shinya-maeda.yml","en-us/blog/authors/shinya-maeda",{"_path":7123,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7124,"config":7129,"_id":7130,"_type":32,"title":7125,"_source":34,"_file":7131,"_stem":7132,"_extension":37},"/en-us/blog/authors/shrishti-choudhary",{"name":7125,"config":7126},"Shrishti Choudhary",{"headshot":7127,"ctfId":7128},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671923/Blog/Author%20Headshots/shrishti.png","5tIiu8vyhWHEUi1tgQivzj",{"template":694},"content:en-us:blog:authors:shrishti-choudhary.yml","en-us/blog/authors/shrishti-choudhary.yml","en-us/blog/authors/shrishti-choudhary",{"_path":7134,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7135,"config":7144,"_id":7145,"_type":32,"title":7137,"_source":34,"_file":7146,"_stem":7147,"_extension":37},"/en-us/blog/authors/sid-sijbrandij",{"role":7136,"name":7137,"bio":7138,"config":7139},"Co-founder, Chief Executive Officer and Board Chair of GitLab Inc.","Sid Sijbrandij","Sid Sijbrandij (pronounced see-brandy) is the Co-founder, Chief Executive Officer and Board Chair of GitLab Inc., the most comprehensive AI-powered DevSecOps platform. GitLab's single application helps organizations deliver software faster and more efficiently while strengthening their security and compliance.\n\nSid's career path has been anything but traditional. He spent four years building recreational submarines for U-Boat Worx and while at Ministerie van Justitie en Veiligheid he worked on the Legis project, which developed several innovative web applications to aid lawmaking. He first saw Ruby code in 2007 and loved it so much that he taught himself how to program. In 2012, as a Ruby programmer, he encountered GitLab and discovered his passion for open source. Soon after, Sid commercialized GitLab, and by 2015 he led the company through Y Combinator's Winter 2015 batch. Under his leadership, the company has grown with an estimated 30 million+ registered users from startups to global enterprises.\n\nSid studied at the University of Twente in the Netherlands where he received an M.S. in Management Science. Sid was named one of the greatest minds of the pandemic by Forbes for spreading the gospel of remote work.",{"headshot":7140,"twitter":7141,"linkedin":7142,"ctfId":7143},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665383/Blog/Author%20Headshots/sytses-headshot.png","https://twitter.com/sytses","https://www.linkedin.com/in/sijbrandij","sytses",{"template":694},"content:en-us:blog:authors:sid-sijbrandij.yml","en-us/blog/authors/sid-sijbrandij.yml","en-us/blog/authors/sid-sijbrandij",{"_path":7149,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7150,"config":7155,"_id":7156,"_type":32,"title":7151,"_source":34,"_file":7157,"_stem":7158,"_extension":37},"/en-us/blog/authors/siddharth-mathur",{"name":7151,"config":7152},"Siddharth Mathur",{"headshot":7153,"ctfId":7154},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682662/Blog/Author%20Headshots/smathur-headshot.png","smathur",{"template":694},"content:en-us:blog:authors:siddharth-mathur.yml","en-us/blog/authors/siddharth-mathur.yml","en-us/blog/authors/siddharth-mathur",{"_path":7160,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7161,"config":7165,"_id":7166,"_type":32,"title":7162,"_source":34,"_file":7167,"_stem":7168,"_extension":37},"/en-us/blog/authors/simon-tarchichi",{"name":7162,"config":7163},"Simon Tarchichi",{"headshot":7,"ctfId":7164},"kartsims",{"template":694},"content:en-us:blog:authors:simon-tarchichi.yml","en-us/blog/authors/simon-tarchichi.yml","en-us/blog/authors/simon-tarchichi",{"_path":7170,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7171,"config":7176,"_id":7177,"_type":32,"title":7172,"_source":34,"_file":7178,"_stem":7179,"_extension":37},"/en-us/blog/authors/sophia-manicor",{"name":7172,"config":7173},"Sophia Manicor",{"headshot":7174,"ctfId":7175},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665576/Blog/Author%20Headshots/sophie_manicor_headshot.png","79Msqcc9YZrC0IvTggfQ5y",{"template":694},"content:en-us:blog:authors:sophia-manicor.yml","en-us/blog/authors/sophia-manicor.yml","en-us/blog/authors/sophia-manicor",{"_path":7181,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7182,"config":7187,"_id":7188,"_type":32,"title":7183,"_source":34,"_file":7189,"_stem":7190,"_extension":37},"/en-us/blog/authors/sri-rangan",{"name":7183,"config":7184},"Sri Rangan",{"headshot":7185,"ctfId":7186},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665808/Blog/Author%20Headshots/sri19-headshot.jpg","sri19",{"template":694},"content:en-us:blog:authors:sri-rangan.yml","en-us/blog/authors/sri-rangan.yml","en-us/blog/authors/sri-rangan",{"_path":7192,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7193,"config":7198,"_id":7199,"_type":32,"title":7194,"_source":34,"_file":7200,"_stem":7201,"_extension":37},"/en-us/blog/authors/stacy-cline",{"name":7194,"config":7195},"Stacy Cline",{"headshot":7196,"ctfId":7197},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669909/Blog/Author%20Headshots/stacycline.jpg","5a2wvqC09jbT1kGMpVoNyg",{"template":694},"content:en-us:blog:authors:stacy-cline.yml","en-us/blog/authors/stacy-cline.yml","en-us/blog/authors/stacy-cline",{"_path":7203,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7204,"config":7209,"_id":7210,"_type":32,"title":7205,"_source":34,"_file":7211,"_stem":7212,"_extension":37},"/en-us/blog/authors/stan-hu",{"name":7205,"config":7206},"Stan Hu",{"headshot":7207,"ctfId":7208},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659504/Blog/Author%20Headshots/stanhu-headshot.jpg","stanhu",{"template":694},"content:en-us:blog:authors:stan-hu.yml","en-us/blog/authors/stan-hu.yml","en-us/blog/authors/stan-hu",{"_path":7214,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7215,"config":7219,"_id":7220,"_type":32,"title":7221,"_source":34,"_file":7222,"_stem":7223,"_extension":37},"/en-us/blog/authors/stephan-hochdrfer",{"name":7216,"config":7217},"Stephan Hochdörfer",{"headshot":725,"ctfId":7218},"Stephan-Hochdrfer",{"template":694},"content:en-us:blog:authors:stephan-hochdrfer.yml","Stephan Hochdrfer","en-us/blog/authors/stephan-hochdrfer.yml","en-us/blog/authors/stephan-hochdrfer",{"_path":7225,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7226,"config":7230,"_id":7231,"_type":32,"title":7227,"_source":34,"_file":7232,"_stem":7233,"_extension":37},"/en-us/blog/authors/stephanie-garza",{"name":7227,"config":7228},"Stephanie Garza",{"headshot":7,"ctfId":7229},"StephanieGarza",{"template":694},"content:en-us:blog:authors:stephanie-garza.yml","en-us/blog/authors/stephanie-garza.yml","en-us/blog/authors/stephanie-garza",{"_path":7235,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7236,"config":7240,"_id":7241,"_type":32,"title":7242,"_source":34,"_file":7243,"_stem":7244,"_extension":37},"/en-us/blog/authors/stephen-mcguinness",{"name":7237,"config":7238},"Stephen McGuinness",{"headshot":7,"ctfId":7239},"smcguinness1",{"template":694},"content:en-us:blog:authors:stephen-mcguinness.yml","Stephen Mcguinness","en-us/blog/authors/stephen-mcguinness.yml","en-us/blog/authors/stephen-mcguinness",{"_path":7246,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7247,"config":7252,"_id":7253,"_type":32,"title":7248,"_source":34,"_file":7254,"_stem":7255,"_extension":37},"/en-us/blog/authors/stephen-walters",{"name":7248,"config":7249},"Stephen Walters",{"headshot":7250,"ctfId":7251},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664996/Blog/Author%20Headshots/stephen_walters_gitlab.png","7uMrX0SDPVz1YkZnVqLmGm",{"template":694},"content:en-us:blog:authors:stephen-walters.yml","en-us/blog/authors/stephen-walters.yml","en-us/blog/authors/stephen-walters",{"_path":7257,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7258,"config":7263,"_id":7264,"_type":32,"title":7259,"_source":34,"_file":7265,"_stem":7266,"_extension":37},"/en-us/blog/authors/steve-abrams",{"name":7259,"config":7260},"Steve Abrams",{"headshot":7261,"ctfId":7262},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681809/Blog/Author%20Headshots/sabrams-headshot.png","sabrams",{"template":694},"content:en-us:blog:authors:steve-abrams.yml","en-us/blog/authors/steve-abrams.yml","en-us/blog/authors/steve-abrams",{"_path":7268,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7269,"config":7273,"_id":7274,"_type":32,"title":7270,"_source":34,"_file":7275,"_stem":7276,"_extension":37},"/en-us/blog/authors/steve-azzopardi",{"name":7270,"config":7271},"Steve Azzopardi",{"headshot":7,"ctfId":7272},"steveazz",{"template":694},"content:en-us:blog:authors:steve-azzopardi.yml","en-us/blog/authors/steve-azzopardi.yml","en-us/blog/authors/steve-azzopardi",{"_path":7278,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7279,"config":7284,"_id":7285,"_type":32,"title":7280,"_source":34,"_file":7286,"_stem":7287,"_extension":37},"/en-us/blog/authors/steve-grossman",{"name":7280,"config":7281},"Steve Grossman",{"headshot":7282,"ctfId":7283},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682744/Blog/Author%20Headshots/Steevo-headshot.jpg","Steevo",{"template":694},"content:en-us:blog:authors:steve-grossman.yml","en-us/blog/authors/steve-grossman.yml","en-us/blog/authors/steve-grossman",{"_path":7289,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7290,"config":7294,"_id":7295,"_type":32,"title":7291,"_source":34,"_file":7296,"_stem":7297,"_extension":37},"/en-us/blog/authors/steve-ropa",{"name":7291,"config":7292},"Steve Ropa",{"headshot":725,"ctfId":7293},"Steve-Ropa",{"template":694},"content:en-us:blog:authors:steve-ropa.yml","en-us/blog/authors/steve-ropa.yml","en-us/blog/authors/steve-ropa",{"_path":7299,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7300,"config":7304,"_id":7305,"_type":32,"title":7301,"_source":34,"_file":7306,"_stem":7307,"_extension":37},"/en-us/blog/authors/steve-truong",{"name":7301,"config":7302},"Steve Truong",{"headshot":7,"ctfId":7303},"sttruong",{"template":694},"content:en-us:blog:authors:steve-truong.yml","en-us/blog/authors/steve-truong.yml","en-us/blog/authors/steve-truong",{"_path":7309,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7310,"config":7314,"_id":7315,"_type":32,"title":7311,"_source":34,"_file":7316,"_stem":7317,"_extension":37},"/en-us/blog/authors/steven-zinck",{"name":7311,"config":7312},"Steven Zinck",{"headshot":725,"ctfId":7313},"49JllsB7PFUrjj2Wi4Wa2O",{"template":694},"content:en-us:blog:authors:steven-zinck.yml","en-us/blog/authors/steven-zinck.yml","en-us/blog/authors/steven-zinck",{"_path":7319,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7320,"config":7324,"_id":7325,"_type":32,"title":7321,"_source":34,"_file":7326,"_stem":7327,"_extension":37},"/en-us/blog/authors/sunil-kowlgi",{"name":7321,"config":7322},"Sunil Kowlgi",{"headshot":725,"ctfId":7323},"Sunil-Kowlgi",{"template":694},"content:en-us:blog:authors:sunil-kowlgi.yml","en-us/blog/authors/sunil-kowlgi.yml","en-us/blog/authors/sunil-kowlgi",{"_path":7329,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7330,"config":7334,"_id":7335,"_type":32,"title":7331,"_source":34,"_file":7336,"_stem":7337,"_extension":37},"/en-us/blog/authors/suri-patel",{"name":7331,"config":7332},"Suri Patel",{"headshot":725,"ctfId":7333},"suripatel",{"template":694},"content:en-us:blog:authors:suri-patel.yml","en-us/blog/authors/suri-patel.yml","en-us/blog/authors/suri-patel",{"_path":7339,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7340,"config":7345,"_id":7346,"_type":32,"title":7341,"_source":34,"_file":7347,"_stem":7348,"_extension":37},"/en-us/blog/authors/susan-tacker",{"name":7341,"config":7342},"Susan Tacker",{"headshot":7343,"ctfId":7344},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660253/Blog/Author%20Headshots/susantacker-headshot.jpg","6uxN75wAjT3afaKtVlr9GM",{"template":694},"content:en-us:blog:authors:susan-tacker.yml","en-us/blog/authors/susan-tacker.yml","en-us/blog/authors/susan-tacker",{"_path":7350,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7351,"config":7357,"_id":7358,"_type":32,"title":7352,"_source":34,"_file":7359,"_stem":7360,"_extension":37},"/en-us/blog/authors/susie-bitters",{"name":7352,"config":7353},"Susie Bitters",{"headshot":7354,"linkedin":7355,"ctfId":7356},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664195/Blog/Author%20Headshots/susiebittersheadshot.png","https://www.linkedin.com/in/susie-bitters-33268410/","7yiomgeGp9k4a4srjDU1QK",{"template":694},"content:en-us:blog:authors:susie-bitters.yml","en-us/blog/authors/susie-bitters.yml","en-us/blog/authors/susie-bitters",{"_path":7362,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7363,"config":7367,"_id":7368,"_type":32,"title":7364,"_source":34,"_file":7369,"_stem":7370,"_extension":37},"/en-us/blog/authors/suzanne-selhorn",{"name":7364,"config":7365},"Suzanne Selhorn",{"headshot":7366,"ctfId":4543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755616156/vboecuoyo8tjfdis7c5a.jpg",{"template":694},"content:en-us:blog:authors:suzanne-selhorn.yml","en-us/blog/authors/suzanne-selhorn.yml","en-us/blog/authors/suzanne-selhorn",{"_path":7372,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7373,"config":7378,"_id":7379,"_type":32,"title":7374,"_source":34,"_file":7380,"_stem":7381,"_extension":37},"/en-us/blog/authors/tanuja-jayarama-raju",{"name":7374,"config":7375},"Tanuja Jayarama Raju",{"headshot":7376,"ctfId":7377},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662262/Blog/Author%20Headshots/tanuja_jayarama_raju_headshot.png","2Fssp8ttZw6Y78hzS15kMC",{"template":694},"content:en-us:blog:authors:tanuja-jayarama-raju.yml","en-us/blog/authors/tanuja-jayarama-raju.yml","en-us/blog/authors/tanuja-jayarama-raju",{"_path":7383,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7384,"config":7389,"_id":7390,"_type":32,"title":7385,"_source":34,"_file":7391,"_stem":7392,"_extension":37},"/en-us/blog/authors/taurie-davis",{"name":7385,"config":7386},"Taurie Davis",{"headshot":7387,"ctfId":7388},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667191/Blog/Author%20Headshots/tauriedavis-headshot.jpg","tauriedavis",{"template":694},"content:en-us:blog:authors:taurie-davis.yml","en-us/blog/authors/taurie-davis.yml","en-us/blog/authors/taurie-davis",{"_path":7394,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7395,"config":7400,"_id":7401,"_type":32,"title":7402,"_source":34,"_file":7403,"_stem":7404,"_extension":37},"/en-us/blog/authors/taylor-mccaslin",{"name":7396,"config":7397},"Taylor McCaslin",{"headshot":7398,"ctfId":7399},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667996/Blog/Author%20Headshots/tmccaslin-headshot.png","tmccaslin",{"template":694},"content:en-us:blog:authors:taylor-mccaslin.yml","Taylor Mccaslin","en-us/blog/authors/taylor-mccaslin.yml","en-us/blog/authors/taylor-mccaslin",{"_path":7406,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7407,"config":7411,"_id":7412,"_type":32,"title":7408,"_source":34,"_file":7413,"_stem":7414,"_extension":37},"/en-us/blog/authors/taylor-murphy",{"name":7408,"config":7409},"Taylor Murphy",{"headshot":7,"ctfId":7410},"tayloramurphy",{"template":694},"content:en-us:blog:authors:taylor-murphy.yml","en-us/blog/authors/taylor-murphy.yml","en-us/blog/authors/taylor-murphy",{"_path":7416,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7417,"config":7422,"_id":7423,"_type":32,"title":7418,"_source":34,"_file":7424,"_stem":7425,"_extension":37},"/en-us/blog/authors/ted-gieschen",{"name":7418,"config":7419},"Ted Gieschen",{"headshot":7420,"ctfId":7421},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669010/Blog/Author%20Headshots/Screenshot_2024-06-10_at_10.16.50_AM.png","7xh91XqI5wf8CKmOr0PurA",{"template":694},"content:en-us:blog:authors:ted-gieschen.yml","en-us/blog/authors/ted-gieschen.yml","en-us/blog/authors/ted-gieschen",{"_path":7427,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7428,"config":7432,"_id":7433,"_type":32,"title":7429,"_source":34,"_file":7434,"_stem":7435,"_extension":37},"/en-us/blog/authors/thao-yeager",{"name":7429,"config":7430},"Thao Yeager",{"headshot":7,"ctfId":7431},"thaoyeager",{"template":694},"content:en-us:blog:authors:thao-yeager.yml","en-us/blog/authors/thao-yeager.yml","en-us/blog/authors/thao-yeager",{"_path":7437,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7438,"config":7443,"_id":7444,"_type":32,"title":7445,"_source":34,"_file":7446,"_stem":7447,"_extension":37},"/en-us/blog/authors/thiago-figueir",{"name":7439,"config":7440},"Thiago Figueiró",{"headshot":7441,"ctfId":7442},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667091/Blog/Author%20Headshots/thiagocsf-headshot.jpg","thiagocsf",{"template":694},"content:en-us:blog:authors:thiago-figueir.yml","Thiago Figueir","en-us/blog/authors/thiago-figueir.yml","en-us/blog/authors/thiago-figueir",{"_path":7449,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7450,"config":7455,"_id":7456,"_type":32,"title":7451,"_source":34,"_file":7457,"_stem":7458,"_extension":37},"/en-us/blog/authors/thong-kuah",{"name":7451,"config":7452},"Thong Kuah",{"headshot":7453,"ctfId":7454},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667179/Blog/Author%20Headshots/tkuah-headshot.jpg","tkuah",{"template":694},"content:en-us:blog:authors:thong-kuah.yml","en-us/blog/authors/thong-kuah.yml","en-us/blog/authors/thong-kuah",{"_path":7460,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7461,"config":7465,"_id":7466,"_type":32,"title":7462,"_source":34,"_file":7467,"_stem":7468,"_extension":37},"/en-us/blog/authors/tim-davis",{"name":7462,"config":7463},"Tim Davis",{"headshot":725,"ctfId":7464},"6PksqjEtq1Y8goFUvAUcIn",{"template":694},"content:en-us:blog:authors:tim-davis.yml","en-us/blog/authors/tim-davis.yml","en-us/blog/authors/tim-davis",{"_path":7470,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7471,"config":7475,"_id":7476,"_type":32,"title":7472,"_source":34,"_file":7477,"_stem":7478,"_extension":37},"/en-us/blog/authors/tim-lehnen",{"name":7472,"config":7473},"Tim Lehnen",{"headshot":7,"ctfId":7474},"hestenet",{"template":694},"content:en-us:blog:authors:tim-lehnen.yml","en-us/blog/authors/tim-lehnen.yml","en-us/blog/authors/tim-lehnen",{"_path":7480,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7481,"config":7486,"_id":7487,"_type":32,"title":7482,"_source":34,"_file":7488,"_stem":7489,"_extension":37},"/en-us/blog/authors/tim-rizzi",{"name":7482,"config":7483},"Tim Rizzi",{"headshot":7484,"ctfId":7485},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661866/Blog/Author%20Headshots/trizzi-headshot.jpg","trizzi",{"template":694},"content:en-us:blog:authors:tim-rizzi.yml","en-us/blog/authors/tim-rizzi.yml","en-us/blog/authors/tim-rizzi",{"_path":7491,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7492,"config":7496,"_id":7498,"_type":32,"title":7493,"_source":34,"_file":7499,"_stem":7500,"_extension":37},"/en-us/blog/authors/tim-zallmann",{"name":7493,"config":7494},"Tim Zallmann",{"headshot":7495},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1759175957/ddfyzux6oosrseryb4pg.png",{"template":694,"gitlabHandle":7497},"timzallmann","content:en-us:blog:authors:tim-zallmann.yml","en-us/blog/authors/tim-zallmann.yml","en-us/blog/authors/tim-zallmann",{"_path":7502,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7503,"config":7507,"_id":7508,"_type":32,"title":7504,"_source":34,"_file":7509,"_stem":7510,"_extension":37},"/en-us/blog/authors/tina-sturgis",{"name":7504,"config":7505},"Tina Sturgis",{"headshot":7,"ctfId":7506},"TinaS",{"template":694},"content:en-us:blog:authors:tina-sturgis.yml","en-us/blog/authors/tina-sturgis.yml","en-us/blog/authors/tina-sturgis",{"_path":7512,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7513,"config":7517,"_id":7518,"_type":32,"title":7519,"_source":34,"_file":7520,"_stem":7521,"_extension":37},"/en-us/blog/authors/tobias-gnther",{"name":7514,"config":7515},"Tobias Günther",{"headshot":725,"ctfId":7516},"Tobias-Gnther",{"template":694},"content:en-us:blog:authors:tobias-gnther.yml","Tobias Gnther","en-us/blog/authors/tobias-gnther.yml","en-us/blog/authors/tobias-gnther",{"_path":7523,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7524,"config":7528,"_id":7529,"_type":32,"title":7525,"_source":34,"_file":7530,"_stem":7531,"_extension":37},"/en-us/blog/authors/todd-barr",{"name":7525,"config":7526},"Todd Barr",{"headshot":7,"ctfId":7527},"twbarr",{"template":694},"content:en-us:blog:authors:todd-barr.yml","en-us/blog/authors/todd-barr.yml","en-us/blog/authors/todd-barr",{"_path":7533,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7534,"config":7538,"_id":7539,"_type":32,"title":7535,"_source":34,"_file":7540,"_stem":7541,"_extension":37},"/en-us/blog/authors/tom-cooney",{"name":7535,"config":7536},"Tom Cooney",{"headshot":7,"ctfId":7537},"tomcooney",{"template":694},"content:en-us:blog:authors:tom-cooney.yml","en-us/blog/authors/tom-cooney.yml","en-us/blog/authors/tom-cooney",{"_path":7543,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7544,"config":7549,"_id":7550,"_type":32,"title":7545,"_source":34,"_file":7551,"_stem":7552,"_extension":37},"/en-us/blog/authors/tomas-vik",{"name":7545,"config":7546},"Tomas Vik",{"headshot":7547,"ctfId":7548},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681785/Blog/Author%20Headshots/viktomas-headshot.jpg","viktomas",{"template":694},"content:en-us:blog:authors:tomas-vik.yml","en-us/blog/authors/tomas-vik.yml","en-us/blog/authors/tomas-vik",{"_path":7554,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7555,"config":7560,"_id":7561,"_type":32,"title":7556,"_source":34,"_file":7562,"_stem":7563,"_extension":37},"/en-us/blog/authors/tomasz-maczukin",{"name":7556,"config":7557},"Tomasz Maczukin",{"headshot":7558,"ctfId":7559},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682116/Blog/Author%20Headshots/tmaczukin-headshot.jpg","tmaczukin",{"template":694},"content:en-us:blog:authors:tomasz-maczukin.yml","en-us/blog/authors/tomasz-maczukin.yml","en-us/blog/authors/tomasz-maczukin",{"_path":7565,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7566,"config":7571,"_id":7572,"_type":32,"title":7567,"_source":34,"_file":7573,"_stem":7574,"_extension":37},"/en-us/blog/authors/toon-claes",{"name":7567,"config":7568},"Toon Claes",{"headshot":7569,"ctfId":7570},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663082/Blog/Author%20Headshots/toon_claes_headshot.png","toon",{"template":694},"content:en-us:blog:authors:toon-claes.yml","en-us/blog/authors/toon-claes.yml","en-us/blog/authors/toon-claes",{"_path":7576,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7577,"config":7582,"_id":7583,"_type":32,"title":7578,"_source":34,"_file":7584,"_stem":7585,"_extension":37},"/en-us/blog/authors/torsten-linz",{"name":7578,"config":7579},"Torsten Linz",{"headshot":7580,"ctfId":7581},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658907/Blog/Author%20Headshots/tlinz-headshot.jpg","tlinz",{"template":694},"content:en-us:blog:authors:torsten-linz.yml","en-us/blog/authors/torsten-linz.yml","en-us/blog/authors/torsten-linz",{"_path":7587,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7588,"config":7592,"_id":7593,"_type":32,"title":7589,"_source":34,"_file":7594,"_stem":7595,"_extension":37},"/en-us/blog/authors/trevor-knudsen",{"name":7589,"config":7590},"Trevor Knudsen",{"headshot":7,"ctfId":7591},"Tknudsen",{"template":694},"content:en-us:blog:authors:trevor-knudsen.yml","en-us/blog/authors/trevor-knudsen.yml","en-us/blog/authors/trevor-knudsen",{"_path":7597,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7598,"config":7603,"_id":7604,"_type":32,"title":7599,"_source":34,"_file":7605,"_stem":7606,"_extension":37},"/en-us/blog/authors/tristan-read",{"name":7599,"config":7600},"Tristan Read",{"headshot":7601,"ctfId":7602},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679131/Blog/Author%20Headshots/tristan.png","tristanread",{"template":694},"content:en-us:blog:authors:tristan-read.yml","en-us/blog/authors/tristan-read.yml","en-us/blog/authors/tristan-read",{"_path":7608,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7609,"config":7614,"_id":7615,"_type":32,"title":7610,"_source":34,"_file":7616,"_stem":7617,"_extension":37},"/en-us/blog/authors/tsukasa-komatsubara",{"name":7610,"config":7611},"Tsukasa Komatsubara",{"headshot":7612,"ctfId":7613},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659784/Blog/Author%20Headshots/gitlab_tsukasa.jpg","31YQLiBRrJPn35BBhY69ly",{"template":694},"content:en-us:blog:authors:tsukasa-komatsubara.yml","en-us/blog/authors/tsukasa-komatsubara.yml","en-us/blog/authors/tsukasa-komatsubara",{"_path":7619,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7620,"config":7624,"_id":7625,"_type":32,"title":7621,"_source":34,"_file":7626,"_stem":7627,"_extension":37},"/en-us/blog/authors/tsvi-zandany",{"name":7621,"config":7622},"Tsvi Zandany",{"headshot":725,"ctfId":7623},"Tsvi-Zandany",{"template":694},"content:en-us:blog:authors:tsvi-zandany.yml","en-us/blog/authors/tsvi-zandany.yml","en-us/blog/authors/tsvi-zandany",{"_path":7629,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7630,"config":7634,"_id":7635,"_type":32,"title":7631,"_source":34,"_file":7636,"_stem":7637,"_extension":37},"/en-us/blog/authors/tye-davis",{"name":7631,"config":7632},"Tye Davis",{"headshot":7,"ctfId":7633},"davistye",{"template":694},"content:en-us:blog:authors:tye-davis.yml","en-us/blog/authors/tye-davis.yml","en-us/blog/authors/tye-davis",{"_path":7639,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7640,"config":7644,"_id":7645,"_type":32,"title":7641,"_source":34,"_file":7646,"_stem":7647,"_extension":37},"/en-us/blog/authors/tyler-williams",{"name":7641,"config":7642},"Tyler Williams",{"headshot":7,"ctfId":7643},"tywilliams",{"template":694},"content:en-us:blog:authors:tyler-williams.yml","en-us/blog/authors/tyler-williams.yml","en-us/blog/authors/tyler-williams",{"_path":7649,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7650,"config":7654,"_id":7655,"_type":32,"title":7656,"_source":34,"_file":7657,"_stem":7658,"_extension":37},"/en-us/blog/authors/ulrica-de-fort-menares",{"name":7651,"config":7652},"Ulrica de Fort-Menares",{"headshot":7,"ctfId":7653},"ulrica1",{"template":694},"content:en-us:blog:authors:ulrica-de-fort-menares.yml","Ulrica De Fort Menares","en-us/blog/authors/ulrica-de-fort-menares.yml","en-us/blog/authors/ulrica-de-fort-menares",{"_path":7660,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7661,"config":7666,"_id":7667,"_type":32,"title":7662,"_source":34,"_file":7668,"_stem":7669,"_extension":37},"/en-us/blog/authors/valentine-mairet",{"name":7662,"config":7663},"Valentine Mairet",{"headshot":7664,"ctfId":7665},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665455/Blog/Author%20Headshots/valentine_mairet_headshot.png","1AQjHTpq6sBauRMdCibxQX",{"template":694},"content:en-us:blog:authors:valentine-mairet.yml","en-us/blog/authors/valentine-mairet.yml","en-us/blog/authors/valentine-mairet",{"_path":7671,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7672,"config":7676,"_id":7677,"_type":32,"title":7673,"_source":34,"_file":7678,"_stem":7679,"_extension":37},"/en-us/blog/authors/valerie-silverthorne",{"name":7673,"config":7674},"Valerie Silverthorne",{"headshot":725,"ctfId":7675},"vsilverthorne",{"template":694},"content:en-us:blog:authors:valerie-silverthorne.yml","en-us/blog/authors/valerie-silverthorne.yml","en-us/blog/authors/valerie-silverthorne",{"_path":7681,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7682,"config":7686,"_id":7687,"_type":32,"title":7683,"_source":34,"_file":7688,"_stem":7689,"_extension":37},"/en-us/blog/authors/vanessa-wegner",{"name":7683,"config":7684},"Vanessa Wegner",{"headshot":7,"ctfId":7685},"vwegner",{"template":694},"content:en-us:blog:authors:vanessa-wegner.yml","en-us/blog/authors/vanessa-wegner.yml","en-us/blog/authors/vanessa-wegner",{"_path":7691,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7692,"config":7697,"_id":7698,"_type":32,"title":7693,"_source":34,"_file":7699,"_stem":7700,"_extension":37},"/en-us/blog/authors/veethika-mishra",{"name":7693,"config":7694},"Veethika Mishra",{"headshot":7695,"ctfId":7696},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664676/Blog/Author%20Headshots/veethika-headshot.jpg","veethika",{"template":694},"content:en-us:blog:authors:veethika-mishra.yml","en-us/blog/authors/veethika-mishra.yml","en-us/blog/authors/veethika-mishra",{"_path":7702,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7703,"config":7708,"_id":7709,"_type":32,"title":7704,"_source":34,"_file":7710,"_stem":7711,"_extension":37},"/en-us/blog/authors/vick-kelkar",{"name":7704,"config":7705},"Vick Kelkar",{"headshot":7706,"ctfId":7707},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668508/Blog/Author%20Headshots/vkelkar-headshot.jpg","vkelkar",{"template":694},"content:en-us:blog:authors:vick-kelkar.yml","en-us/blog/authors/vick-kelkar.yml","en-us/blog/authors/vick-kelkar",{"_path":7713,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7714,"config":7718,"_id":7719,"_type":32,"title":7715,"_source":34,"_file":7720,"_stem":7721,"_extension":37},"/en-us/blog/authors/vicky-steeves",{"name":7715,"config":7716},"Vicky Steeves",{"headshot":7,"ctfId":7717},"vickysteeves",{"template":694},"content:en-us:blog:authors:vicky-steeves.yml","en-us/blog/authors/vicky-steeves.yml","en-us/blog/authors/vicky-steeves",{"_path":7723,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7724,"config":7728,"_id":7729,"_type":32,"title":7725,"_source":34,"_file":7730,"_stem":7731,"_extension":37},"/en-us/blog/authors/victor-hernandez",{"name":7725,"config":7726},"Victor Hernandez",{"headshot":725,"ctfId":7727},"KVTkvySIqkAu34p2jsXZz",{"template":694},"content:en-us:blog:authors:victor-hernandez.yml","en-us/blog/authors/victor-hernandez.yml","en-us/blog/authors/victor-hernandez",{"_path":7733,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7734,"config":7738,"_id":7739,"_type":32,"title":7735,"_source":34,"_file":7740,"_stem":7741,"_extension":37},"/en-us/blog/authors/victor-wu",{"name":7735,"config":7736},"Victor Wu",{"headshot":725,"ctfId":7737},"victorwu",{"template":694},"content:en-us:blog:authors:victor-wu.yml","en-us/blog/authors/victor-wu.yml","en-us/blog/authors/victor-wu",{"_path":7743,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7744,"config":7749,"_id":7750,"_type":32,"title":7745,"_source":34,"_file":7751,"_stem":7752,"_extension":37},"/en-us/blog/authors/viktor-nagy",{"name":7745,"config":7746},"Viktor Nagy",{"headshot":7747,"ctfId":7748},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662918/Blog/Author%20Headshots/nagy-headshot.jpg","nagyvgitlab",{"template":694},"content:en-us:blog:authors:viktor-nagy.yml","en-us/blog/authors/viktor-nagy.yml","en-us/blog/authors/viktor-nagy",{"_path":7754,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7755,"config":7759,"_id":7760,"_type":32,"title":7756,"_source":34,"_file":7761,"_stem":7762,"_extension":37},"/en-us/blog/authors/vincent-jong",{"name":7756,"config":7757},"Vincent Jong",{"headshot":725,"ctfId":7758},"Vincent-Jong",{"template":694},"content:en-us:blog:authors:vincent-jong.yml","en-us/blog/authors/vincent-jong.yml","en-us/blog/authors/vincent-jong",{"_path":7764,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7765,"config":7770,"_id":7771,"_type":32,"title":7766,"_source":34,"_file":7772,"_stem":7773,"_extension":37},"/en-us/blog/authors/vincy-wilson",{"name":7766,"config":7767},"Vincy Wilson",{"headshot":7768,"ctfId":7769},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669069/Blog/Author%20Headshots/vincy.jpg","1iyKndVlbE3dQnxOJoSY0q",{"template":694},"content:en-us:blog:authors:vincy-wilson.yml","en-us/blog/authors/vincy-wilson.yml","en-us/blog/authors/vincy-wilson",{"_path":7775,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7776,"config":7781,"_id":7782,"_type":32,"title":7777,"_source":34,"_file":7783,"_stem":7784,"_extension":37},"/en-us/blog/authors/vishal-tak",{"name":7777,"config":7778},"Vishal Tak",{"headshot":7779,"ctfId":7780},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663854/Blog/Author%20Headshots/vishal_tak_headshot.png","6BalO1YQUIuDdhUP80bFra",{"template":694},"content:en-us:blog:authors:vishal-tak.yml","en-us/blog/authors/vishal-tak.yml","en-us/blog/authors/vishal-tak",{"_path":7786,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7787,"config":7792,"_id":7793,"_type":32,"title":7788,"_source":34,"_file":7794,"_stem":7795,"_extension":37},"/en-us/blog/authors/vitor-meireles-de-sousa",{"name":7788,"config":7789},"Vitor Meireles De Sousa",{"headshot":7790,"ctfId":7791},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682001/Blog/Author%20Headshots/vdesousa-headshot.png","vdesousa",{"template":694},"content:en-us:blog:authors:vitor-meireles-de-sousa.yml","en-us/blog/authors/vitor-meireles-de-sousa.yml","en-us/blog/authors/vitor-meireles-de-sousa",{"_path":7797,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7798,"config":7802,"_id":7803,"_type":32,"title":7799,"_source":34,"_file":7804,"_stem":7805,"_extension":37},"/en-us/blog/authors/vlad-budica",{"name":7799,"config":7800},"Vlad Budica",{"headshot":725,"ctfId":7801},"Vlad-Budica",{"template":694},"content:en-us:blog:authors:vlad-budica.yml","en-us/blog/authors/vlad-budica.yml","en-us/blog/authors/vlad-budica",{"_path":7807,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7808,"config":7812,"_id":7813,"_type":32,"title":7809,"_source":34,"_file":7814,"_stem":7815,"_extension":37},"/en-us/blog/authors/vlad-stoianovici",{"name":7809,"config":7810},"Vlad Stoianovici",{"headshot":7,"ctfId":7811},"vstoianovici",{"template":694},"content:en-us:blog:authors:vlad-stoianovici.yml","en-us/blog/authors/vlad-stoianovici.yml","en-us/blog/authors/vlad-stoianovici",{"_path":7817,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7818,"config":7822,"_id":7823,"_type":32,"title":7819,"_source":34,"_file":7824,"_stem":7825,"_extension":37},"/en-us/blog/authors/wayne-haber",{"name":7819,"config":7820},"Wayne Haber",{"headshot":7,"ctfId":7821},"whaber",{"template":694},"content:en-us:blog:authors:wayne-haber.yml","en-us/blog/authors/wayne-haber.yml","en-us/blog/authors/wayne-haber",{"_path":7827,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7828,"config":7832,"_id":7833,"_type":32,"title":7829,"_source":34,"_file":7834,"_stem":7835,"_extension":37},"/en-us/blog/authors/will-chandler",{"name":7829,"config":7830},"Will Chandler",{"headshot":725,"ctfId":7831},"DKiIGSSRIyO6QdTQkRkjs",{"template":694},"content:en-us:blog:authors:will-chandler.yml","en-us/blog/authors/will-chandler.yml","en-us/blog/authors/will-chandler",{"_path":7837,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7838,"config":7843,"_id":7844,"_type":32,"title":7839,"_source":34,"_file":7845,"_stem":7846,"_extension":37},"/en-us/blog/authors/will-leidheiser",{"name":7839,"config":7840},"Will Leidheiser",{"headshot":7841,"ctfId":7842},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679335/Blog/Author%20Headshots/wleidheiser-headshot.jpg","wleidheiser",{"template":694},"content:en-us:blog:authors:will-leidheiser.yml","en-us/blog/authors/will-leidheiser.yml","en-us/blog/authors/will-leidheiser",{"_path":7848,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7849,"config":7854,"_id":7855,"_type":32,"title":7850,"_source":34,"_file":7856,"_stem":7857,"_extension":37},"/en-us/blog/authors/william-arias",{"name":7850,"config":7851},"William Arias",{"headshot":7852,"ctfId":7853},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667549/Blog/Author%20Headshots/warias-headshot.jpg","warias",{"template":694},"content:en-us:blog:authors:william-arias.yml","en-us/blog/authors/william-arias.yml","en-us/blog/authors/william-arias",{"_path":7859,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7860,"config":7864,"_id":7865,"_type":32,"title":7861,"_source":34,"_file":7866,"_stem":7867,"_extension":37},"/en-us/blog/authors/william-chia",{"name":7861,"config":7862},"William Chia",{"headshot":7,"ctfId":7863},"williamchia",{"template":694},"content:en-us:blog:authors:william-chia.yml","en-us/blog/authors/william-chia.yml","en-us/blog/authors/william-chia",{"_path":7869,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7870,"config":7874,"_id":7875,"_type":32,"title":7871,"_source":34,"_file":7876,"_stem":7877,"_extension":37},"/en-us/blog/authors/yannis-roussos",{"name":7871,"config":7872},"Yannis Roussos",{"headshot":7,"ctfId":7873},"iroussos",{"template":694},"content:en-us:blog:authors:yannis-roussos.yml","en-us/blog/authors/yannis-roussos.yml","en-us/blog/authors/yannis-roussos",{"_path":7879,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7880,"config":7884,"_id":7885,"_type":32,"title":7881,"_source":34,"_file":7886,"_stem":7887,"_extension":37},"/en-us/blog/authors/yevgeny-pats",{"name":7881,"config":7882},"Yevgeny Pats",{"headshot":7,"ctfId":7883},"ypats",{"template":694},"content:en-us:blog:authors:yevgeny-pats.yml","en-us/blog/authors/yevgeny-pats.yml","en-us/blog/authors/yevgeny-pats",{"_path":7889,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7890,"config":7894,"_id":7895,"_type":32,"title":7891,"_source":34,"_file":7896,"_stem":7897,"_extension":37},"/en-us/blog/authors/yorick-peterse",{"name":7891,"config":7892},"Yorick Peterse",{"headshot":725,"ctfId":7893},"Yorick-Peterse",{"template":694},"content:en-us:blog:authors:yorick-peterse.yml","en-us/blog/authors/yorick-peterse.yml","en-us/blog/authors/yorick-peterse",{"_path":7899,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7900,"config":7904,"_id":7905,"_type":32,"title":7906,"_source":34,"_file":7907,"_stem":7908,"_extension":37},"/en-us/blog/authors/zeger-jan-van-de-weg",{"name":7901,"config":7902},"Zeger-Jan van de Weg",{"headshot":7,"ctfId":7903},"zjgitlab",{"template":694},"content:en-us:blog:authors:zeger-jan-van-de-weg.yml","Zeger Jan Van De Weg","en-us/blog/authors/zeger-jan-van-de-weg.yml","en-us/blog/authors/zeger-jan-van-de-weg",{"_path":7910,"_dir":687,"_draft":6,"_partial":6,"_locale":7,"content":7911,"config":7916,"_id":7917,"_type":32,"title":7912,"_source":34,"_file":7918,"_stem":7919,"_extension":37},"/en-us/blog/authors/zhaochen-li",{"name":7912,"config":7913},"Zhaochen Li",{"headshot":7914,"ctfId":7915},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664331/Blog/Author%20Headshots/Zhaochen_Li_headshot.png","D67XqgLJdlpOsrG3ivCGT",{"template":694},"content:en-us:blog:authors:zhaochen-li.yml","en-us/blog/authors/zhaochen-li.yml","en-us/blog/authors/zhaochen-li",{"_path":7921,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"header":7922,"eyebrow":7923,"blurb":7924,"button":7925,"secondaryButton":7929,"_id":7931,"_type":32,"title":7932,"_source":34,"_file":7933,"_stem":7934,"_extension":37},"/shared/de-de/next-steps","Stelle jetzt bessere Software schneller bereit","Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab","Erlebe, was dein Team mit der intelligenten\n\n\nDevSecOps-Plattform erreichen kann.\n",{"text":48,"config":7926},{"href":7927,"dataGaName":51,"dataGaLocation":7928},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":53,"config":7930},{"href":55,"dataGaName":56,"dataGaLocation":7928},"content:shared:de-de:next-steps.yml","Next Steps","shared/de-de/next-steps.yml","shared/de-de/next-steps",1761852371744]