)]}'
{
  "commit": "4b51afc32e8684dcb0e625f04d5e63fe2cc36414",
  "tree": "83bfc5228cf3fde70e05a4f73e45dc9ec3477921",
  "parents": [
    "8556f5eae3e85a292babf3dfb7121a14173655cf"
  ],
  "author": {
    "name": "benyu",
    "email": "benyu@google.com",
    "time": "Sat Aug 15 01:11:51 2026"
  },
  "committer": {
    "name": "Error Prone Team",
    "email": "error-prone-team+copybara@google.com",
    "time": "Sat Aug 15 02:21:21 2026"
  },
  "message": "Add Redos static analysis utility to labs.regex and RedosVulnerability Error Prone checker\n\nImplements static AST analysis on RegexPattern to detect Regular Expression Denial of Service (ReDoS) / catastrophic backtracking vulnerabilities.\n\nFeatures:\n- Functional Stream-based and IntStream-based AST traversal returning ImmutableList\u003cFinding\u003e with flatMap().\n- Synthesizes the culprit attack witness input string and formula using StringFormat template and Substring.all().replaceAllFrom().\n- Detects nested unbounded quantifiers, overlapping alternations, adjacent overlapping quantifiers, and optional element overlaps.\n- Guards against false positives on possessive quantifiers, bounded limits, and disjoint delimiters.\n- Adds Error Prone BugChecker RedosVulnerability extending AbstractPatternSyntaxChecker, generating RedosVulnerability_refactoring for flumejavac / JavacFlume.\n- Comprehensive test coverage including unit tests, mutation testing (100% kill score), property-based AST and regex grammar fuzzer tests in RedosFuzzTest, and RedosVulnerabilityTest.\n- Tests written with TestParameterInjector, Truth assertThat(), and JUnit4.\nPiperOrigin-RevId: 964990494\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45a8f3cee3b757019d7d334582715ba1e0fcfc5b",
      "new_mode": 33188,
      "new_path": "core/src/main/java/com/google/errorprone/bugpatterns/RedosVulnerability.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07631181a8e844adfb0c477b1f9c2fbe49562cf3",
      "new_mode": 33188,
      "new_path": "core/src/test/java/com/google/errorprone/bugpatterns/RedosVulnerabilityTest.java"
    }
  ]
}
