{"_id":"@agentlaunchopsai/dockerignore-guard","name":"@agentlaunchopsai/dockerignore-guard","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@agentlaunchopsai/dockerignore-guard","version":"1.0.0","description":"Scan Docker build contexts for missing .dockerignore protections.","type":"module","bin":{"dockerignore-guard":"src/cli.js"},"scripts":{"test":"node --test","scan":"node src/cli.js .","prepublishOnly":"npm test && node src/cli.js . --no-fail"},"keywords":["docker","dockerignore","build-context","security","ci","linter"],"author":{"name":"AgentLaunchOps"},"license":"MIT","engines":{"node":">=18"},"_id":"@agentlaunchopsai/dockerignore-guard@1.0.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-0I0J2Jhxlz2+uMpykCLAuUMlWv4F8It6K8lHYVMFRDRlsIEVn9sEclVYGGSNR+lWHQSTBns9zFf0+510oEZcsw==","shasum":"614aa17c10c33a09f0848c57e9970c944a1a913c","tarball":"https://registry.npmjs.org/@agentlaunchopsai/dockerignore-guard/-/dockerignore-guard-1.0.0.tgz","fileCount":6,"unpackedSize":14968,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD2ei3g+O4uRyhAAAVVthxLKgIgLxnAKyHZzUeVxeGZ5gIgI3Jh8EmWOl/9GG6VMpA3uDUmP+2J0gAKFtujigutgTU="}]},"_npmUser":{"name":"agentlaunchops","email":"agentlaunchops@proton.me"},"directories":{},"maintainers":[{"name":"agentlaunchops","email":"agentlaunchops@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dockerignore-guard_1.0.0_1780866715188_0.6188185505236061"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-07T21:11:55.027Z","1.0.0":"2026-06-07T21:11:55.329Z","modified":"2026-06-07T21:11:55.606Z"},"maintainers":[{"name":"agentlaunchops","email":"agentlaunchops@proton.me"}],"description":"Scan Docker build contexts for missing .dockerignore protections.","keywords":["docker","dockerignore","build-context","security","ci","linter"],"author":{"name":"AgentLaunchOps"},"license":"MIT","readme":"# Dockerignore Guard\n\nDockerignore Guard scans Docker build contexts for missing `.dockerignore`\nprotections that can send slow, sensitive, or noisy files into Docker builds.\n\nIt runs locally and does not send project contents to any service.\n\n## What It Checks\n\n- Dockerfiles that use broad `COPY .` or `ADD .` without a `.dockerignore`\n- Missing ignores for present high-noise paths such as `.git`, `node_modules`,\n  `dist`, `coverage`, `.venv`, and `vendor`\n- Missing ignores for present sensitive files such as `.env`, `.npmrc`,\n  `.pypirc`, and private-key filenames\n- Dockerfiles that directly copy sensitive files into the image\n- Dockerfile-specific ignore files, such as `build.Dockerfile.dockerignore`\n\n## Install\n\n```sh\nnpm install -g @agentlaunchopsai/dockerignore-guard\n```\n\nLocal development:\n\n```sh\nnpm install\nnpm test\nnode src/cli.js .\n```\n\n## Usage\n\n```sh\ndockerignore-guard .\ndockerignore-guard . --json\ndockerignore-guard . --sarif\ndockerignore-guard . --no-fail\ndockerignore-guard --init\nnpx @agentlaunchopsai/dockerignore-guard .\n```\n\nThe CLI exits with `0` when no findings are present, `1` when findings are\npresent, and `2` for runtime errors. Use `--no-fail` when a CI job should report\nfindings without failing the build.\n\n`--init` prints a conservative `.dockerignore` baseline:\n\n```sh\ndockerignore-guard --init > .dockerignore\n```\n\nGitHub code scanning example:\n\n```yaml\nname: dockerignore-guard\n\non:\n  pull_request:\n  push:\n    branches: [main]\n\njobs:\n  scan-docker-context:\n    runs-on: ubuntu-latest\n    permissions:\n      security-events: write\n      contents: read\n    timeout-minutes: 5\n    steps:\n      - uses: actions/checkout@v4\n      - run: npx -y @agentlaunchopsai/dockerignore-guard . --sarif --no-fail > dockerignore-guard.sarif\n      - uses: github/codeql-action/upload-sarif@v3\n        with:\n          sarif_file: dockerignore-guard.sarif\n\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-d666322913b726c305c50a6ef3afc543"}