{"id":29195494,"url":"https://github.com/manvil95/sf-scripts","last_synced_at":"2026-04-24T12:02:36.303Z","repository":{"id":296917190,"uuid":"984572388","full_name":"manvil95/sf-scripts","owner":"manvil95","description":"Developed Bash scripts to automate and streamline Salesforce workflows as part of CI/CD pipelines.","archived":false,"fork":false,"pushed_at":"2025-06-11T13:55:08.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-02T05:04:35.264Z","etag":null,"topics":["bash","bash-script","salesforce","salesforce-developer"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manvil95.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-16T06:39:26.000Z","updated_at":"2025-06-02T19:38:16.000Z","dependencies_parsed_at":"2025-07-02T05:04:37.828Z","dependency_job_id":"eb743692-3b60-4c53-83c2-a197649dca44","html_url":"https://github.com/manvil95/sf-scripts","commit_stats":null,"previous_names":["manvil95/sf-scripts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/manvil95/sf-scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manvil95%2Fsf-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manvil95%2Fsf-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manvil95%2Fsf-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manvil95%2Fsf-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manvil95","download_url":"https://codeload.github.com/manvil95/sf-scripts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manvil95%2Fsf-scripts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32222483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","bash-script","salesforce","salesforce-developer"],"created_at":"2025-07-02T05:04:33.492Z","updated_at":"2026-04-24T12:02:36.287Z","avatar_url":"https://github.com/manvil95.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :rocket: sf-scripts\r\n\r\n## :hammer_and_wrench: validate-deployment\r\n\r\n\u003e[!NOTE]\r\n\u003e Este script de Bash, denominado validate_deployment.sh, está diseñado para facilitar la validación de despliegues en un entorno de Salesforce. \r\n\u003e A través de la ejecución de un comando, el script verifica la validez de un manifiesto y ejecuta un conjunto de pruebas Apex definidas en un archivo de test suite.\r\n\r\n### :gear: Ejecución del Script\r\n\r\nPara ejecutar el script, ingrese el siguiente comando en una consola Bash:\r\n\r\n```bash\r\n./scripts/bash/validate_deployment.sh \u003cnombre_del_manifiesto\u003e \u003corganizacion_objetivo\u003e [testSuite]\r\n./scripts/bash/validate_deployment.sh -h\r\n./scripts/bash/validate_deployment.sh --help\r\n```\r\n\r\n### :round_pushpin: Parámetros\r\n\r\n| Parámetro | Descripción |\r\n|-----------|-------------|\r\n| **\u003cnombre_del_manifiesto\u003e**| El nombre del archivo XML del manifiesto, ubicado en el directorio ./manifest/.|\r\n| **\u003corganizacion_objetivo\u003e**| La organización de Salesforce contra la cual se realizará la validación del despliegue. |\r\n| **[testSuite]**| (Opcional) Nombre del archivo de test suite a utilizar (por defecto: SuiteToTest). |\r\n| **-h, --help**| (Opcional) Muestra la ayuda del script. |\r\n\r\n### :computer: Ejemplos de Uso\r\n\r\nPara validar un despliegue utilizando el manifiesto package.xml contra la organización myOrg:\r\n\r\n```bash\r\n./scripts/bash/validate_deployment.sh package.xml myOrg\r\n```\r\n\r\nPara validar usando un test suite específico:\r\n\r\n```bash\r\n./scripts/bash/validate_deployment.sh package.xml myOrg CustomSuite\r\n```\r\n\r\nPara mostrar la ayuda:\r\n\r\n```bash\r\n./scripts/bash/validate_deployment.sh -h\r\n./scripts/bash/validate_deployment.sh --help\r\n```\r\n\r\n### :mag: Funcionamiento del Script\r\n\r\n1. **Comprobación de Argumentos**\r\n\r\n    El script inicia comprobando que se hayan proporcionado los argumentos necesarios. Si no se recibe la cantidad correcta de argumentos, se muestra un mensaje de error y el script se detiene.\r\n\r\n2. **Configuración y Verificación de Archivos**\r\n\r\n    - Utiliza la ruta ./manifest/ para ubicar el archivo de manifiesto.\r\n    - Verifica la existencia del archivo especificado por el usuario. Si el archivo no existe, se emite un mensaje de error.\r\n    - Verifica la existencia del archivo de test suite.\r\n\r\n3. **Lectura y Procesamiento del Archivo Test Suite**\r\n\r\n    El script procede a leer el testSuite-meta.xml (o el archivo especificado) para extraer los nombres de las clases de pruebas Apex. Esta información se compila en una lista que se utiliza para el comando de validación.\r\n\r\n4. **Detección del tipo de organización (Sandbox o Producción)**\r\n\r\n    El script detecta automáticamente si la organización de destino es una sandbox o una organización de producción usando la CLI de Salesforce. Según el tipo:\r\n    - **Sandbox:** Ejecuta el comando de despliegue en modo simulación (dry-run).\r\n    - **Producción:** Ejecuta una validación real usando `sf project deploy validate` (sin --dry-run).\r\n\r\n5. **Construcción y Ejecución del Comando**\r\n\r\n    - Genera un comando utilizando los parámetros proporcionados y la lista de pruebas Apex generada.\r\n    - Ejecuta el comando utilizando eval.\r\n\r\n6. **Errores Comunes**\r\n\r\n    - Falta de argumentos: Asegúrese de proporcionar los argumentos necesarios al ejecutar el script.\r\n    - Archivo de manifiesto o test suite inexistente: Confirme que los archivos existen en el directorio esperado.\r\n    - La CLI de Salesforce no está instalada o no está en el PATH.\r\n\r\n### :pushpin: Notas\r\n\r\n- Este script está diseñado para validaciones en entornos de desarrollo y productivos, adaptando el comando según el tipo de organización.\r\n- Los tests que ejecuta son los especificados en el archivo testSuite-meta.xml (o el que se indique).\r\n- Es recomendado almacenar el script en la carpeta ./scripts/bash/.\r\n- Ejecutar el script siempre desde una consola Bash.\r\n\r\n## :hammer_and_wrench: findMetadataErrors.sh\r\n\r\n\u003e [!NOTE]\r\n\u003e Este script se encarga de verificar la existencia de ciertos metadatos dentro de una organización de Salesforce a partir de un archivo XML proporcionado de una aplicación personalizada o conjunto de permisos.\r\n\r\n### :gear: Ejecución del Script\r\n\r\nPara ejecutar el script, ingrese el siguiente comando en una consola Bash:\r\n\r\n```bash\r\n./scripts/bash/findMetadataErrors-v1.sh --metadata-name \u003cmetadataName\u003e --target-org \u003corgName\u003e --metadata-type \u003cmetadataType\u003e\r\n./scripts/bash/findMetadataErrors-v1.sh -n \u003cmetadataName\u003e -o \u003corgName\u003e -t \u003cmetadataType\u003e --queries-result --export-json\r\n```\r\n\r\n### :round_pushpin: Parámetros\r\n\r\n| Parámetro | Descripción |\r\n|-----------|-------------|\r\n| **-n, --metadata-name** \u003cvalue\u003e | Nombre de la metadata a verificar (requerido) |\r\n| **-o, --target-org** \u003cvalue\u003e | La organización de Salesforce contra la cual se realizará la validación del despliegue. |\r\n| **-t, --metadata-type** \u003cvalue\u003e | Tipo de metadato, puede ser 'application' (app) o 'permissionset' (ps) (requerido). |\r\n| **--export-json** | Exporta metadata extraída del archivo XML a formato JSON |\r\n| **--queries-result** | Exporta resultados de las consultas a archivo JSON. |\r\n| **--help** | Muestra la ayuda del script. |\r\n\r\n### :mag: Funcionamiento del Script\r\n\r\n1. **Verificación de Parámetros**:\r\n\r\n    Asegura que se han proporcionado todos los parámetros necesarios, incluyendo la ruta del archivo XML, alias de la organización y tipo de metadato.\r\n\r\n2. **Verificación e Instalación de jq**:\r\n\r\n    Asegura que la herramienta jq está instalada para el procesamiento JSON. Si no está instalada, guía para instalarla con Chocolatey.\r\n\r\n3. **Comprobación de la Existencia del Archivo**:\r\n\r\n    Verifica si el archivo XML especificado existe. Si no, detiene la ejecución con un error.\r\n\r\n4. **Extracción de Metadatos del XML**:\r\n\r\n    Procesa el archivo XML para extraer los metadatos definidos y los organiza para la consulta.\r\n\r\n5. **Consultas a Salesforce**:\r\n\r\n    Realiza consultas agrupadas para cada tipo de metadato en la organización de Salesforce dada.\r\n\r\n6. **Presentación de Resultados**:\r\n\r\n    Imprime los resultados indicando si los metadatos especificados se encontraron o no en la organización.\r\n\r\n### :pushpin: Notas\r\n\r\n- El script eliminará automáticamente los archivos temporales a menos que se especifique lo contrario con las banderas --export-json o --queries-result. \r\n- Al final del proceso, se imprimen los resultados indicando si todos los metadatos esperados se encuentran presentes.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanvil95%2Fsf-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanvil95%2Fsf-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanvil95%2Fsf-scripts/lists"}