{"id":7996082,"name":"sodadata/soda-github-action","ecosystem":"actions","description":"Prevent downstream data quality issues by integrating the Soda Library into your CI/CD pipeline.","homepage":"https://www.soda.io/","licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/sodadata/soda-github-action","keywords_array":["data-engineering","data-monitoring","data-observability","data-quality","data-quality-checks","data-quality-monitoring","data-quality-testing","data-reliability","data-testing","data-unit-tests","data-validation","dataquality","datatesting","pipeline-testing","snowflake"],"namespace":"sodadata","versions_count":3,"first_release_published_at":"2023-07-27T08:59:28.000Z","latest_release_published_at":"2023-08-16T11:53:56.000Z","latest_release_number":"v1.0.2","last_synced_at":"2026-03-22T10:09:12.793Z","created_at":"2023-07-27T10:09:00.925Z","updated_at":"2026-03-22T10:09:12.793Z","registry_url":"https://github.com/sodadata/soda-github-action","install_command":null,"documentation_url":null,"metadata":{"name":"Soda Library Action","description":"Prevent downstream data quality issues by integrating the Soda Library into your CI/CD pipeline.","branding":{"icon":"check-circle","color":"green"},"inputs":{"soda_library_version":{"description":"Version of the Soda Library on which to run the scan","required":true},"data_source":{"description":"Data Source name","required":true},"configuration":{"description":"Configuration file","required":true},"checks":{"description":"Checks file(s)","required":true}},"runs":{"using":"composite","steps":[{"name":"Check required inputs","run":"[[ \"${{ inputs.soda_library_version }}\" ]] || { echo -e \"\\033[31;1;4m[Soda Library Github Action] Input: 'soda_library_version' is required\\033[0m\" ; exit 1; }\n[[ \"${{ inputs.data_source }}\" ]] || { echo -e \"\\033[31;1;4m[Soda Library Github Action] Input: 'data_source' is required\\033[0m\" ; exit 1; }\n[[ \"${{ inputs.configuration }}\" ]] || { echo -e \"\\033[31;1;4m[Soda Library Github Action] Input: 'configuration' is required\\033[0m\" ; exit 1; }\n[[ \"${{ inputs.checks }}\" ]] || { echo -e \"\\033[31;1;4m[Soda Library Github Action] Input: 'checks' is required\\033[0m\" ; exit 1; }\n","shell":"bash"},{"name":"Build the Docker image","run":"docker build \\\n${GITHUB_ACTION_PATH} \\\n--file ${GITHUB_ACTION_PATH}/Dockerfile \\\n-t soda_action_${{ github.sha }} \\\n--build-arg=\"SODA_LIBRARY_VERSION=${{ inputs.soda_library_version }}\"\n","shell":"bash"},{"name":"Set job related envs for PR","if":"${{ github.event_name == 'pull_request' }}","env":{"BRANCH_NAME":"${{ github.event.pull_request.head.ref }}","PR_TITLE":"${{ github.event.pull_request.title }}","PR_URL":"${{ github.event.pull_request.html_url }}","PR_NUMBER":"${{ github.event.pull_request.number }}"},"run":"env \u003e .env_file\n","shell":"bash"},{"name":"Set job related envs for non-PR","if":"${{ github.event_name != 'pull_request' }}","env":{"BRANCH_NAME":"${{ github.ref_name }}","PR_TITLE":"${{ github.event.head_commit.message }}","PR_URL":"${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}","PR_NUMBER":false},"run":"env \u003e .env_file\n","shell":"bash"},{"name":"Run the docker with the scan","id":"soda_scan","run":"docker run \\\n--workdir ${GITHUB_ACTION_PATH} \\\n--env-file .env_file \\\n-e \"HOME\" \\\n-e \"GITHUB_JOB\" \\\n-e \"GITHUB_REF\" \\\n-e \"GITHUB_SHA\" \\\n-e \"GITHUB_REPOSITORY\" \\\n-e \"GITHUB_REPOSITORY_OWNER\" \\\n-e \"GITHUB_REPOSITORY_OWNER_ID\" \\\n-e \"GITHUB_RUN_ID\" \\\n-e \"GITHUB_RUN_NUMBER\" \\\n-e \"GITHUB_RETENTION_DAYS\" \\\n-e \"GITHUB_RUN_ATTEMPT\" \\\n-e \"GITHUB_REPOSITORY_ID\" \\\n-e \"GITHUB_ACTOR_ID\" \\\n-e \"GITHUB_ACTOR\" \\\n-e \"GITHUB_TRIGGERING_ACTOR\" \\\n-e \"GITHUB_HEAD_REF\" \\\n-e \"GITHUB_BASE_REF\" \\\n-e \"GITHUB_EVENT_NAME\" \\\n-e \"GITHUB_SERVER_URL\" \\\n-e \"GITHUB_API_URL\" \\\n-e \"GITHUB_GRAPHQL_URL\" \\\n-e \"GITHUB_REF_NAME\" \\\n-e \"GITHUB_REF_PROTECTED\" \\\n-e \"GITHUB_REF_TYPE\" \\\n-e \"GITHUB_WORKFLOW_REF\" \\\n-e \"GITHUB_WORKFLOW_SHA\" \\\n-e \"GITHUB_WORKSPACE\" \\\n-e \"GITHUB_ACTION\" \\\n-e \"GITHUB_EVENT_PATH\" \\\n-e \"GITHUB_ACTION_REPOSITORY\" \\\n-e \"GITHUB_ACTION_REF\" \\\n-e \"GITHUB_PATH\" \\\n-e \"GITHUB_ENV\" \\\n-e \"GITHUB_STEP_SUMMARY\" \\\n-e \"GITHUB_STATE\" \\\n-e \"GITHUB_OUTPUT\" \\\n-e \"GITHUB_ACTION_PATH\" \\\n-e \"RUNNER_OS\" \\\n-e \"RUNNER_ARCH\" \\\n-e \"RUNNER_NAME\" \\\n-e \"RUNNER_TOOL_CACHE\" \\\n-e \"RUNNER_TEMP\" \\\n-e \"RUNNER_WORKSPACE\" \\\n-e \"ACTIONS_RUNTIME_URL\" \\\n-e \"ACTIONS_RUNTIME_TOKEN\" \\\n-e \"ACTIONS_CACHE_URL\" \\\n-e GITHUB_ACTIONS=true \\\n-e CI=true \\\n--rm  \\\n-v ${{ github.env}}:${{ github.env}} \\\n-v ${GITHUB_ACTION_PATH}:/tmp/action_path \\\n-v ${{ github.workspace }}:/tmp/workspace \\\nsoda_action_${{ github.sha }} \\\n${{ inputs.data_source }} \\\n\"${{ inputs.configuration }}\" \\\n\"${{ inputs.checks }}\" || true\n","shell":"bash"},{"name":"Scan results link","if":"env.SCAN_EXIT_CODE \u003c= 2","run":"echo -e \"\\033[36;1m-----------------------------\\033[0m\"\necho -e \"\\033[36;1m View the full scan results -\u003e \\033[0m ${{ env.SCAN_CLOUD_LINK }}\"\necho -e \"\\033[36;1m-----------------------------\\033[0m\"\n","shell":"bash"},{"uses":"buildingcash/json-to-markdown-table-action@ce128b72e0c93612c8f02b85e0672bcb16fd9bf9","id":"table","if":"${{ env.SCAN_RESULTS }}","with":{"json":"${{ env.SCAN_RESULTS }}"}},{"name":"Comment PR on success","uses":"thollander/actions-comment-pull-request@8c77f42bbcc27c832a3a5962c8f9a60e34b594f3","continue-on-error":true,"if":"env.SCAN_EXIT_CODE == 0","with":{"message":"🟢 Soda scan completed successfully with the following results:\n\n${{ steps.table.outputs.table }}\n\n[View the full scan results](${{ env.SCAN_CLOUD_LINK }})\n"}},{"name":"Comment PR on warning","uses":"thollander/actions-comment-pull-request@8c77f42bbcc27c832a3a5962c8f9a60e34b594f3","continue-on-error":true,"if":"env.SCAN_EXIT_CODE == 1","with":{"message":"🟠 Soda scan completed with the following results:\n\n${{ steps.table.outputs.table }}\n\n[View the full scan results](${{ env.SCAN_CLOUD_LINK }})\n"}},{"name":"Comment PR on failure","uses":"thollander/actions-comment-pull-request@8c77f42bbcc27c832a3a5962c8f9a60e34b594f3","continue-on-error":true,"if":"env.SCAN_EXIT_CODE == 2","with":{"message":"🔴 Soda scan completed with the following results:\n\n${{ steps.table.outputs.table }}\n\n[View the full scan results](${{ env.SCAN_CLOUD_LINK }})\n"}},{"name":"Comment PR on scan errors","uses":"thollander/actions-comment-pull-request@8c77f42bbcc27c832a3a5962c8f9a60e34b594f3","continue-on-error":true,"if":"env.SCAN_EXIT_CODE == 3","with":{"message":"🔴 Soda scan failed. Check the logs for more details.\n"}},{"name":"Fail job if Soda scan failed","shell":"bash","if":"env.SCAN_EXIT_CODE != 0","run":"echo -e \"\\033[31;1;4mSoda Scan failed\\033[0m\" \u0026\u0026 exit ${{ env.SCAN_EXIT_CODE }}\n"},{"name":"Exit job if Soda scan succeeded","shell":"bash","if":"env.SCAN_EXIT_CODE == 0","run":"echo -e \"\\33[32;1;4mSoda Scan succeeded\\033[0m\"\n"}]},"default_branch":"main","path":null},"repo_metadata":{"uuid":"665067907","full_name":"sodadata/soda-github-action","owner":"sodadata","description":":zap: Prevent downstream data quality issues by integrating the Soda Library into your CI/CD pipeline.","archived":false,"fork":false,"pushed_at":"2023-08-16T11:59:36.000Z","size":66,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2023-08-16T12:24:27.562Z","etag":null,"topics":["data-engineering","data-monitoring","data-observability","data-quality","data-quality-checks","data-quality-monitoring","data-quality-testing","data-reliability","data-testing","data-unit-tests","data-validation","dataquality","datatesting","pipeline-testing","snowflake"],"latest_commit_sha":null,"homepage":"https://www.soda.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sodadata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-11T11:11:39.000Z","updated_at":"2023-08-10T13:00:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sodadata/soda-github-action","commit_stats":null,"previous_names":["sodadata/soda-github-action"],"tags_count":3,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sodadata","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":153357482,"owners_count":7181706,"icon_url":"https://github.com/github.png","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"},"owner_record":{"login":"sodadata","name":"Soda Data Reliability","uuid":"45313710","kind":"organization","description":"","email":"info@soda.io","website":"https://www.soda.io","location":"Brussels, Belgium","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/45313710?v=4","repositories_count":14,"last_synced_at":"2023-03-03T19:42:43.990Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/sodadata","created_at":"2022-11-14T05:05:41.939Z","updated_at":"2023-03-03T19:42:44.004Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sodadata","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sodadata/repositories"},"tags":[{"name":"v1.0.2","sha":"9c5c12a9c29b3a48d3069b8b62a84b0c2090f9fc","kind":"commit","published_at":"2023-08-16T11:53:56.000Z","download_url":"https://codeload.github.com/sodadata/soda-github-action/tar.gz/v1.0.2","html_url":"https://github.com/sodadata/soda-github-action/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":"f864f19d-1ccf-4b98-be12-9f9eead0d203","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"e1ae41329ce30015546ef80f6a83a029678eb799","kind":"commit","published_at":"2023-08-04T12:53:42.000Z","download_url":"https://codeload.github.com/sodadata/soda-github-action/tar.gz/v1.0.1","html_url":"https://github.com/sodadata/soda-github-action/releases/tag/v1.0.1","dependencies_parsed_at":"2023-08-09T04:36:47.735Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"f51cdd634648f62d8f9c9daf91ca452f57f1100d","kind":"commit","published_at":"2023-07-27T08:59:28.000Z","download_url":"https://codeload.github.com/sodadata/soda-github-action/tar.gz/v1.0.0","html_url":"https://github.com/sodadata/soda-github-action/releases/tag/v1.0.0","dependencies_parsed_at":"2023-07-29T04:32:55.169Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodadata%2Fsoda-github-action/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2025-10-25T20:08:19.255Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":1,"rankings":{"downloads":null,"dependent_repos_count":24.772619236254158,"dependent_packages_count":0.0,"stargazers_count":19.828870226588496,"forks_count":35.132308667406114,"docker_downloads_count":null,"average":19.933449532562193},"purl":"pkg:githubactions/sodadata/soda-github-action","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/actions/sodadata/soda-github-action","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/actions/sodadata/soda-github-action","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/actions/sodadata/soda-github-action/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/sodadata%2Fsoda-github-action/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/sodadata%2Fsoda-github-action/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/sodadata%2Fsoda-github-action/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/sodadata%2Fsoda-github-action/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/github%20actions/packages/sodadata%2Fsoda-github-action/codemeta","maintainers":[]}