{"id":10589,"date":"2024-09-24T10:30:19","date_gmt":"2024-09-24T08:30:19","guid":{"rendered":"https:\/\/wata.es\/?p=10589"},"modified":"2026-02-03T15:19:42","modified_gmt":"2026-02-03T14:19:42","slug":"wie-man-geheimnisse-in-bitbucket-handhabt","status":"publish","type":"post","link":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/","title":{"rendered":"Wie man Geheimnisse in Bitbucket handhabt"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Sensible Daten wie Passw\u00f6rter, API-Tokens und DB-Zugangsdaten sind f\u00fcr die Projektentwicklung und das Testen unerl\u00e4sslich, sollten aber niemals im Klartext im Repository gespeichert werden. In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Um eine dieser L\u00f6sungen zu nutzen, ben\u00f6tigst du lediglich Schreibrechte. F\u00fcr die Einrichtung von Variablen jeglicher Art sind jedoch Admin-Rechte erforderlich. Wenn du mehr technische Informationen ben\u00f6tigst, kannst du <a href=\"https:\/\/support.atlassian.com\/bitbucket-cloud\/docs\/variables-and-secrets\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">diesen Artikel<\/a> lesen.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cypress ist eine der Referenzen von WATA Factory f\u00fcr automatisierte Test-Frameworks, daher werden wir ein Cypress-Projekt als Beispiel verwenden, obwohl dieser Ansatz in jedem Projekt mit einer anderen Technologie verwendet werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In diesem Projekt haben wir einen Verweis auf die Datei credentials.ts in der cypress.config.ts. Wenn wir unsere automatisierten Tests in der Pipeline ausf\u00fchren wollen, m\u00fcssen wir die Datei credentials.ts im Repo haben, sonst schl\u00e4gt die Pipeline fehl. Wir wissen bereits, dass dies keine gute Praxis ist, also wie k\u00f6nnen wir das beheben?  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eingabe der Szene-Repository-Variablen. Mit dieser nativen Bitbucket-Funktion k\u00f6nnen wir definierte Variablen in unseren Pipelines referenzieren und sie nach Belieben verwenden. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unsere L\u00f6sung besteht aus diesen zwei einfachen Schritten:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Erstellen der Variablen in Bitbucket<\/li>\n\n\n\n<li>Erstellen der tempor\u00e4ren credentials.ts Datei<\/li>\n\n\n\n<li>Kopieren des Inhaltes der Variable in unsere tempor\u00e4re Datei<\/li>\n\n\n\n<li>FERTIG! Unser Projekt hat bereits die ben\u00f6tigte Datei mit all unseren Geheimnissen! <\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Repository-Variablen<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nehmen wir an, unsere Datei credential.ts hat die folgende Struktur:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export const USERS = {\n    admin: {\n      username: 'admin',\n      password: 'adminPassword',\n    },\n    regularuser: {\n      username: 'justAnUser',\n      password: 'regularPassword',\n    },\n  };\n   \nexport const DB_CREDENTIALS = {\n    host: 'your-server.com',\n    user: 'dbUser',\n    password: 'anotherPassword',\n    database: 'my_sample_db',\n    port: 1234,\n  };\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und unsere Datei cypress.config.ts muss sie importieren, um diese Anmeldedaten zu verwenden:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { DB_CREDENTIALS } from '.\/cypress\/properties\/credentials';\n\n\/\/my DB connection\nconst connections: Record&lt;string, any&gt; = {\n  atDashboard: {\n    host: DB_CREDENTIALS.host,\n    user: DB_CREDENTIALS.user,\n    password: DB_CREDENTIALS.password,\n    database: DB_CREDENTIALS.database,\n    port: DB_CREDENTIALS.port,\n  }\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Variablen k\u00f6nnen eine ganze json-Datei sein, wenn wir wollen, also kopieren wir den Inhalt unserer credentials.ts-Datei und gehen zu &#8218;Repository settings &gt; Repository variables&#8216; in unserem Repo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-resized\"><div class=\"wpcp-wp-lightbox-host wpcp-advanced-image-lightbox-icon-hover\"><a class=\"wpcp-wp-lightbox-image-link\" href=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-1.png\" data-wpcp-wp-lb-image=\"1\"><img loading=\"lazy\" decoding=\"async\" width=\"193\" height=\"432\" src=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-1.png\" alt=\"Bitbucket-Repository-Navigationsmen\u00fc mit Optionen wie Quellcode, Commits, Branches und Pull-Requests\" class=\"wp-image-10499\" style=\"width:162px;height:auto\" srcset=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-1.png 193w, https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-1-134x300.png 134w\" sizes=\"auto, (max-width: 193px) 100vw, 193px\" \/><\/a><a href=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-1.png\" data-fancybox=\"wpcp-wp-img-10500\" class=\"wpcp-lightbox-trigger wpcp-advanced-image-lightbox-icon wpcp-position-top-right wpcp-advanced-image-lightbox-icon-hover wpcp-global-lightbox-icon wpcp-lightbox-icon--global wpcp-lb-icon-style-default\" data-wpcp-lb-icon-source=\"global\" aria-label=\"Open image in lightbox\" data-thumb-src=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-1-134x300.png\" data-wpcp-lb-single=\"1\"><span class=\"wpcp-icon-container\"><svg viewBox=\"0 0 20 20\"><path d=\"M17.6585 16.025L14.2437 12.6198C15.1716 11.3338 15.6121 9.7613 15.4871 8.1819C15.362 6.60251 14.6795 5.11847 13.5607 3.99351C12.936 3.36206 12.1916 2.86066 11.3709 2.51845C10.5502 2.17623 9.66952 2 8.77995 2C7.89039 2 7.00969 2.17623 6.18899 2.51845C5.36829 2.86066 4.62395 3.36206 3.99919 3.99351C3.36594 4.61649 2.86312 5.35871 2.51992 6.17708C2.17673 6.99545 2 7.87365 2 8.76068C2 9.64772 2.17673 10.5259 2.51992 11.3443C2.86312 12.1627 3.36594 12.9049 3.99919 13.5279C5.11957 14.6901 6.62279 15.4103 8.23285 15.5562C9.84291 15.7022 11.4517 15.2641 12.7639 14.3224L16.1788 17.7275C16.3849 17.9034 16.6473 18 16.9186 18C17.1899 18 17.4523 17.9034 17.6585 17.7275C18.1138 17.16 18.1138 16.5925 17.6585 16.025ZM5.59278 12.0523C5.16258 11.6298 4.82094 11.1263 4.58774 10.5709C4.35455 10.0156 4.23446 9.41951 4.23446 8.81744C4.23446 8.21536 4.35455 7.6193 4.58774 7.06394C4.82094 6.50859 5.16258 6.00503 5.59278 5.58257C6.01644 5.15359 6.52144 4.81292 7.07838 4.58039C7.63532 4.34786 8.23308 4.22811 8.83687 4.22811C9.44066 4.22811 10.0384 4.34786 10.5954 4.58039C11.1523 4.81292 11.6573 5.15359 12.081 5.58257C12.5112 6.00503 12.8528 6.50859 13.086 7.06394C13.3192 7.6193 13.4393 8.21536 13.4393 8.81744C13.4393 9.41951 13.3192 10.0156 13.086 10.5709C12.8528 11.1263 12.5112 11.6298 12.081 12.0523C11.6573 12.4813 11.1523 12.822 10.5954 13.0545C10.0384 13.287 9.44066 13.4068 8.83687 13.4068C8.23308 13.4068 7.63532 13.287 7.07838 13.0545C6.52144 12.822 6.01644 12.4813 5.59278 12.0523Z\" \/><\/svg><\/span><\/a><\/div><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-full is-resized\"><div class=\"wpcp-wp-lightbox-host wpcp-advanced-image-lightbox-icon-hover\"><a class=\"wpcp-wp-lightbox-image-link\" href=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-2.png\" data-wpcp-wp-lb-image=\"1\"><img loading=\"lazy\" decoding=\"async\" width=\"468\" height=\"321\" src=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-2.png\" alt=\"Seite zur Konfiguration von Repository-Variablen mit zwei Variablen und ihren Werten\" class=\"wp-image-10502\" style=\"width:535px;height:auto\" srcset=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-2.png 468w, https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-2-300x206.png 300w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/a><a href=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-2.png\" data-fancybox=\"wpcp-wp-img-10503\" class=\"wpcp-lightbox-trigger wpcp-advanced-image-lightbox-icon wpcp-position-top-right wpcp-advanced-image-lightbox-icon-hover wpcp-global-lightbox-icon wpcp-lightbox-icon--global wpcp-lb-icon-style-default\" data-wpcp-lb-icon-source=\"global\" aria-label=\"Open image in lightbox\" data-thumb-src=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-2-300x206.png\" data-wpcp-lb-single=\"1\"><span class=\"wpcp-icon-container\"><svg viewBox=\"0 0 20 20\"><path d=\"M17.6585 16.025L14.2437 12.6198C15.1716 11.3338 15.6121 9.7613 15.4871 8.1819C15.362 6.60251 14.6795 5.11847 13.5607 3.99351C12.936 3.36206 12.1916 2.86066 11.3709 2.51845C10.5502 2.17623 9.66952 2 8.77995 2C7.89039 2 7.00969 2.17623 6.18899 2.51845C5.36829 2.86066 4.62395 3.36206 3.99919 3.99351C3.36594 4.61649 2.86312 5.35871 2.51992 6.17708C2.17673 6.99545 2 7.87365 2 8.76068C2 9.64772 2.17673 10.5259 2.51992 11.3443C2.86312 12.1627 3.36594 12.9049 3.99919 13.5279C5.11957 14.6901 6.62279 15.4103 8.23285 15.5562C9.84291 15.7022 11.4517 15.2641 12.7639 14.3224L16.1788 17.7275C16.3849 17.9034 16.6473 18 16.9186 18C17.1899 18 17.4523 17.9034 17.6585 17.7275C18.1138 17.16 18.1138 16.5925 17.6585 16.025ZM5.59278 12.0523C5.16258 11.6298 4.82094 11.1263 4.58774 10.5709C4.35455 10.0156 4.23446 9.41951 4.23446 8.81744C4.23446 8.21536 4.35455 7.6193 4.58774 7.06394C4.82094 6.50859 5.16258 6.00503 5.59278 5.58257C6.01644 5.15359 6.52144 4.81292 7.07838 4.58039C7.63532 4.34786 8.23308 4.22811 8.83687 4.22811C9.44066 4.22811 10.0384 4.34786 10.5954 4.58039C11.1523 4.81292 11.6573 5.15359 12.081 5.58257C12.5112 6.00503 12.8528 6.50859 13.086 7.06394C13.3192 7.6193 13.4393 8.21536 13.4393 8.81744C13.4393 9.41951 13.3192 10.0156 13.086 10.5709C12.8528 11.1263 12.5112 11.6298 12.081 12.0523C11.6573 12.4813 11.1523 12.822 10.5954 13.0545C10.0384 13.287 9.44066 13.4068 8.83687 13.4068C8.23308 13.4068 7.63532 13.287 7.07838 13.0545C6.52144 12.822 6.01644 12.4813 5.59278 12.0523Z\" \/><\/svg><\/span><\/a><\/div><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hier m\u00fcssen wir nur einen Namen f\u00fcr unsere Variable eingeben, den Inhalt unserer Datei einf\u00fcgen und auf Hinzuf\u00fcgen klicken. Wenn du m\u00f6chtest, dass diese Anmeldeinformationen verschl\u00fcsselt und in den Build-Protokollen verborgen werden, kannst du die Option \u201eSicher\u201c aktivieren, aber Achtung: du kannst dann den Inhalt nicht mehr sehen und die Variable nicht mehr bearbeiten, sondern nur einen neuen Wert eingeben oder sie l\u00f6schen. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobald wir die Variable eingerichtet haben, m\u00fcssen wir nur noch \u201e$\u201c verwenden, um unsere Variable aufzurufen und die Echo-Ausgabe mit dem Befehl \u201e&gt;\u201c innerhalb unserer Pipeline umzuleiten. Im Stammverzeichnis Ihres Projekts musst du eine bitbucket-pipeline.yml haben: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>image: cypress\/base:20.11.0\n\ndefinitions:\n  steps:\n    - step: &amp;install-and-check\n        name: Installation and Static Analysis\n        caches:\n          - node\n        script:\n          - npm install\n        artifacts:\n          - node_modules\/**\n    - step: &amp;test\n        name: Run tests with coverage\n        caches:\n          - node\n        script:\n          - npm run test -- --coverage\n          - node_modules\/.bin\/cypress install --force\n          - echo $OUR_CREDENTIALS &gt; .\/cypress\/properties\/credentials.ts\n          - node_modules\/.bin\/cypress run --component --env coverage=true\n          - node_modules\/.bin\/cypress run --env PLUGIN_ENABLED=false\n          ...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mit diesem Befehl erstellen wir eine tempor\u00e4re Datei mit dem Inhalt unserer Variablen. Auf diese Weise ist die Anmeldedatei nach der Ausf\u00fchrung der Pipeline verschwunden <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo $VARIABLE &gt; .\/your\/path\/filename.ts<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Variablen f\u00fcr den Einsatz:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Um die Bed\u00fcrfnisse unserer Kunden zu erf\u00fcllen und ausgezeichnete Qualit\u00e4t zu liefern, ben\u00f6tigen wir bei WATA Factory verschiedene Umgebungen, von der Entwicklungsphase bis zur Produktion, ohne dabei die dringend ben\u00f6tigte Testumgebung zu vergessen. Verschiedene Umgebungen erfordern verschiedene Anmeldeinformationen oder andere Arten von Flags. Um dieses Problem zu l\u00f6sen, bietet Bitbuckets Bereitstellungsvariablen.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Variablen funktionieren auf die gleiche Weise wie Repository-Variablen, aber du musst in der Pipeline angeben, auf welche Umgebung sie sich beziehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Erstelle einfach die Variable f\u00fcr die Bereitstellung:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Gehe zu &#8218;Repository-Einstellungen &gt; Eins\u00e4tze&#8216;.<\/li>\n\n\n\n<li>Erstelle eine neue Umgebung in dem gew\u00fcnschten Bereich (Test, Staging oder Produktion).<\/li>\n\n\n\n<li>F\u00fcge eine neue Variable auf die gleiche Weise wie bei den Repository-Variablen hinzu <\/li>\n\n\n\n<li>Gib in deiner Step-Pipeline an, auf welche Umgebung sie sich beziehen:<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>image: cypress\/base:20.11.0\n\ndefinitions:\n  steps:\n    - step: &amp;install-and-check\n        name: Installation and Static Analysis\n        caches:\n          - node\n        script:\n          - npm install\n        artifacts:\n          - node_modules\/**\n    - step: &amp;test\n        name: Run tests with coverage\n        caches:\n          - node\n        script:\n          - npm run test -- --coverage\n          - node_modules\/.bin\/cypress install --force\n          - echo $CREDENTIALS &gt; .\/cypress\/properties\/credentials.ts\n          - node_modules\/.bin\/cypress run --component --env coverage=true\n          - node_modules\/.bin\/cypress run --env PLUGIN_ENABLED=false\n        artifacts:\n          - coverage\/**\n          - coverage-component\/**\n          - cypress-image-diff-html-report\/**\n          - cypress-image-diff-screenshots\/**\n    - step: &amp;sonar\n        name: SonarQube analysis\n        image: sonarsource\/sonar-scanner-cli:latest\n        script:\n          - sonar-scanner -Dsonar.projectKey=Gesa-Dashboard---Angular -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_SECRET -Dsonar.javascript.lcov.reportPaths=coverage\/lcov.info,coverage-component\/lcov.info\n    - step: &amp;deploy\n        name: Deploy\n        script:\n          - npm run build -- --base-href \/dashboard_ang\/ --output-hashing=all --aot --configuration=$DEPLOYMENT_PROFILE\n          - ssh $FTP_USERNAME@$FTP_HOST -p222 'mkdir -p ~\/public_html\/dashboard_ang'\n          - scp -P 222 -r dist\/new_angular_poc\/browser\/* $FTP_USERNAME@$FTP_HOST:~\/public_html\/dashboard_ang\/\n\npipelines:\n  branches:\n    develop:\n      - step:\n          &lt;&lt;: *install-and-check\n      - step:\n          deployment: automatictesting\n          &lt;&lt;: *test\n      - step:\n          &lt;&lt;: *sonar\n  custom:\n    deploy-company1-dev:\n      - step:\n          &lt;&lt;: *install-and-check\n      - step:\n          name: Deploy to Company 1\n          deployment: company1\n          &lt;&lt;: *deploy\n    deploy-at:\n      - step:\n          &lt;&lt;: *install-and-check\n      - step:\n          name: Deploy to AT\n          deployment: automatictesting\n          &lt;&lt;: *deploy<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wie du sehen kannst, legen wir im Abschnitt Pipelines die Umgebung und den Schritt fest, der verwendet werden soll. Der Name des Schritts wird weiter oben definiert. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine wichtige Warnung: Wenn du eine Bereitstellungsvariable mit demselben Namen wie eine Repository-Variable benennst, wird der Wert \u00fcberschrieben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sensible Daten wie Passw\u00f6rter, API-Tokens und DB-Zugangsdaten sind f\u00fcr die Projektentwicklung und das Testen unerl\u00e4sslich, sollten aber niemals im Klartext im Repository gespeichert werden. In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen.<\/p>\n","protected":false},"author":39,"featured_media":10511,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[68,181],"tags":[],"class_list":["post-10589","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-neuigkeiten","category-technologie"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wie man Geheimnisse in Bitbucket handhabt - WATA Factory<\/title>\n<meta name=\"description\" content=\"In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wie man Geheimnisse in Bitbucket handhabt - WATA Factory\" \/>\n<meta property=\"og:description\" content=\"In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/\" \/>\n<meta property=\"og:site_name\" content=\"WATA Factory\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/watafactory\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-24T08:30:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-03T14:19:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1440\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Carlos Castillo M\u00e1rquez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@watafactory\" \/>\n<meta name=\"twitter:site\" content=\"@watafactory\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlos Castillo M\u00e1rquez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/\"},\"author\":{\"name\":\"Carlos Castillo M\u00e1rquez\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#\\\/schema\\\/person\\\/5874c8611b13bad33d70704c0508d91f\"},\"headline\":\"Wie man Geheimnisse in Bitbucket handhabt\",\"datePublished\":\"2024-09-24T08:30:19+00:00\",\"dateModified\":\"2026-02-03T14:19:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/\"},\"wordCount\":618,\"publisher\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/wata-illustrations--scaled.jpg\",\"articleSection\":[\"Neuigkeiten\",\"Technologie\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/\",\"url\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/\",\"name\":\"Wie man Geheimnisse in Bitbucket handhabt - WATA Factory\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/wata-illustrations--scaled.jpg\",\"datePublished\":\"2024-09-24T08:30:19+00:00\",\"dateModified\":\"2026-02-03T14:19:42+00:00\",\"description\":\"In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/wata-illustrations--scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/wata-illustrations--scaled.jpg\",\"width\":2560,\"height\":1440,\"caption\":\"Frau mit Finger auf den Lippen, Geheimhaltungsgeste, vertrauliche Dokumente\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/wie-man-geheimnisse-in-bitbucket-handhabt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wata.es\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wie man Geheimnisse in Bitbucket handhabt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/wata.es\\\/de\\\/\",\"name\":\"WATA Factory\",\"description\":\"IT Consulting &amp; Outsourcing for your company\",\"publisher\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wata.es\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#organization\",\"name\":\"WATA Factory\",\"url\":\"https:\\\/\\\/wata.es\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/logowata.png\",\"contentUrl\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/logowata.png\",\"width\":688,\"height\":176,\"caption\":\"WATA Factory\"},\"image\":{\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/watafactory\\\/\",\"https:\\\/\\\/x.com\\\/watafactory\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/wata\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wata.es\\\/de\\\/#\\\/schema\\\/person\\\/5874c8611b13bad33d70704c0508d91f\",\"name\":\"Carlos Castillo M\u00e1rquez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3bafc27b7caaa54e083f1b61cad8d8ca8a89ed6504b4a64a63223c7ea721428a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3bafc27b7caaa54e083f1b61cad8d8ca8a89ed6504b4a64a63223c7ea721428a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3bafc27b7caaa54e083f1b61cad8d8ca8a89ed6504b4a64a63223c7ea721428a?s=96&d=mm&r=g\",\"caption\":\"Carlos Castillo M\u00e1rquez\"},\"url\":\"https:\\\/\\\/wata.es\\\/de\\\/author\\\/carlos-Castillo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wie man Geheimnisse in Bitbucket handhabt - WATA Factory","description":"In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/","og_locale":"de_DE","og_type":"article","og_title":"Wie man Geheimnisse in Bitbucket handhabt - WATA Factory","og_description":"In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen.","og_url":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/","og_site_name":"WATA Factory","article_publisher":"https:\/\/www.facebook.com\/watafactory\/","article_published_time":"2024-09-24T08:30:19+00:00","article_modified_time":"2026-02-03T14:19:42+00:00","og_image":[{"width":2560,"height":1440,"url":"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg","type":"image\/jpeg"}],"author":"Carlos Castillo M\u00e1rquez","twitter_card":"summary_large_image","twitter_creator":"@watafactory","twitter_site":"@watafactory","twitter_misc":{"Verfasst von":"Carlos Castillo M\u00e1rquez","Gesch\u00e4tzte Lesezeit":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/#article","isPartOf":{"@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/"},"author":{"name":"Carlos Castillo M\u00e1rquez","@id":"https:\/\/wata.es\/de\/#\/schema\/person\/5874c8611b13bad33d70704c0508d91f"},"headline":"Wie man Geheimnisse in Bitbucket handhabt","datePublished":"2024-09-24T08:30:19+00:00","dateModified":"2026-02-03T14:19:42+00:00","mainEntityOfPage":{"@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/"},"wordCount":618,"publisher":{"@id":"https:\/\/wata.es\/de\/#organization"},"image":{"@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/#primaryimage"},"thumbnailUrl":"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg","articleSection":["Neuigkeiten","Technologie"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/","url":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/","name":"Wie man Geheimnisse in Bitbucket handhabt - WATA Factory","isPartOf":{"@id":"https:\/\/wata.es\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/#primaryimage"},"image":{"@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/#primaryimage"},"thumbnailUrl":"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg","datePublished":"2024-09-24T08:30:19+00:00","dateModified":"2026-02-03T14:19:42+00:00","description":"In diesem Abschnitt erkl\u00e4ren wir, wie WATA Factory diese Geheimnisse mit Hilfe von Bitbuckets eingebauten Funktionen verwaltet: Repository-Variablen und Deployment-Variablen.","breadcrumb":{"@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/#primaryimage","url":"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg","contentUrl":"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg","width":2560,"height":1440,"caption":"Frau mit Finger auf den Lippen, Geheimhaltungsgeste, vertrauliche Dokumente"},{"@type":"BreadcrumbList","@id":"https:\/\/wata.es\/de\/wie-man-geheimnisse-in-bitbucket-handhabt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wata.es\/de\/"},{"@type":"ListItem","position":2,"name":"Wie man Geheimnisse in Bitbucket handhabt"}]},{"@type":"WebSite","@id":"https:\/\/wata.es\/de\/#website","url":"https:\/\/wata.es\/de\/","name":"WATA Factory","description":"IT Consulting &amp; Outsourcing for your company","publisher":{"@id":"https:\/\/wata.es\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wata.es\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/wata.es\/de\/#organization","name":"WATA Factory","url":"https:\/\/wata.es\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/wata.es\/de\/#\/schema\/logo\/image\/","url":"https:\/\/wata.es\/wp-content\/uploads\/2019\/12\/logowata.png","contentUrl":"https:\/\/wata.es\/wp-content\/uploads\/2019\/12\/logowata.png","width":688,"height":176,"caption":"WATA Factory"},"image":{"@id":"https:\/\/wata.es\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/watafactory\/","https:\/\/x.com\/watafactory","https:\/\/www.linkedin.com\/company\/wata\/"]},{"@type":"Person","@id":"https:\/\/wata.es\/de\/#\/schema\/person\/5874c8611b13bad33d70704c0508d91f","name":"Carlos Castillo M\u00e1rquez","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/3bafc27b7caaa54e083f1b61cad8d8ca8a89ed6504b4a64a63223c7ea721428a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3bafc27b7caaa54e083f1b61cad8d8ca8a89ed6504b4a64a63223c7ea721428a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3bafc27b7caaa54e083f1b61cad8d8ca8a89ed6504b4a64a63223c7ea721428a?s=96&d=mm&r=g","caption":"Carlos Castillo M\u00e1rquez"},"url":"https:\/\/wata.es\/de\/author\/carlos-Castillo\/"}]}},"_links":{"self":[{"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/posts\/10589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/comments?post=10589"}],"version-history":[{"count":4,"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/posts\/10589\/revisions"}],"predecessor-version":[{"id":15756,"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/posts\/10589\/revisions\/15756"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/media\/10511"}],"wp:attachment":[{"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/media?parent=10589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/categories?post=10589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wata.es\/de\/wp-json\/wp\/v2\/tags?post=10589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}