{"id":10591,"date":"2024-09-24T10:30:20","date_gmt":"2024-09-24T08:30:20","guid":{"rendered":"https:\/\/wata.es\/?p=10591"},"modified":"2026-02-03T15:20:17","modified_gmt":"2026-02-03T14:20:17","slug":"como-gestionar-secretos-en-bitbucket-2","status":"publish","type":"post","link":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/","title":{"rendered":"C\u00f3mo gestionar secretos en Bitbucket"},"content":{"rendered":"\n<p>Los datos sensibles, como contrase\u00f1as, tokens de API y credenciales de bases de datos, son fundamentales para el desarrollo y las pruebas de proyectos, pero nunca deber\u00edan guardarse en texto plano dentro del repositorio. En esta entrada, explicaremos c\u00f3mo en WATA Factory manejamos estos secretos usando las herramientas integradas de Bitbucket: variables de repositorio y variables de despliegue.<br><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Para utilizar cualquiera de estas soluciones, solo necesitas permisos de escritura. Sin embargo, para configurar cualquier tipo de variable, es necesario tener permisos de administrador. Si necesitas m\u00e1s informaci\u00f3n t\u00e9cnica, puedes consultar <a href=\"https:\/\/support.atlassian.com\/bitbucket-cloud\/docs\/variables-and-secrets\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">este art\u00edculo.<\/a>  <\/p>\n\n\n\n<p>Cypress es uno de los frameworks de pruebas automatizadas que usamos habitualmente en WATA Factory, as\u00ed que usaremos un proyecto de Cypress como ejemplo, aunque este m\u00e9todo se puede aplicar a cualquier tecnolog\u00eda.<br><\/p>\n\n\n\n<p>En este proyecto, tenemos una referencia a un archivo credentials.ts dentro de cypress.config.ts. Si queremos ejecutar nuestras pruebas automatizadas en el pipeline, necesitar\u00edamos tener el archivo de credenciales en el repositorio, de lo contrario, el pipeline fallar\u00e1. Sabemos que esta no es una buena pr\u00e1ctica, as\u00ed que \u00bfc\u00f3mo lo solucionamos?  <\/p>\n\n\n\n<p>Aqu\u00ed es donde entran en juego las variables de repositorio. Con esta funcionalidad nativa de Bitbucket, podemos referenciar variables definidas en nuestros pipelines y usarlas cuando lo necesitemos. <\/p>\n\n\n\n<p>La soluci\u00f3n tiene solo cuatro pasos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Crear la variable en Bitbucket.<\/li>\n\n\n\n<li>Crear un archivo temporal credentials.ts.<br><\/li>\n\n\n\n<li>Copiar el contenido de la variable en este archivo temporal.<\/li>\n\n\n\n<li>\u00a1LISTO! Nuestro proyecto ya tiene el archivo necesario con todos los secretos. <\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Variables de repositorio:<\/strong><\/h3>\n\n\n\n<p>Supongamos que nuestro archivo credentials.ts tiene la siguiente estructura:<\/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><\/p>\n\n\n\n<p>Y que nuestro archivo cypress.config.ts necesita importarlo para utilizar esas credenciales:<\/p>\n\n\n\n<p><\/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><\/p>\n\n\n\n<p>Las variables pueden contener incluso un archivo JSON completo si es necesario. Por lo tanto, copiamos el contenido de nuestro archivo credentials.ts, y nos dirigimos a \u00abConfiguraci\u00f3n del repositorio &gt; Variables de repositorio\u00bb en Bitbucket.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 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\"><img loading=\"lazy\" decoding=\"async\" width=\"193\" height=\"432\" src=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-1.png\" alt=\"Men\u00fa de navegaci\u00f3n del repositorio Bitbucket que muestra opciones como C\u00f3digo fuente, Commits, Ramas y Solicitudes de extracci\u00f3n\" 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\" \/><\/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\"><img loading=\"lazy\" decoding=\"async\" width=\"468\" height=\"321\" src=\"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/Picture-2.png\" alt=\"P\u00e1gina de configuraci\u00f3n de variables de repositorio que muestra dos variables con sus valores\" 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\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Solo necesitamos asignar un nombre a la variable, pegar el contenido del archivo y hacer clic en Agregar. Si prefieres que estas credenciales est\u00e9n cifradas y no se muestren en los registros de compilaci\u00f3n, puedes marcar la opci\u00f3n Seguro, pero ten en cuenta que ya no podr\u00e1s ver ni editar su contenido, solo podr\u00e1s asignar un nuevo valor o eliminar la variable. <\/p>\n\n\n\n<p>Una vez configurada la variable, solo debemos utilizar el s\u00edmbolo &#8216;$&#8217; para llamarla y redirigir la salida de echo usando el comando &#8216;&gt;&#8217; dentro de nuestro pipeline. En la ra\u00edz de tu proyecto, debe haber un archivo bitbucket-pipeline.yml: <\/p>\n\n\n\n<p><\/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><\/p>\n\n\n\n<p>Con este comando, creamos un archivo temporal con el contenido de nuestra variable. As\u00ed, el archivo de credenciales se elimina tras la ejecuci\u00f3n del pipeline. <\/p>\n\n\n\n<p><\/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><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Variables de despliegue:<\/strong><\/h3>\n\n\n\n<p>En WATA Factory, para adaptarnos a las necesidades de nuestros clientes y ofrecer un servicio de calidad, necesitamos trabajar con diferentes entornos: desarrollo, producci\u00f3n y, por supuesto, uno dedicado a pruebas. Cada entorno puede requerir credenciales diferentes o configuraciones espec\u00edficas. Para resolver este desaf\u00edo, Bitbucket ofrece las variables de despliegue.  <\/p>\n\n\n\n<p>Estas variables funcionan de manera similar a las variables de repositorio, pero debes especificar en el pipeline a qu\u00e9 entorno te refieres.<\/p>\n\n\n\n<p>Para crear una variable de despliegue:<br><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ve a \u00abConfiguraci\u00f3n del repositorio &gt; Despliegues\u00bb.<br><\/li>\n\n\n\n<li>Crea un nuevo entorno en la secci\u00f3n que desees (pruebas, staging o producci\u00f3n).<br><\/li>\n\n\n\n<li>A\u00f1ade una nueva variable como hicimos antes con las variables de repositorio.<br><\/li>\n\n\n\n<li>Especifica en el pipeline a qu\u00e9 entorno hace referencia:<\/li>\n<\/ol>\n\n\n\n<p><\/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><\/p>\n\n\n\n<p>Como puedes ver, en la secci\u00f3n de pipelines definimos el entorno y en qu\u00e9 paso se utilizar\u00e1. El nombre del paso se define m\u00e1s arriba. <\/p>\n\n\n\n<p>Un detalle importante: si nombras una variable de despliegue igual que una variable de repositorio, esta \u00faltima ser\u00e1 sobrescrita.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los datos sensibles, como contrase\u00f1as, tokens de API y credenciales de bases de datos, son fundamentales para el desarrollo y las pruebas de proyectos, pero nunca deber\u00edan guardarse en texto plano dentro del repositorio. En esta entrada, explicaremos c\u00f3mo en WATA Factory manejamos estos secretos usando las herramientas integradas de Bitbucket: variables de repositorio y [&hellip;]<\/p>\n","protected":false},"author":39,"featured_media":10512,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[89,183],"tags":[],"class_list":["post-10591","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticias","category-tecnologia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C\u00f3mo gestionar secretos en Bitbucket - WATA Factory<\/title>\n<meta name=\"description\" content=\"Descubre c\u00f3mo WATA Factory gestiona estos secretos utilizando las funciones integradas de Bitbucket: variables de repositorio y de despliegue.\" \/>\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\/es\/como-gestionar-secretos-en-bitbucket-2\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo gestionar secretos en Bitbucket - WATA Factory\" \/>\n<meta property=\"og:description\" content=\"Descubre c\u00f3mo WATA Factory gestiona estos secretos utilizando las funciones integradas de Bitbucket: variables de repositorio y de despliegue.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/\" \/>\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:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-03T14:20:17+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=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlos Castillo M\u00e1rquez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/\"},\"author\":{\"name\":\"Carlos Castillo M\u00e1rquez\",\"@id\":\"https:\\\/\\\/wata.es\\\/#\\\/schema\\\/person\\\/5874c8611b13bad33d70704c0508d91f\"},\"headline\":\"C\u00f3mo gestionar secretos en Bitbucket\",\"datePublished\":\"2024-09-24T08:30:20+00:00\",\"dateModified\":\"2026-02-03T14:20:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/\"},\"wordCount\":635,\"publisher\":{\"@id\":\"https:\\\/\\\/wata.es\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/wata-illustrations--scaled.jpg\",\"articleSection\":[\"Noticias\",\"Tecnolog\u00eda\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/\",\"url\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/\",\"name\":\"C\u00f3mo gestionar secretos en Bitbucket - WATA Factory\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wata.es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wata.es\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/wata-illustrations--scaled.jpg\",\"datePublished\":\"2024-09-24T08:30:20+00:00\",\"dateModified\":\"2026-02-03T14:20:17+00:00\",\"description\":\"Descubre c\u00f3mo WATA Factory gestiona estos secretos utilizando las funciones integradas de Bitbucket: variables de repositorio y de despliegue.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/#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\":\"Mujer con dedo en los labios, gesto de silencio, documentos confidenciales\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wata.es\\\/es\\\/como-gestionar-secretos-en-bitbucket-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wata.es\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo gestionar secretos en Bitbucket\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wata.es\\\/#website\",\"url\":\"https:\\\/\\\/wata.es\\\/\",\"name\":\"WATA Factory\",\"description\":\"IT Consulting &amp; Outsourcing for your company\",\"publisher\":{\"@id\":\"https:\\\/\\\/wata.es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wata.es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wata.es\\\/#organization\",\"name\":\"WATA Factory\",\"url\":\"https:\\\/\\\/wata.es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/wata.es\\\/#\\\/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\\\/#\\\/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\\\/#\\\/schema\\\/person\\\/5874c8611b13bad33d70704c0508d91f\",\"name\":\"Carlos Castillo M\u00e1rquez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\\\/es\\\/author\\\/carlos\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo gestionar secretos en Bitbucket - WATA Factory","description":"Descubre c\u00f3mo WATA Factory gestiona estos secretos utilizando las funciones integradas de Bitbucket: variables de repositorio y de despliegue.","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\/es\/como-gestionar-secretos-en-bitbucket-2\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo gestionar secretos en Bitbucket - WATA Factory","og_description":"Descubre c\u00f3mo WATA Factory gestiona estos secretos utilizando las funciones integradas de Bitbucket: variables de repositorio y de despliegue.","og_url":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/","og_site_name":"WATA Factory","article_publisher":"https:\/\/www.facebook.com\/watafactory\/","article_published_time":"2024-09-24T08:30:20+00:00","article_modified_time":"2026-02-03T14:20:17+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":{"Escrito por":"Carlos Castillo M\u00e1rquez","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/#article","isPartOf":{"@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/"},"author":{"name":"Carlos Castillo M\u00e1rquez","@id":"https:\/\/wata.es\/#\/schema\/person\/5874c8611b13bad33d70704c0508d91f"},"headline":"C\u00f3mo gestionar secretos en Bitbucket","datePublished":"2024-09-24T08:30:20+00:00","dateModified":"2026-02-03T14:20:17+00:00","mainEntityOfPage":{"@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/"},"wordCount":635,"publisher":{"@id":"https:\/\/wata.es\/#organization"},"image":{"@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/#primaryimage"},"thumbnailUrl":"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg","articleSection":["Noticias","Tecnolog\u00eda"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/","url":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/","name":"C\u00f3mo gestionar secretos en Bitbucket - WATA Factory","isPartOf":{"@id":"https:\/\/wata.es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/#primaryimage"},"image":{"@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/#primaryimage"},"thumbnailUrl":"https:\/\/wata.es\/wp-content\/uploads\/2024\/04\/wata-illustrations--scaled.jpg","datePublished":"2024-09-24T08:30:20+00:00","dateModified":"2026-02-03T14:20:17+00:00","description":"Descubre c\u00f3mo WATA Factory gestiona estos secretos utilizando las funciones integradas de Bitbucket: variables de repositorio y de despliegue.","breadcrumb":{"@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/#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":"Mujer con dedo en los labios, gesto de silencio, documentos confidenciales"},{"@type":"BreadcrumbList","@id":"https:\/\/wata.es\/es\/como-gestionar-secretos-en-bitbucket-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wata.es\/es\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo gestionar secretos en Bitbucket"}]},{"@type":"WebSite","@id":"https:\/\/wata.es\/#website","url":"https:\/\/wata.es\/","name":"WATA Factory","description":"IT Consulting &amp; Outsourcing for your company","publisher":{"@id":"https:\/\/wata.es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wata.es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/wata.es\/#organization","name":"WATA Factory","url":"https:\/\/wata.es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/wata.es\/#\/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\/#\/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\/#\/schema\/person\/5874c8611b13bad33d70704c0508d91f","name":"Carlos Castillo M\u00e1rquez","image":{"@type":"ImageObject","inLanguage":"es","@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\/es\/author\/carlos\/"}]}},"_links":{"self":[{"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/posts\/10591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/comments?post=10591"}],"version-history":[{"count":4,"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/posts\/10591\/revisions"}],"predecessor-version":[{"id":15758,"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/posts\/10591\/revisions\/15758"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/media\/10512"}],"wp:attachment":[{"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/media?parent=10591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/categories?post=10591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wata.es\/es\/wp-json\/wp\/v2\/tags?post=10591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}