{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "AUC001", "name": "[AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobilit", "shortDescription": {"text": "[AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation."}, "fullDescription": {"text": "Add .repobility/access.yml mapping routes to anonymous, authenticated, owner, admin, and super_admin. Keep business-specific rules in the repo so CI can enforce them."}, "properties": {"scanner": "repobility-access-control", "category": "auth", "severity": "medium", "confidence": 0.92, "cwe": "", "owasp": ""}}, {"id": "DKR001", "name": "Docker final stage has no non-root USER", "shortDescription": {"text": "Docker final stage has no non-root USER"}, "fullDescription": {"text": "Add a non-root USER in the final runtime stage after files and permissions are prepared."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "DKR009", "name": "Dockerfile separates apt update from install", "shortDescription": {"text": "Dockerfile separates apt update from install"}, "fullDescription": {"text": "Combine update and install in the same RUN instruction and clean package indexes in that layer."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "DKR002", "name": "Dockerfile base image has no explicit tag", "shortDescription": {"text": "Dockerfile base image has no explicit tag"}, "fullDescription": {"text": "Pin the image to a supported version tag or digest, for example python:3.13-slim or image@sha256:..."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "DKR007", "name": "Docker build context has no .dockerignore", "shortDescription": {"text": "Docker build context has no .dockerignore"}, "fullDescription": {"text": "Add .dockerignore with at least .git, .env, private keys, dependency folders, build outputs, and local databases."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "DKR015", "name": "Docker build context is very large", "shortDescription": {"text": "Docker build context is very large"}, "fullDescription": {"text": "Shrink the build context with .dockerignore, move generated/runtime data outside the build context, and copy only the manifest files needed for cached dependency layers."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "AIC004", "name": "Suspicious implementation file appears unreferenced", "shortDescription": {"text": "Suspicious implementation file appears unreferenced"}, "fullDescription": {"text": "Confirm whether this file is reachable. If not, delete it; if yes, wire it through explicit imports, routes, or entry points and add a test that proves the path executes."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "AIC001", "name": "Parallel implementation file sits beside a canonical file", "shortDescription": {"text": "Parallel implementation file sits beside a canonical file"}, "fullDescription": {"text": "Merge the intended change into the canonical file, update tests/imports, and delete the parallel implementation if it is not the active entry point."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "SEC014", "name": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks.", "shortDescription": {"text": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks."}, "fullDescription": {"text": "Enable SSL verification. Use verify=True (default) for requests. Pin certificates if needed."}, "properties": {"scanner": "repobility-threat-engine", "category": "crypto", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "DKR012", "name": "Dockerfile keeps pip download cache", "shortDescription": {"text": "Dockerfile keeps pip download cache"}, "fullDescription": {"text": "Use `pip install --no-cache-dir ...` in container builds."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "low", "confidence": 0.72, "cwe": "", "owasp": ""}}, {"id": "DKR011", "name": "Dockerfile installs recommended OS packages", "shortDescription": {"text": "Dockerfile installs recommended OS packages"}, "fullDescription": {"text": "Add `--no-install-recommends` and explicitly list only packages the image needs."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "low", "confidence": 0.72, "cwe": "", "owasp": ""}}, {"id": "DKR010", "name": "Dockerfile leaves apt package indexes in the image layer", "shortDescription": {"text": "Dockerfile leaves apt package indexes in the image layer"}, "fullDescription": {"text": "End the apt install layer with `rm -rf /var/lib/apt/lists/*`."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "low", "confidence": 0.74, "cwe": "", "owasp": ""}}, {"id": "AIC005", "name": "Duplicate top-level symbol appears in a patch-style file", "shortDescription": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "fullDescription": {"text": "Keep one authoritative implementation, update imports to point at it, and remove or rename the duplicate symbol."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.64, "cwe": "", "owasp": ""}}, {"id": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "AIC002", "name": "Source file name looks like an AI patch artifact", "shortDescription": {"text": "Source file name looks like an AI patch artifact"}, "fullDescription": {"text": "Rename it to the domain concept it implements or merge it into the existing module it was meant to change."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "SEC020", "name": "[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequen", "shortDescription": {"text": "[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for troubleshooting."}, "fullDescription": {"text": "Log only redacted, hashed, or last-four-style metadata. Rotate any secret that may have reached logs."}, "properties": {"scanner": "repobility-threat-engine", "category": "credential_exposure", "severity": "info", "confidence": 0.1, "cwe": "", "owasp": ""}}]}}, "automationDetails": {"id": "repobility/493"}, "properties": {"repository": "tensorflow/tensorflow", "repoUrl": "https://github.com/tensorflow/tensorflow.git", "branch": "master"}, "results": [{"ruleId": "AUC001", "level": "warning", "message": {"text": "[AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation."}, "properties": {"repobilityId": 28923, "scanner": "repobility-access-control", "fingerprint": "f1305052c3ba1e6c1cdb5dccc19e58a8168cf78b176658f32b1fc823df3e9d10", "category": "auth", "severity": "medium", "confidence": 0.92, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Static route and framework evidence require project-owner confirmation.", "evidence": {"scanner": "repobility-access-control", "frameworks": ["Django"], "expected_files": [".repobility/access.yml", ".repobility/access.yaml", ".repobility/access.json", ".repobility/authorization.yml"], "correlation_key": "fp|f1305052c3ba1e6c1cdb5dccc19e58a8168cf78b176658f32b1fc823df3e9d10"}}}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28922, "scanner": "repobility-docker", "fingerprint": "6ea2931093762ed25ecbdaa45354935a624e1e5bd0fb33899fb6903373242ebb", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "nvidia/cuda:12.3.2-base-ubuntu22.04@sha256:8cecfe099315f73127d6d5cc43fce32c7ffff4ea0460eefac48f2b7d811ce857", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|6ea2931093762ed25ecbdaa45354935a624e1e5bd0fb33899fb6903373242ebb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/tf_sig_build_dockerfiles/Dockerfile"}, "region": {"startLine": 19}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28921, "scanner": "repobility-docker", "fingerprint": "9fd28a26dd0eed375093ceec70e58223159b1d2032cf0c81de4899fe18e8af93", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:24.04@sha256:c35e29c9450151419d9448b0fd75374fec4fff364a27f176fb458d472dfc9e54", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|9fd28a26dd0eed375093ceec70e58223159b1d2032cf0c81de4899fe18e8af93"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/gcs_test/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR009", "level": "warning", "message": {"text": "Dockerfile separates apt update from install"}, "properties": {"repobilityId": 28918, "scanner": "repobility-docker", "fingerprint": "2af70ccad4482c0efea61f05f34142e157d9a3e4c98734b381c5af5064c21ccd", "category": "docker", "severity": "medium", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Package index update appears without package installation in the same layer.", "evidence": {"rule_id": "DKR009", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|2af70ccad4482c0efea61f05f34142e157d9a3e4c98734b381c5af5064c21ccd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/gcs_test/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28917, "scanner": "repobility-docker", "fingerprint": "e2bbad4ef4db7d0976ba177118eb89cd15384997e14d81366e58ea7a7f3068eb", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "${ROOT_CONTAINER}:${ROOT_CONTAINER_TAG}", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e2bbad4ef4db7d0976ba177118eb89cd15384997e14d81366e58ea7a7f3068eb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/linux/mkl/Dockerfile.devel-mkl"}, "region": {"startLine": 4}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28913, "scanner": "repobility-docker", "fingerprint": "04864c5fc279e9661020406f5f268caa71260b26bd6dc21e159d559d921d60b6", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:focal", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|04864c5fc279e9661020406f5f268caa71260b26bd6dc21e159d559d921d60b6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rocm"}, "region": {"startLine": 3}}}]}, {"ruleId": "DKR009", "level": "warning", "message": {"text": "Dockerfile separates apt update from install"}, "properties": {"repobilityId": 28910, "scanner": "repobility-docker", "fingerprint": "c5ef1b6e508a0f70dd08f9b3a4b870d8f54ab554390b2f38ae579e1b3b32747b", "category": "docker", "severity": "medium", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Package index update appears without package installation in the same layer.", "evidence": {"rule_id": "DKR009", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|c5ef1b6e508a0f70dd08f9b3a4b870d8f54ab554390b2f38ae579e1b3b32747b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rocm"}, "region": {"startLine": 66}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28907, "scanner": "repobility-docker", "fingerprint": "ed57119b25fc5c71d465704c69a67d79294db52ad3f5a8a0d3b41c2daf87ef64", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|ed57119b25fc5c71d465704c69a67d79294db52ad3f5a8a0d3b41c2daf87ef64"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.ubuntu16.04-manylinux2010"}, "region": {"startLine": 40}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28900, "scanner": "repobility-docker", "fingerprint": "56722c7e58275d70239b4cc77c28ffb5dbd8efdac1c0b73790619767c35d401b", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:b6f572a897a69fa3311773f949b9aa9e81bc393e4fbe2c0d56d8afb03a6de080", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|56722c7e58275d70239b4cc77c28ffb5dbd8efdac1c0b73790619767c35d401b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.3-cudnn9.1-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28898, "scanner": "repobility-docker", "fingerprint": "e15726302e6f511d8900fe6dcedc7200c710362caaeb23ce344318f07051a755", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:dddcaf30321e9007103dce75c51b83fea3c06de462fcf41e7c6ae93f37fc3545", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e15726302e6f511d8900fe6dcedc7200c710362caaeb23ce344318f07051a755"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.3-cudnn8.9-ubuntu22.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28896, "scanner": "repobility-docker", "fingerprint": "77f493bcb6a20afb180365e4511c78f4f95cad26028762028e324695d32310fd", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:22d863e6fe3f98946015b9e1264b2eeb8e56e504535a6c1d5e564cae65ae5d37", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|77f493bcb6a20afb180365e4511c78f4f95cad26028762028e324695d32310fd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.3-cudnn8.9-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28894, "scanner": "repobility-docker", "fingerprint": "d70f2746372eee614c576aa3b3bf3c097a946491e0e0154458dc9fdd1fcf1e76", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:7c8ecb6482e26c4b4efce0ddaefe3fb3667b3b958c83fe8d3cc3763c6ed7a4d1", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|d70f2746372eee614c576aa3b3bf3c097a946491e0e0154458dc9fdd1fcf1e76"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.2-cudnn9.1-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28892, "scanner": "repobility-docker", "fingerprint": "a1d99ad572a8b56caacac9fe5a212c063b59711d7cffcbc53da0fc533d7da9a8", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:b6f572a897a69fa3311773f949b9aa9e81bc393e4fbe2c0d56d8afb03a6de080", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|a1d99ad572a8b56caacac9fe5a212c063b59711d7cffcbc53da0fc533d7da9a8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.2-cudnn8.9-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28890, "scanner": "repobility-docker", "fingerprint": "a08ce23173b081847d9a1bcd4ff6d08a73d4520e91306cf76b40fc9f85564e65", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:3573cdabdea7f203b6440a93bb50a0e1a17c2c9a33f09fccdc0c97f514f9689c", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|a08ce23173b081847d9a1bcd4ff6d08a73d4520e91306cf76b40fc9f85564e65"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.1-cudnn9.1-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28888, "scanner": "repobility-docker", "fingerprint": "68bc373c28ee7966fcf59205f4a8f8dae707dfba1642d67183d3b20d48b8bf75", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:3573cdabdea7f203b6440a93bb50a0e1a17c2c9a33f09fccdc0c97f514f9689c", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|68bc373c28ee7966fcf59205f4a8f8dae707dfba1642d67183d3b20d48b8bf75"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.1-cudnn8.9-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28886, "scanner": "repobility-docker", "fingerprint": "03f2cb04fdb06186abda53f6841b10ea77e7d26eff08f5ab948466b792547bf7", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "gcr.io/tensorflow-sigs/build@sha256:c03809a6b4008b430bf241efce78cdcd92c7bc41d11d0ba57216e97d813ac282", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|03f2cb04fdb06186abda53f6841b10ea77e7d26eff08f5ab948466b792547bf7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda11.8-cudnn8.6-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28884, "scanner": "repobility-docker", "fingerprint": "cbeca5938ce4fd8ffbc935c6cc5c116959a2e66276f1d4c93c1d8c222fcaf61c", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "launcher.gcr.io/google/rbe-ubuntu16-04:r327695", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|cbeca5938ce4fd8ffbc935c6cc5c116959a2e66276f1d4c93c1d8c222fcaf61c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cpu"}, "region": {"startLine": 6}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28883, "scanner": "repobility-docker", "fingerprint": "beea7470cbdf86a1a57cdbd5ed8e573b22018addd7dc5ee8c62777681f2d3dc6", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:14.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|beea7470cbdf86a1a57cdbd5ed8e573b22018addd7dc5ee8c62777681f2d3dc6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.pi"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28882, "scanner": "repobility-docker", "fingerprint": "4d1c38613a93e3cad5044a2e93df478cfc2f7561f36c53bc4c46622fecb13e67", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "python:3.12.0a3-slim-bullseye", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|4d1c38613a93e3cad5044a2e93df478cfc2f7561f36c53bc4c46622fecb13e67"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.micro"}, "region": {"startLine": 4}}}]}, {"ruleId": "DKR009", "level": "warning", "message": {"text": "Dockerfile separates apt update from install"}, "properties": {"repobilityId": 28877, "scanner": "repobility-docker", "fingerprint": "a5c9b7382ee41372a7813b800c1a52ed339b5cca39010b52cfaacc86c64f440a", "category": "docker", "severity": "medium", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Package index update appears without package installation in the same layer.", "evidence": {"rule_id": "DKR009", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|a5c9b7382ee41372a7813b800c1a52ed339b5cca39010b52cfaacc86c64f440a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.micro"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28876, "scanner": "repobility-docker", "fingerprint": "a943c4c9498a549c274014270df05ccdfc87151235a5fdf8a73d4a061c6d42f3", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:20.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|a943c4c9498a549c274014270df05ccdfc87151235a5fdf8a73d4a061c6d42f3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.local-toolchain-ubuntu20.04-manylinux2014"}, "region": {"startLine": 13}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28874, "scanner": "repobility-docker", "fingerprint": "b2aa53de723cc8fedaaa3d22988cb8bfcb971274ca262e858ab1184d176ed8ef", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:18.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|b2aa53de723cc8fedaaa3d22988cb8bfcb971274ca262e858ab1184d176ed8ef"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.local-toolchain-ubuntu18.04-manylinux2010"}, "region": {"startLine": 10}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28872, "scanner": "repobility-docker", "fingerprint": "8680652bac8e8f1ad1729d3c7c812c28a69a416eb13da6062922cc1a63513558", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "nvidia/cuda-ppc64le:9.2-cudnn7-devel-ubuntu16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|8680652bac8e8f1ad1729d3c7c812c28a69a416eb13da6062922cc1a63513558"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.gpu.ppc64le"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28871, "scanner": "repobility-docker", "fingerprint": "93e6bb836f411cc9d1252617d6de34a9448f85073b4edd11383c5342b9e37ed9", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|93e6bb836f411cc9d1252617d6de34a9448f85073b4edd11383c5342b9e37ed9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.gpu"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28869, "scanner": "repobility-docker", "fingerprint": "652f106d9164041572e1826f14c8bab1a2d01745690be4ddfb45edaab8315dab", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "debian:bullseye-20221219", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|652f106d9164041572e1826f14c8bab1a2d01745690be4ddfb45edaab8315dab"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.debian.bullseye.cpu"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28867, "scanner": "repobility-docker", "fingerprint": "dbecf85df28bb59d03d8aa2109a989fa97e0b872e66cf6d78e8272f0d47b329f", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "nvidia/cuda:11.2.1-cudnn8-devel-ubuntu16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|dbecf85df28bb59d03d8aa2109a989fa97e0b872e66cf6d78e8272f0d47b329f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda11.2"}, "region": {"startLine": 30}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28862, "scanner": "repobility-docker", "fingerprint": "6c05856a11ca671b1bd306e470a522e0817e77fe4db93365dadc35f2e5c5e899", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "nvidia/cuda:10.1-cudnn7-devel-ubuntu16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|6c05856a11ca671b1bd306e470a522e0817e77fe4db93365dadc35f2e5c5e899"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.1"}, "region": {"startLine": 30}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28857, "scanner": "repobility-docker", "fingerprint": "08625700e39b454a7ed879ade1044a93d237f4df760f30db59898c3df456e47a", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|08625700e39b454a7ed879ade1044a93d237f4df760f30db59898c3df456e47a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.0"}, "region": {"startLine": 30}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28852, "scanner": "repobility-docker", "fingerprint": "ef77d64fac046408ac6446e965d20b8047a527e0c76e9da2aba5870d6ec41c52", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|ef77d64fac046408ac6446e965d20b8047a527e0c76e9da2aba5870d6ec41c52"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16"}, "region": {"startLine": 34}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28848, "scanner": "repobility-docker", "fingerprint": "50ba7963f36fba8c933bf44c4d522b4e1ee54c3e60a1db62f95b55334b0d1d49", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "nvidia/cuda:10.0-cudnn7-devel-ubuntu14.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|50ba7963f36fba8c933bf44c4d522b4e1ee54c3e60a1db62f95b55334b0d1d49"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_gpu"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28847, "scanner": "repobility-docker", "fingerprint": "c3b9c3debe2f45badec1dcd2bdbf5f3243b6b1c58fd427de8379c13c4fdfd47c", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "local-manylinux-toolchain", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|c3b9c3debe2f45badec1dcd2bdbf5f3243b6b1c58fd427de8379c13c4fdfd47c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cuda-clang"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR002", "level": "warning", "message": {"text": "Dockerfile base image has no explicit tag"}, "properties": {"repobilityId": 28846, "scanner": "repobility-docker", "fingerprint": "97a349d4106e2d0e2d0d66124bdf760e5b50ad35186149334bb9e398df309f41", "category": "docker", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Image reference has no tag or digest.", "evidence": {"image": "local-manylinux-toolchain", "rule_id": "DKR002", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://docs.docker.com/scout/policy/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|97a349d4106e2d0e2d0d66124bdf760e5b50ad35186149334bb9e398df309f41"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cuda-clang"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28845, "scanner": "repobility-docker", "fingerprint": "7a5b512db1da87788b016357feccb27e45a028ccfa447951a0d8d54c95cf0229", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|7a5b512db1da87788b016357feccb27e45a028ccfa447951a0d8d54c95cf0229"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cpu.ppc64le"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28844, "scanner": "repobility-docker", "fingerprint": "f0a2ad5015a8245beed3708ea621152833fab874b1e4b25a8afcba45afc2a5f1", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "linaro/tensorflow-arm64-build:2.17-multipython", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|f0a2ad5015a8245beed3708ea621152833fab874b1e4b25a8afcba45afc2a5f1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cpu.arm64"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28842, "scanner": "repobility-docker", "fingerprint": "eca7b46babbe244e6429f2ca2e764518623c03b7e387409aad5b0c7d9b3561d3", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|eca7b46babbe244e6429f2ca2e764518623c03b7e387409aad5b0c7d9b3561d3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cpu-py36"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR009", "level": "warning", "message": {"text": "Dockerfile separates apt update from install"}, "properties": {"repobilityId": 28841, "scanner": "repobility-docker", "fingerprint": "c9df631124426091641d93ce9ea17c84f682fd4fd8001c5b230753ccf2210198", "category": "docker", "severity": "medium", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Package index update appears without package installation in the same layer.", "evidence": {"rule_id": "DKR009", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|c9df631124426091641d93ce9ea17c84f682fd4fd8001c5b230753ccf2210198"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cpu-py36"}, "region": {"startLine": 14}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28840, "scanner": "repobility-docker", "fingerprint": "8a7b63d00e2cf8527ab5289b0d928c72432b9c298446a68937e92b4bf85ed28e", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|8a7b63d00e2cf8527ab5289b0d928c72432b9c298446a68937e92b4bf85ed28e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cpu"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28839, "scanner": "repobility-docker", "fingerprint": "ad4f7a7c568fda71c769653f7ce2906059bcec729cd03132d23b3c99010797f4", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|ad4f7a7c568fda71c769653f7ce2906059bcec729cd03132d23b3c99010797f4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 15}}}]}, {"ruleId": "DKR009", "level": "warning", "message": {"text": "Dockerfile separates apt update from install"}, "properties": {"repobilityId": 28831, "scanner": "repobility-docker", "fingerprint": "6b878c0869cf4e052be3c2a5746135910af042472604baa7ff0fda1fe3a39c6e", "category": "docker", "severity": "medium", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Package index update appears without package installation in the same layer.", "evidence": {"rule_id": "DKR009", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|6b878c0869cf4e052be3c2a5746135910af042472604baa7ff0fda1fe3a39c6e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 24}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28830, "scanner": "repobility-docker", "fingerprint": "b8cf7695d58da536916204df889693b4e51314ebca081c4c4f33e6ad30f329c2", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "ubuntu:16.04", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|b8cf7695d58da536916204df889693b4e51314ebca081c4c4f33e6ad30f329c2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.android"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28828, "scanner": "repobility-docker", "fingerprint": "3a0a9f27df359cbfa99c02d5ee6447e6aaa5ce361b29d3847d925335a5681ea4", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "${IMAGE}", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|3a0a9f27df359cbfa99c02d5ee6447e6aaa5ce361b29d3847d925335a5681ea4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/tools/pip_package/Dockerfile.py3"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28822, "scanner": "repobility-docker", "fingerprint": "e70a2f025a43451ebfbee87c398df1487890946092fce29e11f466aa00898da5", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "$BASE_IMAGE", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e70a2f025a43451ebfbee87c398df1487890946092fce29e11f466aa00898da5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ci/official/containers/ml_build/Dockerfile"}, "region": {"startLine": 3}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28820, "scanner": "repobility-docker", "fingerprint": "af13d3d370341e7a6eb706683e3a7f6f5d783ca9e231b1838be0fbebfbfc02e4", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "mcr.microsoft.com/windows/servercore:ltsc2022", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|af13d3d370341e7a6eb706683e3a7f6f5d783ca9e231b1838be0fbebfbfc02e4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ci/devinfra/docker/windows2022/Dockerfile"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR007", "level": "warning", "message": {"text": "Docker build context has no .dockerignore"}, "properties": {"repobilityId": 28818, "scanner": "repobility-docker", "fingerprint": "c98378cf8c37e4866e89d6ca06a24b7e8c44654aa34e6e4bf1367c4a4c0c5b44", "category": "docker", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Dockerfile exists but repository root has no .dockerignore.", "evidence": {"rule_id": "DKR007", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|c98378cf8c37e4866e89d6ca06a24b7e8c44654aa34e6e4bf1367c4a4c0c5b44"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".dockerignore"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 28817, "scanner": "repobility-docker", "fingerprint": "40c21a47392ea62fb4fe988e48af9c3ddcba2272957977cf2e3c9157d35cc1af", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "mcr.microsoft.com/windows/servercore:ltsc2019", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|40c21a47392ea62fb4fe988e48af9c3ddcba2272957977cf2e3c9157d35cc1af"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ci/devinfra/docker/windows/Dockerfile"}, "region": {"startLine": 15}}}]}, {"ruleId": "DKR015", "level": "warning", "message": {"text": "Docker build context is very large"}, "properties": {"repobilityId": 28814, "scanner": "repobility-docker", "fingerprint": "b15d4f710afeff2af4cd4ab204332853f9025b78869a0e87bb466a798bb1a15b", "category": "docker", "severity": "medium", "confidence": 0.84, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Estimated Docker build context exceeds Repobility's size or file-count threshold.", "evidence": {"capped": false, "rule_id": "DKR015", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "largest_paths": [{"path": ".git/objects/pack/pack-854558910d1ca2e41763539baa05f973d6d8fa2f.pack", "size_mb": 87.3}, {"path": ".git/objects/pack/pack-d3070d751715cdf257e11aad69d30fda2b1855bc.pack", "size_mb": 18.9}, {"path": "third_party/xla/xla/tests/data/cudnn_reproducer.hlo", "size_mb": 8.3}, {"path": "third_party/xla/xla/tools/benchmarks/hlo/hlo_llama31_8b_fp8_2x8.hlo", "size_mb": 6.7}, {"path": "third_party/xla/xla/tools/benchmarks/hlo/hlo_llama31_8b_fp8_1x8.hlo", "size_mb": 6.7}], "included_files": 36354, "context_size_mb": 511.1, "correlation_key": "fp|b15d4f710afeff2af4cd4ab204332853f9025b78869a0e87bb466a798bb1a15b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".dockerignore"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC004", "level": "warning", "message": {"text": "Suspicious implementation file appears unreferenced"}, "properties": {"repobilityId": 28773, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ba98f9f0f8e80c925f01aba8612266dd58888502d9dbeb0b8e6d23943288b1a9", "category": "quality", "severity": "medium", "confidence": 0.78, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Patch-style source file has no detected inbound reference from other repository files.", "evidence": {"suffix": "rewrite", "rule_id": "AIC004", "scanner": "repobility-ai-code-hygiene", "references": ["https://knip.dev/", "https://github.com/jendrikseipp/vulture"], "correlation_key": "fp|ba98f9f0f8e80c925f01aba8612266dd58888502d9dbeb0b8e6d23943288b1a9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/core/tpu/tpu_embedding_configuration_proto_rewrite.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28771, "scanner": "repobility-ai-code-hygiene", "fingerprint": "aa1ea1bd0fd5e5d18bcf5ad0144a693e0b1d70e37b5c895807327ea66551d861", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/ops/init_ops.py", "correlation_key": "fp|aa1ea1bd0fd5e5d18bcf5ad0144a693e0b1d70e37b5c895807327ea66551d861"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/init_ops_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28770, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0f3fc7cb911503b6aa15ef8e72e678af77875d7950fda2f26eeb3bb167a0e5d0", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/ops/gradient_checker.py", "correlation_key": "fp|0f3fc7cb911503b6aa15ef8e72e678af77875d7950fda2f26eeb3bb167a0e5d0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/gradient_checker_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28769, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3cac8144a05a2da577ba8fbb3a792a724efa6cd3a9a94d2400f1b0e0b0695176", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/ops/control_flow_util.py", "correlation_key": "fp|3cac8144a05a2da577ba8fbb3a792a724efa6cd3a9a94d2400f1b0e0b0695176"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/control_flow_util_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28768, "scanner": "repobility-ai-code-hygiene", "fingerprint": "2564504aa6b56be30a6806766cea9331d2593187edd8ed8db5bd6a6044abdf21", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/ops/cond.py", "correlation_key": "fp|2564504aa6b56be30a6806766cea9331d2593187edd8ed8db5bd6a6044abdf21"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/cond_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28764, "scanner": "repobility-ai-code-hygiene", "fingerprint": "fb72632bef7b78e6d0a6b0c964976e03c9d0571368ed0b574d8252dfd56698fc", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v1", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/keras/engine/training_utils.py", "correlation_key": "fp|fb72632bef7b78e6d0a6b0c964976e03c9d0571368ed0b574d8252dfd56698fc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_utils_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28759, "scanner": "repobility-ai-code-hygiene", "fingerprint": "632335832ed5d90c9fcd8a07301bd0147704f0191085b15dd8ad3d26ee4dbc0a", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v1", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/keras/engine/training.py", "correlation_key": "fp|632335832ed5d90c9fcd8a07301bd0147704f0191085b15dd8ad3d26ee4dbc0a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28758, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3bce4a470c53da6df85948077d7a970214caed0d946e658da61597941b21434d", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v1", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/keras/engine/base_layer.py", "correlation_key": "fp|3bce4a470c53da6df85948077d7a970214caed0d946e658da61597941b21434d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/base_layer_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28757, "scanner": "repobility-ai-code-hygiene", "fingerprint": "c59a61b1499f983555af670aa7fa03a68d84f91b0aa771f272f2fdb7a4d1188a", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v1", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/keras/distribute/distributed_training_utils.py", "correlation_key": "fp|c59a61b1499f983555af670aa7fa03a68d84f91b0aa771f272f2fdb7a4d1188a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/distribute/distributed_training_utils_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28755, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e9971e516e608985ad460965004e64824f46effc516ca08de5c9885ccc07a73f", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v1", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/keras/callbacks.py", "correlation_key": "fp|e9971e516e608985ad460965004e64824f46effc516ca08de5c9885ccc07a73f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/callbacks_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28754, "scanner": "repobility-ai-code-hygiene", "fingerprint": "d2de74e9ef992339cb58ebbe6c40594d56c49774beb4d7e46c19f0fa8ac6ebf5", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/feature_column/feature_column.py", "correlation_key": "fp|d2de74e9ef992339cb58ebbe6c40594d56c49774beb4d7e46c19f0fa8ac6ebf5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/feature_column/feature_column_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28753, "scanner": "repobility-ai-code-hygiene", "fingerprint": "05ef89938419392549580ea97dd471b4c0045c75bbcbe8d309f49fb0f998cbdc", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/distribute/values.py", "correlation_key": "fp|05ef89938419392549580ea97dd471b4c0045c75bbcbe8d309f49fb0f998cbdc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/distribute/values_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28752, "scanner": "repobility-ai-code-hygiene", "fingerprint": "54f8fcc28a78caaf6b90b60c5d189ca7e8a22bd977e143ae5e0b69f9eecc53e5", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/distribute/parameter_server_strategy.py", "correlation_key": "fp|54f8fcc28a78caaf6b90b60c5d189ca7e8a22bd977e143ae5e0b69f9eecc53e5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/distribute/parameter_server_strategy_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28751, "scanner": "repobility-ai-code-hygiene", "fingerprint": "007bba329d964fa6024c2f84cabb95ac6316612a97b54238281a3d0c699f3730", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v1", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/python/checkpoint/save_util.py", "correlation_key": "fp|007bba329d964fa6024c2f84cabb95ac6316612a97b54238281a3d0c699f3730"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/checkpoint/save_util_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28750, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3672e593292cf60d539da00703cf96a5cf1b9c131ed93d43615cd1402ceb287d", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/lite/testing/op_tests/where.py", "correlation_key": "fp|3672e593292cf60d539da00703cf96a5cf1b9c131ed93d43615cd1402ceb287d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/testing/op_tests/where_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 28744, "scanner": "repobility-ai-code-hygiene", "fingerprint": "617762d16af07fe05e677e7e24e6efc398ee2ee47ef0726f0a1787bcde8c24b8", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "v2", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "tensorflow/core/kernels/stateless_random_ops.h", "correlation_key": "fp|617762d16af07fe05e677e7e24e6efc398ee2ee47ef0726f0a1787bcde8c24b8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/core/kernels/stateless_random_ops_v2.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "SEC014", "level": "warning", "message": {"text": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks."}, "properties": {"repobilityId": 28741, "scanner": "repobility-threat-engine", "fingerprint": "edf3aba83efbca3a63c335b8b4023ceeb8e36a034bf69639fdf4d6bf4dc9ff1f", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "verify = false", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC014", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|token|174|sec014"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/compiler/mlir/lite/quantization/common/quantization_lib/quantization_utils.h"}, "region": {"startLine": 174}}}]}, {"ruleId": "SEC014", "level": "warning", "message": {"text": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks."}, "properties": {"repobilityId": 28740, "scanner": "repobility-threat-engine", "fingerprint": "bb6f25ba4a2acb5217c8da0e94ba6118b2b3e580e5858fa9e975815ceb8da119", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "verify = false", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC014", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|token|197|sec014"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/compiler/mlir/lite/quantization/common/quantization_lib/quantization_config.h"}, "region": {"startLine": 197}}}]}, {"ruleId": "SEC014", "level": "warning", "message": {"text": "[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks."}, "properties": {"repobilityId": 28739, "scanner": "repobility-threat-engine", "fingerprint": "1647e0fe1dff3ac1fa05e72d59251f93280f2306bd3f9583f065d5bec7c20690", "category": "crypto", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "verify = false", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC014", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|crypto|token|48|sec014"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/compiler/mlir/lite/python/converter_python_api.h"}, "region": {"startLine": 48}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28920, "scanner": "repobility-docker", "fingerprint": "3eb3a2ffbfd077e44d917c8ad34742d0f539288a393082fd6fc748c1df162a6e", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|3eb3a2ffbfd077e44d917c8ad34742d0f539288a393082fd6fc748c1df162a6e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/gcs_test/Dockerfile"}, "region": {"startLine": 19}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28919, "scanner": "repobility-docker", "fingerprint": "16482586f24f7fb4b5759da1ce17965b57f6f90b65eed46b9390903750f92772", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|16482586f24f7fb4b5759da1ce17965b57f6f90b65eed46b9390903750f92772"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/gcs_test/Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28916, "scanner": "repobility-docker", "fingerprint": "94d12bdfce2ea3870b4d504d74625b44c0e0de341d0273871c949d0c4fa8d6d9", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|94d12bdfce2ea3870b4d504d74625b44c0e0de341d0273871c949d0c4fa8d6d9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/linux/mkl/Dockerfile.devel-mkl"}, "region": {"startLine": 39}}}]}, {"ruleId": "DKR010", "level": "note", "message": {"text": "Dockerfile leaves apt package indexes in the image layer"}, "properties": {"repobilityId": 28915, "scanner": "repobility-docker", "fingerprint": "acd8429efc98fbe7fd144e61d5038786c3b56f246dd44a6236dc87dcd9c59b20", "category": "docker", "severity": "low", "confidence": 0.74, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt update/install layer does not remove /var/lib/apt/lists.", "evidence": {"rule_id": "DKR010", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|acd8429efc98fbe7fd144e61d5038786c3b56f246dd44a6236dc87dcd9c59b20"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/linux/mkl/Dockerfile.devel-mkl"}, "region": {"startLine": 39}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28912, "scanner": "repobility-docker", "fingerprint": "e3a001064865e6142d52552ca2dfc9d2ef16b6b194fe83bbf631bbe36a8a9c4b", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e3a001064865e6142d52552ca2dfc9d2ef16b6b194fe83bbf631bbe36a8a9c4b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rocm"}, "region": {"startLine": 69}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28911, "scanner": "repobility-docker", "fingerprint": "f1dfd42c57bf3c49dd2701996d19a8d1ee5cc9dc190d40b80a24cedaff963bf9", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|f1dfd42c57bf3c49dd2701996d19a8d1ee5cc9dc190d40b80a24cedaff963bf9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rocm"}, "region": {"startLine": 67}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28909, "scanner": "repobility-docker", "fingerprint": "7a50139e436642a4906d2c3524dec02f67ad2bff6a19ebe600517d91fcf006c7", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|7a50139e436642a4906d2c3524dec02f67ad2bff6a19ebe600517d91fcf006c7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rocm"}, "region": {"startLine": 26}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28908, "scanner": "repobility-docker", "fingerprint": "3ace15b818cc10f844701eb2daf6f8302ca6a7f1070a6bf1cc1292d779649a16", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|3ace15b818cc10f844701eb2daf6f8302ca6a7f1070a6bf1cc1292d779649a16"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rocm"}, "region": {"startLine": 14}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28906, "scanner": "repobility-docker", "fingerprint": "6ccfecf92e53e96f68af3678a7b5f13584d40cfb51e3113b5186ae15b9f11c34", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|6ccfecf92e53e96f68af3678a7b5f13584d40cfb51e3113b5186ae15b9f11c34"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.ubuntu16.04-manylinux2010"}, "region": {"startLine": 74}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28905, "scanner": "repobility-docker", "fingerprint": "e02f03ee6df0ddf7bf5b2b828a558a61b9b746188b4e6b67f04f08c457c5d51b", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e02f03ee6df0ddf7bf5b2b828a558a61b9b746188b4e6b67f04f08c457c5d51b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.ubuntu16.04-manylinux2010"}, "region": {"startLine": 68}}}]}, {"ruleId": "DKR010", "level": "note", "message": {"text": "Dockerfile leaves apt package indexes in the image layer"}, "properties": {"repobilityId": 28904, "scanner": "repobility-docker", "fingerprint": "8ac9674a8e1389fd551559d80cd6a17bc1434a30728c8c65f06f2d393405ec21", "category": "docker", "severity": "low", "confidence": 0.74, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt update/install layer does not remove /var/lib/apt/lists.", "evidence": {"rule_id": "DKR010", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|8ac9674a8e1389fd551559d80cd6a17bc1434a30728c8c65f06f2d393405ec21"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.ubuntu16.04-manylinux2010"}, "region": {"startLine": 68}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28903, "scanner": "repobility-docker", "fingerprint": "50bf881a4bd745d601a043447842b9affc4ea7be98a1062905afa57d6cc462e9", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|50bf881a4bd745d601a043447842b9affc4ea7be98a1062905afa57d6cc462e9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.ubuntu16.04-manylinux2010"}, "region": {"startLine": 59}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28902, "scanner": "repobility-docker", "fingerprint": "b6b94bb1e0b788c4542118cd30c2d5395627aae28eeb5ecfc33f4827002b50c8", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|b6b94bb1e0b788c4542118cd30c2d5395627aae28eeb5ecfc33f4827002b50c8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.ubuntu16.04-manylinux2010"}, "region": {"startLine": 59}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28901, "scanner": "repobility-docker", "fingerprint": "1446a2bd96932cbb43ac399fe68ebc767b6ea14123b02ed12f9ef77ef0387509", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|1446a2bd96932cbb43ac399fe68ebc767b6ea14123b02ed12f9ef77ef0387509"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.ubuntu16.04-manylinux2010"}, "region": {"startLine": 14}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28899, "scanner": "repobility-docker", "fingerprint": "3e78317943356a508d0768c60f4ba7d06cabed932754f576abafdaea132d430c", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|3e78317943356a508d0768c60f4ba7d06cabed932754f576abafdaea132d430c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.3-cudnn9.1-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 21}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28897, "scanner": "repobility-docker", "fingerprint": "e66c510018557ef4786a831f9ae7b51a1bbd3edc409f673fd50ffa4cf4675a93", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e66c510018557ef4786a831f9ae7b51a1bbd3edc409f673fd50ffa4cf4675a93"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.3-cudnn8.9-ubuntu22.04-manylinux2014-multipython"}, "region": {"startLine": 21}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28895, "scanner": "repobility-docker", "fingerprint": "f83a0aab89a273bcb415d58353b118aeb9b429c06ab5486dada1c51b448f34d6", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|f83a0aab89a273bcb415d58353b118aeb9b429c06ab5486dada1c51b448f34d6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.3-cudnn8.9-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 21}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28893, "scanner": "repobility-docker", "fingerprint": "76f4fdca1fccae3dfca2d72916dac82b260264d5eadc2525fce00346b52d5532", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|76f4fdca1fccae3dfca2d72916dac82b260264d5eadc2525fce00346b52d5532"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.2-cudnn9.1-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 21}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28891, "scanner": "repobility-docker", "fingerprint": "260e45386fc0b529000f9a59f2c28e5abbbd1a4f0edf4d4b26933aea715eed4b", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|260e45386fc0b529000f9a59f2c28e5abbbd1a4f0edf4d4b26933aea715eed4b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.2-cudnn8.9-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 21}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28889, "scanner": "repobility-docker", "fingerprint": "77950fb3e0f992062e5045d51afc39d805aed4587e19a890ffb9168227a9b9d8", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|77950fb3e0f992062e5045d51afc39d805aed4587e19a890ffb9168227a9b9d8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.1-cudnn9.1-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 21}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28887, "scanner": "repobility-docker", "fingerprint": "738ebdab840e096dce4e0e49279da1afa91793fb80419e244a5e8b1f89ce3d0e", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|738ebdab840e096dce4e0e49279da1afa91793fb80419e244a5e8b1f89ce3d0e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda12.1-cudnn8.9-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 21}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28885, "scanner": "repobility-docker", "fingerprint": "5b9986d6ebb5638c0d461bebaf46a6b9b31cb7f199fb679e7ee19d8a46503f86", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|5b9986d6ebb5638c0d461bebaf46a6b9b31cb7f199fb679e7ee19d8a46503f86"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.rbe.cuda11.8-cudnn8.6-ubuntu20.04-manylinux2014-multipython"}, "region": {"startLine": 22}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28881, "scanner": "repobility-docker", "fingerprint": "7ffd363e5e066f182ca1acc83b3d492266617e9e2cd40ffbaaaaded51cde871e", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|7ffd363e5e066f182ca1acc83b3d492266617e9e2cd40ffbaaaaded51cde871e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.micro"}, "region": {"startLine": 24}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28880, "scanner": "repobility-docker", "fingerprint": "651f62033be4166d38931b74d453b99a1ed3df5f99ddc7eb92a41cd554760364", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|651f62033be4166d38931b74d453b99a1ed3df5f99ddc7eb92a41cd554760364"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.micro"}, "region": {"startLine": 22}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28879, "scanner": "repobility-docker", "fingerprint": "b0612d24df092b40f2eabb70f804fc1ad1ae0eae256c52c03db171faefddc306", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|b0612d24df092b40f2eabb70f804fc1ad1ae0eae256c52c03db171faefddc306"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.micro"}, "region": {"startLine": 15}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28878, "scanner": "repobility-docker", "fingerprint": "2cf1c05c98575fdc4439b5753c5972925e966f7e2773f54e3767809fd51e41cd", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|2cf1c05c98575fdc4439b5753c5972925e966f7e2773f54e3767809fd51e41cd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.micro"}, "region": {"startLine": 13}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28875, "scanner": "repobility-docker", "fingerprint": "b18852592950a4042de7b3667e7452e1dfa891016ac0e17f796374605c9999f1", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|b18852592950a4042de7b3667e7452e1dfa891016ac0e17f796374605c9999f1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.local-toolchain-ubuntu20.04-manylinux2014"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28873, "scanner": "repobility-docker", "fingerprint": "ca22108714b058c4605e71355e61bde2029fbe550d23223a7e0c961b80d990c0", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|ca22108714b058c4605e71355e61bde2029fbe550d23223a7e0c961b80d990c0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.local-toolchain-ubuntu18.04-manylinux2010"}, "region": {"startLine": 13}}}]}, {"ruleId": "DKR010", "level": "note", "message": {"text": "Dockerfile leaves apt package indexes in the image layer"}, "properties": {"repobilityId": 28870, "scanner": "repobility-docker", "fingerprint": "675716612df23d24b94f815ff2d511080c420ad2d6704ce95ece968ee7ca50af", "category": "docker", "severity": "low", "confidence": 0.74, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt update/install layer does not remove /var/lib/apt/lists.", "evidence": {"rule_id": "DKR010", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|675716612df23d24b94f815ff2d511080c420ad2d6704ce95ece968ee7ca50af"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.gpu"}, "region": {"startLine": 11}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28868, "scanner": "repobility-docker", "fingerprint": "704b7a3b79a070c85c2947300aa9f3499f60017e5566c0af40c68656e88c9f15", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|704b7a3b79a070c85c2947300aa9f3499f60017e5566c0af40c68656e88c9f15"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.debian.bullseye.cpu"}, "region": {"startLine": 23}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28866, "scanner": "repobility-docker", "fingerprint": "f7764023197cf9a4c7ce2ecb6410fba808bc50c65f2b87b24855273d9e8feec8", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|f7764023197cf9a4c7ce2ecb6410fba808bc50c65f2b87b24855273d9e8feec8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda11.2"}, "region": {"startLine": 58}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28865, "scanner": "repobility-docker", "fingerprint": "4665d6ea0196600d865c49002fbb4decfdf1d9f51e272ce8ab6b081f397a32c3", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|4665d6ea0196600d865c49002fbb4decfdf1d9f51e272ce8ab6b081f397a32c3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda11.2"}, "region": {"startLine": 58}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28864, "scanner": "repobility-docker", "fingerprint": "70fd62bf83645c9bc056fb19f123ab17cbe5bb0147ca94e9aea30f10ecca1df9", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|70fd62bf83645c9bc056fb19f123ab17cbe5bb0147ca94e9aea30f10ecca1df9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda11.2"}, "region": {"startLine": 38}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28863, "scanner": "repobility-docker", "fingerprint": "e4a6d4364381c603b58dd0e3e3de7b40978e6626ece3ffab0d89ce07c34c10c7", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e4a6d4364381c603b58dd0e3e3de7b40978e6626ece3ffab0d89ce07c34c10c7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda11.2"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28861, "scanner": "repobility-docker", "fingerprint": "683ef2fa64e72affbe3b3437e6855f3d3087727f3e9d728d7659b91e251b8426", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|683ef2fa64e72affbe3b3437e6855f3d3087727f3e9d728d7659b91e251b8426"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.1"}, "region": {"startLine": 58}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28860, "scanner": "repobility-docker", "fingerprint": "eb0ad70c0fd28b44c8d886fdd8d32ac807c37d39a3727b6fd902d1740228c692", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|eb0ad70c0fd28b44c8d886fdd8d32ac807c37d39a3727b6fd902d1740228c692"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.1"}, "region": {"startLine": 58}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28859, "scanner": "repobility-docker", "fingerprint": "9a51d1adcf4cd4d9ec9990c1e8eea32e6e1014b924fa0b94414cabb1ada1e0bb", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|9a51d1adcf4cd4d9ec9990c1e8eea32e6e1014b924fa0b94414cabb1ada1e0bb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.1"}, "region": {"startLine": 38}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28858, "scanner": "repobility-docker", "fingerprint": "f7f3844ad2c84406d2897cf516b4747602d0550c7c0c452ac17e49d3a32da4d2", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|f7f3844ad2c84406d2897cf516b4747602d0550c7c0c452ac17e49d3a32da4d2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.1"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28856, "scanner": "repobility-docker", "fingerprint": "260b9c54245ed7589e82a09525d63498e31db3fde941ba6cff84331bfe7889ab", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|260b9c54245ed7589e82a09525d63498e31db3fde941ba6cff84331bfe7889ab"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.0"}, "region": {"startLine": 56}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28855, "scanner": "repobility-docker", "fingerprint": "eb08d8950b94cf79db73c4aacc7a29be18484b18099fe474c6a197a018c845b2", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|eb08d8950b94cf79db73c4aacc7a29be18484b18099fe474c6a197a018c845b2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.0"}, "region": {"startLine": 56}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28854, "scanner": "repobility-docker", "fingerprint": "d2f7939ec0dcd7cc3da0bb6d8fd99fafdc2b2bb4ae3e0a35ab5baa68cad1d1f4", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|d2f7939ec0dcd7cc3da0bb6d8fd99fafdc2b2bb4ae3e0a35ab5baa68cad1d1f4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.0"}, "region": {"startLine": 38}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28853, "scanner": "repobility-docker", "fingerprint": "b945287df04129e9ed07a12bd8d2d734472376d9d52467d90d39bb81f14ea2d9", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|b945287df04129e9ed07a12bd8d2d734472376d9d52467d90d39bb81f14ea2d9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16_cuda10.0"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28851, "scanner": "repobility-docker", "fingerprint": "9235f80706293cb023ac16fbbe290cbad66ed8d18a9129e191ac4502fc3a2e60", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|9235f80706293cb023ac16fbbe290cbad66ed8d18a9129e191ac4502fc3a2e60"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16"}, "region": {"startLine": 56}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28850, "scanner": "repobility-docker", "fingerprint": "10395a109526800a8027671bee68936cf29ce9eb1daa3a5d781d2a61638a392c", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|10395a109526800a8027671bee68936cf29ce9eb1daa3a5d781d2a61638a392c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16"}, "region": {"startLine": 56}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28849, "scanner": "repobility-docker", "fingerprint": "b0fbceb015824b4aaac0e109a5d3d1475c3b35cfc9956fb93c02e10880957aee", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|b0fbceb015824b4aaac0e109a5d3d1475c3b35cfc9956fb93c02e10880957aee"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.custom_op_ubuntu_16"}, "region": {"startLine": 8}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28843, "scanner": "repobility-docker", "fingerprint": "d64b61bb04a0e3784c0cbe6cab4dfb23709da425b449a2b3a2709220dfc30fd7", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|d64b61bb04a0e3784c0cbe6cab4dfb23709da425b449a2b3a2709220dfc30fd7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cpu.arm64"}, "region": {"startLine": 12}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28838, "scanner": "repobility-docker", "fingerprint": "bc03513d28f86942cb800ef1e767e210cb3288ad3f44c86a3e93e155adaf184b", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|bc03513d28f86942cb800ef1e767e210cb3288ad3f44c86a3e93e155adaf184b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 34}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28837, "scanner": "repobility-docker", "fingerprint": "8f363e88e371998b02ed9fa7c864762772c85424877ab1b424487d6c89190398", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|8f363e88e371998b02ed9fa7c864762772c85424877ab1b424487d6c89190398"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 31}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28836, "scanner": "repobility-docker", "fingerprint": "b82ac589bdf7d4c9f4eecd86554b0d2a628cfabc884722f8ecc666cba4e3d9d2", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|b82ac589bdf7d4c9f4eecd86554b0d2a628cfabc884722f8ecc666cba4e3d9d2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 30}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28835, "scanner": "repobility-docker", "fingerprint": "db892413e740ebe168f89df54ad57caacaeb62a06f5999a2df4eacfa90dbcff8", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|db892413e740ebe168f89df54ad57caacaeb62a06f5999a2df4eacfa90dbcff8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 29}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28834, "scanner": "repobility-docker", "fingerprint": "355f2aff4b9fb001fce739681eb88c301b3893ea497f9f33c86302819b0e0689", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|355f2aff4b9fb001fce739681eb88c301b3893ea497f9f33c86302819b0e0689"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 28}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28833, "scanner": "repobility-docker", "fingerprint": "25bcfd5c6925361117ca829227b461df99d9cc9ad73d9edcc51589bbc1499e49", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|25bcfd5c6925361117ca829227b461df99d9cc9ad73d9edcc51589bbc1499e49"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 27}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28832, "scanner": "repobility-docker", "fingerprint": "40a3d73ab03af748beab1702686aa44106d81635cbd229ddb6be93a6b137f1f8", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|40a3d73ab03af748beab1702686aa44106d81635cbd229ddb6be93a6b137f1f8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.cmake"}, "region": {"startLine": 26}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28829, "scanner": "repobility-docker", "fingerprint": "fded61ada076715cd45dd846afa22b286b3e25c98612995e7a15ec4bdbe1ed24", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|fded61ada076715cd45dd846afa22b286b3e25c98612995e7a15ec4bdbe1ed24"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/Dockerfile.android"}, "region": {"startLine": 17}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28827, "scanner": "repobility-docker", "fingerprint": "266b8d3b5e108e21aea46c1a1c44b1f8a90ea63576505f4823517ec1f97bdb04", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|266b8d3b5e108e21aea46c1a1c44b1f8a90ea63576505f4823517ec1f97bdb04"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/tools/pip_package/Dockerfile.py3"}, "region": {"startLine": 43}}}]}, {"ruleId": "DKR010", "level": "note", "message": {"text": "Dockerfile leaves apt package indexes in the image layer"}, "properties": {"repobilityId": 28826, "scanner": "repobility-docker", "fingerprint": "39cefa5f4e9432bb944380523036483f0d025c04468c1ec6b3d5a5513f553bf2", "category": "docker", "severity": "low", "confidence": 0.74, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt update/install layer does not remove /var/lib/apt/lists.", "evidence": {"rule_id": "DKR010", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|39cefa5f4e9432bb944380523036483f0d025c04468c1ec6b3d5a5513f553bf2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/tools/pip_package/Dockerfile.py3"}, "region": {"startLine": 43}}}]}, {"ruleId": "DKR011", "level": "note", "message": {"text": "Dockerfile installs recommended OS packages"}, "properties": {"repobilityId": 28825, "scanner": "repobility-docker", "fingerprint": "e79d63755f30e3e8edd52cd0d23ac5dea07df30e1637b1bb919ed41b25c4ea3e", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt install appears without --no-install-recommends.", "evidence": {"rule_id": "DKR011", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|e79d63755f30e3e8edd52cd0d23ac5dea07df30e1637b1bb919ed41b25c4ea3e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/tools/pip_package/Dockerfile.py3"}, "region": {"startLine": 23}}}]}, {"ruleId": "DKR010", "level": "note", "message": {"text": "Dockerfile leaves apt package indexes in the image layer"}, "properties": {"repobilityId": 28824, "scanner": "repobility-docker", "fingerprint": "1a69ac759c6835d8b53278fae19c428a444f2bc2254481c0ae74751e0cdb82b6", "category": "docker", "severity": "low", "confidence": 0.74, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "apt update/install layer does not remove /var/lib/apt/lists.", "evidence": {"rule_id": "DKR010", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|1a69ac759c6835d8b53278fae19c428a444f2bc2254481c0ae74751e0cdb82b6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/tools/pip_package/Dockerfile.py3"}, "region": {"startLine": 23}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28819, "scanner": "repobility-docker", "fingerprint": "f52a60d76dc274ab0d06a23eb42e58aee35d7d66f1ac15964afa27267497806e", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|f52a60d76dc274ab0d06a23eb42e58aee35d7d66f1ac15964afa27267497806e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ci/devinfra/docker/windows2022/Dockerfile"}, "region": {"startLine": 73}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28816, "scanner": "repobility-docker", "fingerprint": "9a1db8eff7ddd92d67e52dae1fed5138eb777fa337a07f284cb932abda2a6785", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|9a1db8eff7ddd92d67e52dae1fed5138eb777fa337a07f284cb932abda2a6785"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ci/devinfra/docker/windows/Dockerfile"}, "region": {"startLine": 104}}}]}, {"ruleId": "DKR012", "level": "note", "message": {"text": "Dockerfile keeps pip download cache"}, "properties": {"repobilityId": 28815, "scanner": "repobility-docker", "fingerprint": "e561ef811885a1e6965dabc98c8c04d7d59f42b5bd4525a4b4997fdcddc5d0fc", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "pip install appears without --no-cache-dir.", "evidence": {"rule_id": "DKR012", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|e561ef811885a1e6965dabc98c8c04d7d59f42b5bd4525a4b4997fdcddc5d0fc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ci/devinfra/docker/windows/Dockerfile"}, "region": {"startLine": 84}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28813, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b4cb6cec5e5ff0bfa9e24ea057905ea4edf27b68b996ec95c66a022fea6e10ea", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_validate_arguments", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/ops/signal/mel_ops.py", "correlation_key": "fp|b4cb6cec5e5ff0bfa9e24ea057905ea4edf27b68b996ec95c66a022fea6e10ea"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_generator_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28812, "scanner": "repobility-ai-code-hygiene", "fingerprint": "078bc544b7ae6fa6d534c438c4352644cef913093dce2c62ef87db8220868fed", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_make_execution_function", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/keras/engine/training_arrays_v1.py", "correlation_key": "fp|078bc544b7ae6fa6d534c438c4352644cef913093dce2c62ef87db8220868fed"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/distribute/distributed_training_utils_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28811, "scanner": "repobility-ai-code-hygiene", "fingerprint": "97c97fb7561ed76aadbf18c01eeddc642678a70309ade281bd1ffa078b03f20d", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_is_symbolic_tensor", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/keras/backend.py", "correlation_key": "fp|97c97fb7561ed76aadbf18c01eeddc642678a70309ade281bd1ffa078b03f20d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28810, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9d26bef49a5aea6964ae1ece152244b4c2313316b66742cb0f86f4049e0836b5", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_get_num_samples_or_steps", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/keras/engine/training_generator_v1.py", "correlation_key": "fp|9d26bef49a5aea6964ae1ece152244b4c2313316b66742cb0f86f4049e0836b5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_arrays_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28809, "scanner": "repobility-ai-code-hygiene", "fingerprint": "7e15631a31a93dd8f3d55b41b55507cb1fde024b16487726824ba3ba0da72059", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_fill_object_graph_proto", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/checkpoint/save_util.py", "correlation_key": "fp|7e15631a31a93dd8f3d55b41b55507cb1fde024b16487726824ba3ba0da72059"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/checkpoint/save_util_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28808, "scanner": "repobility-ai-code-hygiene", "fingerprint": "93415cb564e213712be071aa0ffa34fdba53b7365bd423522a7d45ceacfe1b72", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_deduplicate_indexed_slices", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/training/optimizer.py", "correlation_key": "fp|93415cb564e213712be071aa0ffa34fdba53b7365bd423522a7d45ceacfe1b72"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/optimizer_v2/optimizer_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28807, "scanner": "repobility-ai-code-hygiene", "fingerprint": "37df426cca777e8c846eeec379e07a66ee00a5197e3c1dafd101598499155ccb", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_copy_handle_data", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/ops/while_v2.py", "correlation_key": "fp|37df426cca777e8c846eeec379e07a66ee00a5197e3c1dafd101598499155ccb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/cond_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28806, "scanner": "repobility-ai-code-hygiene", "fingerprint": "c4011901450fe486a9cdb5ad62d192d786fc0923d2802501ee2f25afd71d80b7", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_compute_gradient", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/ops/gradient_checker.py", "correlation_key": "fp|c4011901450fe486a9cdb5ad62d192d786fc0923d2802501ee2f25afd71d80b7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/gradient_checker_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28805, "scanner": "repobility-ai-code-hygiene", "fingerprint": "7924200e9c4ae5992a87f8d229570d89f9c78248e46301a1dab251eaaf1721fa", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_check_shape", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/feature_column/feature_column.py", "correlation_key": "fp|7924200e9c4ae5992a87f8d229570d89f9c78248e46301a1dab251eaaf1721fa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/feature_column/feature_column_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 28804, "scanner": "repobility-ai-code-hygiene", "fingerprint": "d8cd2249c3f3de6837e5ab4f3836acfd773cdb25c1247811af1b0d8791d15c11", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "_assert_float_dtype", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "tensorflow/python/ops/init_ops.py", "correlation_key": "fp|d8cd2249c3f3de6837e5ab4f3836acfd773cdb25c1247811af1b0d8791d15c11"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/initializers/initializers_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28803, "scanner": "repobility-ai-code-hygiene", "fingerprint": "86c9499c30862ba2edd0e6a4423d89106020c63784926671af67a6de8ef6f11e", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/cc/framework/cc_op_gen.h", "duplicate_line": 1, "correlation_key": "fp|86c9499c30862ba2edd0e6a4423d89106020c63784926671af67a6de8ef6f11e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/framework/fuzzing/cc_op_fuzz_gen.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28802, "scanner": "repobility-ai-code-hygiene", "fingerprint": "8c0d65a05294407575322e9292886cbc76959e7195297ee9c9a483c3504dd87a", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/cc/framework/cc_op_gen.h", "duplicate_line": 1, "correlation_key": "fp|8c0d65a05294407575322e9292886cbc76959e7195297ee9c9a483c3504dd87a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/framework/cc_op_gen_util.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28801, "scanner": "repobility-ai-code-hygiene", "fingerprint": "868de1dcaf6c30739a9192d6aaa4a87bd106fabbafd943a2977ea81c255f2532", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/cc/experimental/libexport/load.h", "duplicate_line": 1, "correlation_key": "fp|868de1dcaf6c30739a9192d6aaa4a87bd106fabbafd943a2977ea81c255f2532"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/experimental/libexport/save.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28800, "scanner": "repobility-ai-code-hygiene", "fingerprint": "8df66843834b0134f778fdf72afc4ce457c5843d5556f54b35f83dd142b6328c", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/cc/experimental/base/public/runtime.h", "duplicate_line": 1, "correlation_key": "fp|8df66843834b0134f778fdf72afc4ce457c5843d5556f54b35f83dd142b6328c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/experimental/base/public/tensorhandle.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28799, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3f40b704e08b2bfb9d24a3106af282f48dfed28ae80cff12c43e363c09b2f606", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/cc/experimental/base/public/runtime.h", "duplicate_line": 1, "correlation_key": "fp|3f40b704e08b2bfb9d24a3106af282f48dfed28ae80cff12c43e363c09b2f606"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/experimental/base/public/tensor.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28798, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e7344f36c95df40e77575c8c80d02c3ffa09f04ed906c4d9de2c4a4a8fed6c7c", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/cc/experimental/base/public/runtime.h", "duplicate_line": 1, "correlation_key": "fp|e7344f36c95df40e77575c8c80d02c3ffa09f04ed906c4d9de2c4a4a8fed6c7c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/experimental/base/public/status.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28797, "scanner": "repobility-ai-code-hygiene", "fingerprint": "54abe4be21bbf2e7dd5f8f0892340fc22fa0ec6f0f3ef2f8fe102c6c16483cec", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/cc/experimental/base/public/runtime.h", "duplicate_line": 1, "correlation_key": "fp|54abe4be21bbf2e7dd5f8f0892340fc22fa0ec6f0f3ef2f8fe102c6c16483cec"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/experimental/base/public/runtime_builder.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28796, "scanner": "repobility-ai-code-hygiene", "fingerprint": "672dff12dafc1650fed471bd27cfbbcd82f1bb9d7dd0b63b90fe9dde80562de0", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/experimental/saved_model/core/ops/restore_ops.h", "duplicate_line": 1, "correlation_key": "fp|672dff12dafc1650fed471bd27cfbbcd82f1bb9d7dd0b63b90fe9dde80562de0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/saved_model/core/saved_model_utils.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28795, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e6294bf227b8bfa4ff3cf38d229bca1bdb188f7b556a2ed1a3620c1405b48e74", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/experimental/saved_model/core/ops/restore_ops.h", "duplicate_line": 1, "correlation_key": "fp|e6294bf227b8bfa4ff3cf38d229bca1bdb188f7b556a2ed1a3620c1405b48e74"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/saved_model/core/ops/variable_ops.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28794, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0ecb4d8a34e6c4f4c9aaa692a8715837acf333bb857124e1ccc08efc694ae767", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/experimental/ops/array_ops.h", "duplicate_line": 1, "correlation_key": "fp|0ecb4d8a34e6c4f4c9aaa692a8715837acf333bb857124e1ccc08efc694ae767"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/ops/resource_variable_ops.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28793, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f535a05fb0d92013a5bee5631d696e1f53e26a89fda4fef1d7e990b13c2ec58f", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/experimental/ops/array_ops.h", "duplicate_line": 1, "correlation_key": "fp|f535a05fb0d92013a5bee5631d696e1f53e26a89fda4fef1d7e990b13c2ec58f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/ops/nn_ops.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28792, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b016bfba9d650d76a4bb2cd63f1748a7cb6ac7f5679f721d315c19de6a72c8bc", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/experimental/ops/array_ops.h", "duplicate_line": 1, "correlation_key": "fp|b016bfba9d650d76a4bb2cd63f1748a7cb6ac7f5679f721d315c19de6a72c8bc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/ops/math_ops.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28791, "scanner": "repobility-ai-code-hygiene", "fingerprint": "d024c44375d0e2978409d5f3e37a4dc28be3ad9b80c592c1d617bf656aaefec8", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/experimental/ops/array_ops.h", "duplicate_line": 1, "correlation_key": "fp|d024c44375d0e2978409d5f3e37a4dc28be3ad9b80c592c1d617bf656aaefec8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/ops/io_ops.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28790, "scanner": "repobility-ai-code-hygiene", "fingerprint": "01cd58169e26c2794b2adf5fd2346bfdfca08b9986f44aa249500f6580a5bdfe", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|01cd58169e26c2794b2adf5fd2346bfdfca08b9986f44aa249500f6580a5bdfe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/tape/tape_operation.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28789, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ceb2dd5b5edd5904d750ec35d16f4941098713bf239b06d94aa3f6657b27a4ac", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|ceb2dd5b5edd5904d750ec35d16f4941098713bf239b06d94aa3f6657b27a4ac"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/tape/tape_context.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28788, "scanner": "repobility-ai-code-hygiene", "fingerprint": "7a0f2ab8ea37ef6e08a316560dd5f69c8595498596fa606cdae54ae3a5777ee0", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|7a0f2ab8ea37ef6e08a316560dd5f69c8595498596fa606cdae54ae3a5777ee0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/not_differentiable.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28787, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9891d3f3268466d46c53efea9d53fdc2ef437a26f07feb027e53c3b73b471171", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|9891d3f3268466d46c53efea9d53fdc2ef437a26f07feb027e53c3b73b471171"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/nn_grad.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28786, "scanner": "repobility-ai-code-hygiene", "fingerprint": "6c1ce04255931f3c26affe5810354ddb744dae82b024c9efbe250950e682f2df", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|6c1ce04255931f3c26affe5810354ddb744dae82b024c9efbe250950e682f2df"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/math_grad.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28785, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f406747e1e1bf6077fcf378890029e6f91f6b3c64657bc88d5e2679df53d402b", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradients_internal.h", "duplicate_line": 2, "correlation_key": "fp|f406747e1e1bf6077fcf378890029e6f91f6b3c64657bc88d5e2679df53d402b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/grad_test_helper.h"}, "region": {"startLine": 2}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28784, "scanner": "repobility-ai-code-hygiene", "fingerprint": "176a5fc98aa7b55ac4674657b16c39aee9590d7aa5f1fae317a6f718d195bd61", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|176a5fc98aa7b55ac4674657b16c39aee9590d7aa5f1fae317a6f718d195bd61"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/grad_test_helper.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28783, "scanner": "repobility-ai-code-hygiene", "fingerprint": "533cc5ad22ac782266bc06685fe9b80e167d686bc692ccde8a6a88b805ab7191", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|533cc5ad22ac782266bc06685fe9b80e167d686bc692ccde8a6a88b805ab7191"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/experimental/gradients/array_grad.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28782, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0cf0af2ffeaad16f016c57ed60e5e7d011f23e256f8ec030dce8dcbc67144bbc", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/graph_function.h", "duplicate_line": 1, "correlation_key": "fp|0cf0af2ffeaad16f016c57ed60e5e7d011f23e256f8ec030dce8dcbc67144bbc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/eager/tracing_utils.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28781, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1e26ec1e5794bac71e1c76f3e4daa903e031cf9d7aa0b133f42a78fcfc99692c", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/parallel_device/parallel_device.h", "duplicate_line": 1, "correlation_key": "fp|1e26ec1e5794bac71e1c76f3e4daa903e031cf9d7aa0b133f42a78fcfc99692c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/eager/parallel_device/parallel_device_testlib.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28780, "scanner": "repobility-ai-code-hygiene", "fingerprint": "81666763bfe08f0d0d9f75e0c334eabc9ca21b51e501e50842bb3fd833eccf3d", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/parallel_device/parallel_device.h", "duplicate_line": 1, "correlation_key": "fp|81666763bfe08f0d0d9f75e0c334eabc9ca21b51e501e50842bb3fd833eccf3d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/eager/parallel_device/parallel_device_lib.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28779, "scanner": "repobility-ai-code-hygiene", "fingerprint": "d244ae60358370e6ace58085597272d5c6862cbb95fb04ac6a74735ddab75ee9", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|d244ae60358370e6ace58085597272d5c6862cbb95fb04ac6a74735ddab75ee9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/eager/gradients_internal.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28778, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5dd7043c8d344319465d865b8270e6a15f3db39d7a4831d3807bd0e97afcd533", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/c/eager/gradient_checker.h", "duplicate_line": 1, "correlation_key": "fp|5dd7043c8d344319465d865b8270e6a15f3db39d7a4831d3807bd0e97afcd533"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/c/eager/gradients.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28777, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ba2f0e4b9c37e76e2160d1fcfbfe4edb004444ec999bd8b515e34f689238d51d", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/api_template.__init__.py", "duplicate_line": 59, "correlation_key": "fp|ba2f0e4b9c37e76e2160d1fcfbfe4edb004444ec999bd8b515e34f689238d51d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/api_template_v1.__init__.py"}, "region": {"startLine": 89}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28776, "scanner": "repobility-ai-code-hygiene", "fingerprint": "49395f688e023de3d0740fb2511451f105937b91ad8ada7d5d75bd43225744b2", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/python/keras/initializers/initializers_v2.py", "duplicate_line": 47, "correlation_key": "fp|49395f688e023de3d0740fb2511451f105937b91ad8ada7d5d75bd43225744b2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/init_ops_v2.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28775, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1c72c99f8d6fb9a54954f322d24d66dab0e99c0b3e164758fbae9d3f1761405f", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/python/keras/engine/training_arrays_v1.py", "duplicate_line": 206, "correlation_key": "fp|1c72c99f8d6fb9a54954f322d24d66dab0e99c0b3e164758fbae9d3f1761405f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_generator_v1.py"}, "region": {"startLine": 172}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 28774, "scanner": "repobility-ai-code-hygiene", "fingerprint": "80e15251ec8784bfd06fca05404a77b3906e3aec167a2cec9d694af5249727cf", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "tensorflow/python/keras/engine/training_arrays_v1.py", "duplicate_line": 422, "correlation_key": "fp|80e15251ec8784bfd06fca05404a77b3906e3aec167a2cec9d694af5249727cf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_distributed_v1.py"}, "region": {"startLine": 430}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28772, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ce8f1452ebfc23b2ae277dfb0defab6bf099e0024e41d13584146c0f7e2696f0", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v2", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|ce8f1452ebfc23b2ae277dfb0defab6bf099e0024e41d13584146c0f7e2696f0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/ops/summary_ops_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28767, "scanner": "repobility-ai-code-hygiene", "fingerprint": "bd896430da13f13f54ad4247ddbec3323741923f40f5d34a0b8d2c5f1d6c152c", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v2", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|bd896430da13f13f54ad4247ddbec3323741923f40f5d34a0b8d2c5f1d6c152c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/optimizer_v2/optimizer_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28766, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5fccb11b4ee9cc389b8703b317092f4aa0380d075ecd5ac772b56a954b403a75", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v2", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|5fccb11b4ee9cc389b8703b317092f4aa0380d075ecd5ac772b56a954b403a75"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/layers/rnn_cell_wrapper_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28765, "scanner": "repobility-ai-code-hygiene", "fingerprint": "a5a2ff4d4fe996936b9c211bf8fb6dc488db1d6f76caa3f8be66f53345510507", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v1", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|a5a2ff4d4fe996936b9c211bf8fb6dc488db1d6f76caa3f8be66f53345510507"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/initializers/initializers_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28763, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b208943a0a3cd1ff170ce5ecc7fb81c24c902cd60b6194c75c56aa85d95d4963", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v1", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|b208943a0a3cd1ff170ce5ecc7fb81c24c902cd60b6194c75c56aa85d95d4963"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_generator_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28762, "scanner": "repobility-ai-code-hygiene", "fingerprint": "02ef5f35801ff83adf3117221274be493ecb9fb54125531e88ed7a83fabbafcf", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v1", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|02ef5f35801ff83adf3117221274be493ecb9fb54125531e88ed7a83fabbafcf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_eager_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28761, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5e0313c15ec3d10c298c6a1937be3e8c0129522dcd6ec79441c203204e1b9be5", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v1", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|5e0313c15ec3d10c298c6a1937be3e8c0129522dcd6ec79441c203204e1b9be5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_distributed_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28760, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5d1e35f3b2341e6f8e122ab1c344826342c2b36d5ea2b924633f18c67b7a71f1", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v1", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|5d1e35f3b2341e6f8e122ab1c344826342c2b36d5ea2b924633f18c67b7a71f1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/engine/training_arrays_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28756, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f71d0da63849dccc8ee9532d949257ca1ae59c5f9e82e054979ec8f157cd7eca", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v1", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|f71d0da63849dccc8ee9532d949257ca1ae59c5f9e82e054979ec8f157cd7eca"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/python/keras/optimizer_v1.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28749, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1a15fff8a78dd602f19ecc5f8450236515ad66e67a5cf7995abd583f3fbf56e6", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "update", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|1a15fff8a78dd602f19ecc5f8450236515ad66e67a5cf7995abd583f3fbf56e6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/testing/op_tests/tensor_scatter_update.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28748, "scanner": "repobility-ai-code-hygiene", "fingerprint": "74510232fb0c17ce52496cb3121043050131264cc51a4b7ec3656ce2a0a4f996", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v2", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|74510232fb0c17ce52496cb3121043050131264cc51a4b7ec3656ce2a0a4f996"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/testing/op_tests/static_rnn_with_control_flow_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28747, "scanner": "repobility-ai-code-hygiene", "fingerprint": "4cd37ae98886875aea9b50bea074d56faddd8aa4b1a4206a7a4b8036424890d7", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v2", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|4cd37ae98886875aea9b50bea074d56faddd8aa4b1a4206a7a4b8036424890d7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/testing/op_tests/reverse_v2.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28746, "scanner": "repobility-ai-code-hygiene", "fingerprint": "369494a7b7bdaa068f8f38b0a42e9f648d459d9967686cbdfd12236da520461d", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v2", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|369494a7b7bdaa068f8f38b0a42e9f648d459d9967686cbdfd12236da520461d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/delegates/gpu/common/tasks/select_v2.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28745, "scanner": "repobility-ai-code-hygiene", "fingerprint": "fd0270b9c10865d823a9785eb9d8861116710184c4f9a43544fb5fbbcd6337b9", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "rewrite", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|fd0270b9c10865d823a9785eb9d8861116710184c4f9a43544fb5fbbcd6337b9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/core/tpu/tpu_embedding_configuration_proto_rewrite.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 28743, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3518374914cd13835a7b31fa541c117580ec7ab1ac7006bdf3f3a368f6dfaac5", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "v2", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|3518374914cd13835a7b31fa541c117580ec7ab1ac7006bdf3f3a368f6dfaac5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/cc/saved_model/bundle_v2.h"}, "region": {"startLine": 1}}}]}, {"ruleId": "DKR002", "level": "none", "message": {"text": "Dockerfile base image is selected through a build variable"}, "properties": {"repobilityId": 28914, "scanner": "repobility-docker", "fingerprint": "2ab34a4712bdb0eb969b98eb1d27a827f0edf7c7909b2bd2ed03da5004b4f6d7", "category": "docker", "severity": "info", "confidence": 0.48, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Base image contains a variable; manual review is needed to avoid false positives.", "evidence": {"image": "${ROOT_CONTAINER}:${ROOT_CONTAINER_TAG}", "rule_id": "DKR002", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://docs.docker.com/scout/policy/"], "correlation_key": "fp|2ab34a4712bdb0eb969b98eb1d27a827f0edf7c7909b2bd2ed03da5004b4f6d7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/tools/ci_build/linux/mkl/Dockerfile.devel-mkl"}, "region": {"startLine": 4}}}]}, {"ruleId": "DKR002", "level": "none", "message": {"text": "Dockerfile base image is selected through a build variable"}, "properties": {"repobilityId": 28823, "scanner": "repobility-docker", "fingerprint": "6c44504125dadaaf3b985c4d05e27049f40f335c8e08a2ad24da4ccb84949bd9", "category": "docker", "severity": "info", "confidence": 0.48, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Base image contains a variable; manual review is needed to avoid false positives.", "evidence": {"image": "${IMAGE}", "rule_id": "DKR002", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://docs.docker.com/scout/policy/"], "correlation_key": "fp|6c44504125dadaaf3b985c4d05e27049f40f335c8e08a2ad24da4ccb84949bd9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/lite/tools/pip_package/Dockerfile.py3"}, "region": {"startLine": 16}}}]}, {"ruleId": "DKR002", "level": "none", "message": {"text": "Dockerfile base image is selected through a build variable"}, "properties": {"repobilityId": 28821, "scanner": "repobility-docker", "fingerprint": "7c295c6160118c5940f03a665515c4837c2c09fc6e39407970bb2cdbeb565b89", "category": "docker", "severity": "info", "confidence": 0.48, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Base image contains a variable; manual review is needed to avoid false positives.", "evidence": {"image": "$BASE_IMAGE", "rule_id": "DKR002", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://docs.docker.com/scout/policy/"], "correlation_key": "fp|7c295c6160118c5940f03a665515c4837c2c09fc6e39407970bb2cdbeb565b89"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ci/official/containers/ml_build/Dockerfile"}, "region": {"startLine": 3}}}]}, {"ruleId": "SEC014", "level": "none", "message": {"text": "[SEC014] SSL Verification Disabled (and 4 more): Same pattern found in 4 additional files. Review if needed."}, "properties": {"repobilityId": 28742, "scanner": "repobility-threat-engine", "fingerprint": "e8cecd630c8992a7d1cb5dfa4238e43bfa856f656ea6b70e7c1fbe7657f072eb", "category": "crypto", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 4 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 4 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC014", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|e8cecd630c8992a7d1cb5dfa4238e43bfa856f656ea6b70e7c1fbe7657f072eb"}}}, {"ruleId": "SEC020", "level": "none", "message": {"text": "[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for troubleshooting."}, "properties": {"repobilityId": 28738, "scanner": "repobility-threat-engine", "fingerprint": "5c95b3fc59c36a652a71bd5d6df82b3b830e1b5984377d163b0a755e48e83153", "category": "credential_exposure", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe context pattern detected", "evidence": {"match": "print(os, config.op_printing_flags)", "reason": "Safe context pattern detected", "rule_id": "SEC020", "scanner": "repobility-threat-engine", "confidence": 0.1, "correlation_key": "secret|token|9|print os config.op_printing_flags"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tensorflow/compiler/mlir/tensorflow/utils/dump_graph.cc"}, "region": {"startLine": 96}}}]}, {"ruleId": "SEC020", "level": "none", "message": {"text": "[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for troubleshooting."}, "properties": {"repobilityId": 28737, "scanner": "repobility-threat-engine", "fingerprint": "7a5a365cb207171e3c618603434d9c4770878497494745180ca2fce1943a6c9a", "category": "credential_exposure", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe context pattern detected", "evidence": {"match": "print(sysconfig.get_path(\"purelib\")", "reason": "Safe context pattern detected", "rule_id": "SEC020", "scanner": "repobility-threat-engine", "confidence": 0.1, "correlation_key": "secret|configure.py|16|print sysconfig.get_path purelib"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "configure.py"}, "region": {"startLine": 163}}}]}]}]}