{"id":17384248,"url":"https://github.com/bkahlert/bats-wrapper","last_synced_at":"2026-01-19T22:01:53.352Z","repository":{"id":40471865,"uuid":"422425334","full_name":"bkahlert/bats-wrapper","owner":"bkahlert","description":"Self-contained wrapper to run tests based on the Bash testing framework Bats","archived":false,"fork":false,"pushed_at":"2022-10-06T04:29:55.000Z","size":494,"stargazers_count":2,"open_issues_count":8,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-17T09:57:31.792Z","etag":null,"topics":["bash","bashscript","bats","framework","self-contained","test","testing","wrapper"],"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/bkahlert.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"paypal.me/bkahlert"}},"created_at":"2021-10-29T03:04:11.000Z","updated_at":"2025-07-30T12:49:24.000Z","dependencies_parsed_at":"2023-01-05T05:03:50.744Z","dependency_job_id":null,"html_url":"https://github.com/bkahlert/bats-wrapper","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/bkahlert/bats-wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkahlert%2Fbats-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkahlert%2Fbats-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkahlert%2Fbats-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkahlert%2Fbats-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkahlert","download_url":"https://codeload.github.com/bkahlert/bats-wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkahlert%2Fbats-wrapper/sbom","scorecard":{"id":241526,"data":{"date":"2025-08-11","repo":{"name":"github.com/bkahlert/bats-wrapper","commit":"0dc3ad9313a8d44b49dc33657f1c1d6eb7404e6f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/13 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yml:25","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/build.yml:26","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/build.yml:138","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/docs.yml:1","Warn: no topLevel permission defined: .github/workflows/test-report.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.1.4 not signed: https://api.github.com/repos/bkahlert/bats-wrapper/releases/55011627","Warn: release artifact v0.1.3 not signed: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54741671","Warn: release artifact v0.1.2 not signed: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54458930","Warn: release artifact v0.1.1 not signed: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54284926","Warn: release artifact v0.1.0 not signed: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54210447","Warn: release artifact v0.1.4 does not have provenance: https://api.github.com/repos/bkahlert/bats-wrapper/releases/55011627","Warn: release artifact v0.1.3 does not have provenance: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54741671","Warn: release artifact v0.1.2 does not have provenance: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54458930","Warn: release artifact v0.1.1 does not have provenance: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54284926","Warn: release artifact v0.1.0 does not have provenance: https://api.github.com/repos/bkahlert/bats-wrapper/releases/54210447"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:78: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:111: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:142: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:145: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-report.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/bkahlert/bats-wrapper/test-report.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating docker:20.10.11-alpine3.14 to docker:20.10.11-alpine3.14@sha256:ff4fcc30e7c20f33c021e82683aedd1fe66654363eb1ff61065e0628f5bbf107","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  11 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T06:45:29.676Z","repository_id":40471865,"created_at":"2025-08-17T06:45:29.676Z","updated_at":"2025-08-17T06:45:29.676Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28587065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"last_error":"SSL_read: 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","bashscript","bats","framework","self-contained","test","testing","wrapper"],"created_at":"2024-10-16T07:44:56.488Z","updated_at":"2026-01-19T22:01:53.333Z","avatar_url":"https://github.com/bkahlert.png","language":"Shell","readme":"# bkahlert/bats-wrapper [![Build Status](https://img.shields.io/github/workflow/status/bkahlert/bats-wrapper/build?label=Build\u0026logo=github\u0026logoColor=fff)](https://github.com/bkahlert/bats-wrapper/actions/workflows/build.yml) [![Repository Size](https://img.shields.io/github/repo-size/bkahlert/bats-wrapper?color=01818F\u0026label=Repo%20Size\u0026logo=Git\u0026logoColor=fff)](https://github.com/bkahlert/bats-wrapper) [![Repository Size](https://img.shields.io/github/license/bkahlert/bats-wrapper?color=29ABE2\u0026label=License\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1OTAgNTkwIiAgeG1sbnM6dj0iaHR0cHM6Ly92ZWN0YS5pby9uYW5vIj48cGF0aCBkPSJNMzI4LjcgMzk1LjhjNDAuMy0xNSA2MS40LTQzLjggNjEuNC05My40UzM0OC4zIDIwOSAyOTYgMjA4LjljLTU1LjEtLjEtOTYuOCA0My42LTk2LjEgOTMuNXMyNC40IDgzIDYyLjQgOTQuOUwxOTUgNTYzQzEwNC44IDUzOS43IDEzLjIgNDMzLjMgMTMuMiAzMDIuNCAxMy4yIDE0Ny4zIDEzNy44IDIxLjUgMjk0IDIxLjVzMjgyLjggMTI1LjcgMjgyLjggMjgwLjhjMCAxMzMtOTAuOCAyMzcuOS0xODIuOSAyNjEuMWwtNjUuMi0xNjcuNnoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxOS4yMTIiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4%3D)](https://github.com/bkahlert/bats-wrapper/blob/master/LICENSE)\n\n## About\n\n**Bats Wrapper** is a self-contained wrapper to run tests based on the Bash testing framework [Bats](https://github.com/bats-core/) with some differences:\n- To facilitate testing of Dockerfiles the Docker command line tools is pre-installed and   \n  `docker buildx bake` is called if `$DOCKER_BAKE` is set (with its contents as the arguments).\n- The environment variable `TESTING` is set to `1` while running tests.\n- The following arguments are set by default:\n  - `--jobs` (with the number of processors or `4` or they cannot be determined) \n  - `--no-parallelize-within-files`\n  - `--no-tempdir-cleanup`\n  - `--recursive`\n  - `--timing`\n- The following extensions are loaded by default (and patched to support the `nounset` shell option):\n  - [bats-support](https://github.com/bats-core/bats-support)\n  - [bats-assert](https://github.com/bats-core/bats-assert)\n  - [bats-file](https://github.com/bats-core/bats-file)\n- Helper script with the name `_setup.sh` are automatically sourced  \n  (with the `_setup.sh` located in the same directory as the `bats` test file sourced last)\n  ```text\n  📁work             ⬅︎ you are here  \n  ├─📁src\n  └─📁test\n    ├─🔧_setup.sh    … automatically sourced\n    ├─📄foo.bats\n    └─📁bar\n      ├─🔧_setup.sh  … automatically sourced\n      └─📄baz.bats\n  ```\n- The working directory for each test is `$BATS_TEST_TMPDIR`.\n- To focus on a single or a couple of tests an *alternative to the `--filter` option*\n  is to prefix a test name with `x` or `X`:  \n  ```bash\n  @test \"foo\" {\n    ...\n  }\n\n  @test \"Xbar\" {\n    ...\n  }\n  ```\n  The above example will only execute `Xbar` without you having to change the command line.\n- Several extensions are provided:\n  - `copy_fixture` to handle fixtures \n  - `expect` for tests that require interaction\n  - Check [wrapper.sh](rootfs/opt/bats/lib/wrapper/wrapper.sh) for all extensions.\n\n[![recorded terminal session demonstrating the Bats wrapper](docs/demo.svg \"Bats Wrapper Demo\")  \n*Bats Wrapper Demo*](../../raw/master/docs/demo.svg)\n\n## Docker image\n\n### Build locally\n\n```shell\ngit clone https://github.com/bkahlert/bats-wrapper.git\ncd bats-wrapper\n\n# Build image and output to docker (default)\ndocker buildx bake\n\n# Build multi-platform image\ndocker buildx bake image-all\n```\n\n### Image\n\n* [Docker Hub](https://hub.docker.com/r/bkahlert/bats-wrapper/) `bkahlert/bats-wrapper`\n* [GitHub Container Registry](https://github.com/users/bkahlert/packages/container/package/bats-wrapper) `ghcr.io/bkahlert/bats-wrapper`\n\nFollowing platforms for this image are available:\n\n* linux/amd64\n* linux/arm64/v8\n\n## Usage\n\nThe Docker container passes all arguments to the wrapped Bash testing framework [Bats](https://github.com/bats-core/)\nand therefore inherits [all its supported options](https://bats-core.readthedocs.io/en/stable/usage.html).\n\n### Docker image\n\n```shell\ndocker run -it --rm \\\n  -e TERM=\"$TERM\" \\\n  -v \"$PWD\":\"$PWD\" \\\n  -w \"$PWD\" \\\n  bkahlert/bats-wrapper [OPTIONS] TEST [TEST...]\n```\n\n### Wrapper\n\nThe Bats Wrapper `batsw` needs nothing but a working Docker installation and either [`curl`](https://curl.se/download.html)\n, [`wget`](http://wget.addictivecode.org/FrequentlyAskedQuestions.html#download),\nor [`wget2`](https://gitlab.com/gnuwget/wget2#downloading-and-building-from-tarball):\n\n#### curl\n\n```shell\ncurl -LfsS https://git.io/batsw | \"$SHELL\" -s -- [OPTIONS] TEST [TEST...]\n```\n\n#### wget\n\n```shell\nwget -qO- https://git.io/batsw | \"$SHELL\" -s -- [OPTIONS] TEST [TEST...]\n```\n\n#### wget2\n\n```shell\nwget2 -nv -O- https://git.io/batsw | \"$SHELL\" -s -- [OPTIONS] TEST [TEST...]\n```\n\n### GitHub Action\n\nThe Bats Wrapper can also be used to run your Bats based tests right inside your GitHub workflow.\n\n#### Usage Example\n\n```yml\njobs:\n  docs:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2\n\n      - name: Run Bats tests\n        id: bats\n        uses: bkahlert/bats-wrapper@v0.1.4\n        with:\n          tests: test\n```\n\nAll [described options](#usage) can be used to customize the test run. Please consult [action.yml](action.yml) for detailed information. \n\n## Image Configuration\n\nThis image can be configured using the following options of which all but `APP_USER` and `APP_GROUP` exist as both—build argument and environment variable.  \nYou should go for build arguments if you want to set custom defaults you don't intend to change (often). Environment variables will overrule any existing\nconfiguration on each container start.\n\n- `APP_USER` Name of the main user (default: `bats`)\n- `APP_GROUP` Name of the main user's group (default: `bats`)\n- `DEBUG` Whether to log debug information (default: `0`)\n- `TZ` Timezone the container runs in (default: `UTC`)\n- `LANG` Language/locale to use (default: `C.UTF-8`)\n- `PUID` User ID of the `libguestfs` user (default: `1000`)\n- `PGID` Group ID of the `libguestfs` group (default: `1000`)\n\n```shell\n# Build single image with build argument TZ\ndocker buildx bake --build-arg TZ=\"$(date +\"%Z\")\"\n\n# Build multi-platform image with build argument TZ\ndocker buildx bake image-all --build-arg TZ=\"$(date +\"%Z\")\"\n\n# Start container with environment variable TZ\ndocker run --rm \\\n  -e TZ=\"$(date +\"%Z\")\" \\\n  -v \"$(pwd):$(pwd)\" \\\n  -w \"$(pwd)\" \\\n  bats-wrapper:local\n```\n\n## Testing\n\n```shell\ngit clone https://github.com/bkahlert/bats-wrapper.git\ncd bats-wrapper\n\n# Use Bats wrapper to build the Docker image and run the tests\nchmod +x ./batsw\nDOCKER_BAKE=\"--set '*.tags=test'\" BATSW_IMAGE=test:latest \\\n  ./batsw --batsw:-e --batsw:BUILD_TAG=test test\n```\n\n## Troubleshooting\n\n- To avoid permission problems with generated files, you can use your local user/group ID (see `PUID`/`PGID`).\n- If you need access to Docker, its command line interface is already installed.  \n  You can control your host instance by mounting `/var/run/docker.sock`.\n\n```shell\ndocker run -it --rm \\\n  -e PUID=\"$(id -u)\" \\\n  -e PGID=\"$(id -g)\" \\\n  -e TERM=\"$TERM\" \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -v \"$PWD\":\"$PWD\" \\\n  -w \"$PWD\" \\\n  bkahlert/bats-wrapper:edge\n```\n\n## Contributing\n\nWant to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. You can also support this project by making\na [Paypal donation](https://www.paypal.me/bkahlert) to ensure this journey continues indefinitely!\n\nThanks again for your support, it is much appreciated! :pray:\n\n## License\n\nMIT. See [LICENSE](LICENSE) for more details.\n","funding_links":["paypal.me/bkahlert","https://www.paypal.me/bkahlert"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkahlert%2Fbats-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkahlert%2Fbats-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkahlert%2Fbats-wrapper/lists"}