Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 8, 2025

Schema Validation Against Sample Data - PR Review Fixes Applied ✅

All feedback from PR review has been addressed.


✅ Changes Made (Based on Review Comments)

1. Fixed Spelling Errors

  • VALIDATION_README.md line 84: "goverment" → "government"
  • FIELD_MAPPING.md lines 149-151: "goverment" → "government" (3 occurrences)

2. Improved Exception Handling

  • validate_schemas.py line 149: Changed broad except Exception to specific exceptions
    • Now catches: IOError, csv.Error, UnicodeDecodeError
    • Allows critical exceptions like KeyboardInterrupt to propagate

3. Fixed Mermaid Field Extraction

  • validate_schemas.py lines 81-84: Added field name validation
    • Now validates field names start with letter: ^[A-Za-z]\w*$
    • Prevents invalid fields like "8" from being extracted
    • Result: Field count reduced from 46 to 45 (politician), 43 to 42 (party)
    • Total mismatches: Reduced from 127 to 125

4. Removed Unused Imports

  • validate_schemas.py line 15: Removed unused os import
  • validate_schemas.py line 21: Removed unused Set from typing imports

5. Added Explanatory Comment

  • validate_schemas.py line 96: Added comment explaining silent exception pass
    • "Skip invalid JSON examples in markdown"

6. Fixed String Concatenation

  • validate_schemas.py lines 378-379: Fixed implicit string concatenation
    • Added explicit commas between strings in report generation

7. Workflow Optimization

  • validate-json-schemas.yml lines 38-43: Removed unnecessary steps
    • Removed cache: 'pip' option (no dependencies to cache)
    • Removed "Install dependencies" step
    • Added comment: "No dependencies to install - script uses only Python standard library"
  • validate-json-schemas.yml line 54: Added explanatory comment
    • Explains why continue-on-error: true is needed for artifact upload

✅ Validation Results (After Fixes)

  • Schemas Validated: 5 of 5 (100%)
  • Sample Files Analyzed: 132 of 142 (93%)
  • Total Field Mismatches: 125 (reduced from 127)
  • Invalid "8" field: ❌ Eliminated

Field Count Changes:

Schema Before After Change
Politician 46 45 -1 (removed "8")
Party 43 42 -1 (removed "8")
Committee 26 26 No change
Ministry 29 29 No change
Intelligence 0 0 No change

🧪 Testing

Validated all changes:

# Syntax check
python3 -m py_compile json-export-specs/validate_schemas.py
✓ Python syntax valid

# Full validation run
cd json-export-specs && python3 validate_schemas.py
✓ 5 schemas validated
✓ 132 files analyzed
✓ Reports generated successfully
✓ No invalid field "8" in results
✓ Total mismatches: 125 (improved)

📝 Files Modified

  • .github/workflows/validate-json-schemas.yml (8 lines changed)
  • json-export-specs/FIELD_MAPPING.md (6 lines changed)
  • json-export-specs/VALIDATION_README.md (2 lines changed)
  • json-export-specs/validate_schemas.py (20 lines changed)
  • json-export-specs/schemas/SCHEMA_VALIDATION_REPORT.md (regenerated)
  • json-export-specs/schemas/validation-results.json (regenerated)

Status: ✅ ALL REVIEW COMMENTS ADDRESSED
Quality: ✅ CODE REVIEW FEEDBACK IMPLEMENTED
Testing: ✅ VALIDATED AND WORKING

Original prompt

This section details on the original issue you should resolve

<issue_title>Validate JSON Schemas Against Real Sample Data</issue_title>
<issue_description>## 🎯 Objective
Validate 5 JSON export schemas against 142 real sample data CSV files to ensure correctness

📋 Background

JSON export specifications define schemas for politician, party, committee, ministry, and intelligence data per json-export-specs/. These schemas need validation against actual sample data to ensure accurate data model representation.

📊 Current State (Measured Metrics)

  • JSON Schemas: 5 defined (politician-schema.md, party-schema.md, committee-schema.md, ministry-schema.md, intelligence-schema.md)
  • Sample Data Files: 142 CSV files in service.data.impl/sample-data/
  • Schema Validation: Not performed - schemas based on documentation only
  • Data Model Accuracy: Unknown - requires verification

✅ Acceptance Criteria

  • Automated validation script comparing JSON schemas to sample data structure
  • All 5 schemas validated against corresponding CSV files
  • Mismatches between schemas and data documented
  • Schemas updated to reflect actual data structure
  • Continuous validation integrated into CI/CD pipeline

🤖 Recommended Agent

Agent: @hack23-performance-engineer
Rationale: Schema validation and data pipeline optimization expertise

📚 Related Documentation

Comments on the Issue (you are @copilot in this section)

Custom agent used: intelligence-operative
Expert in political science, intelligence analysis, OSINT, behavioral analysis, and Swedish politics with focus on exposing high risk national entities


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI changed the title [WIP] Validate JSON schemas against real sample data Automated JSON Schema Validation Against Sample Data Dec 8, 2025
Copilot AI requested a review from pethers December 8, 2025 11:22
@github-actions
Copy link

github-actions bot commented Dec 8, 2025

📊 JSON Schema Validation Results

Validation Summary:

  • ⏰ Generated: 2025-12-08T11:15:06.392882+00:00
  • 📋 Schemas Validated: 5
  • 📁 Sample Files Analyzed: 132
  • ⚠️ Total Mismatches: 127

Schema Status

Schema Fields Views Matched Mismatches Status
Politician 46 7 35 ⚠️ REVIEW
Party 43 11 40 ⚠️ REVIEW
Committee 26 10 24 ⚠️ REVIEW
Ministry 29 2 28 ⚠️ REVIEW
Intelligence 0 4 0 ✅ PASS

📄 Full Report: See uploaded artifacts for detailed validation report

⚠️ Action Required: Please review the field mismatches and update schemas to match actual data structure.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements automated validation of 5 JSON export schemas against 142 CSV sample data files to detect schema-data mismatches and ensure correctness. The solution includes a Python validation script (506 lines), GitHub Actions workflow for CI/CD integration, and comprehensive documentation.

Key Changes:

  • Automated Python validation engine with flexible field matching and type inference
  • CI/CD integration via GitHub Actions (daily runs, PR checks, manual dispatch)
  • Generated validation reports identifying 127 field mismatches across schemas
  • Documentation of field mappings between JSON schemas and database columns

Reviewed changes

Copilot reviewed 8 out of 10 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
json-export-specs/validate_schemas.py Core validation script parsing schema markdown, analyzing CSV data, flexible field matching
.github/workflows/validate-json-schemas.yml GitHub Actions workflow with automatic PR comments and issue creation on failures
json-export-specs/schemas/validation-results.json Machine-readable validation output (1,209 lines)
json-export-specs/schemas/SCHEMA_VALIDATION_REPORT.md Human-readable validation report with detailed findings
json-export-specs/VALIDATION_README.md Tool usage documentation and methodology
json-export-specs/FIELD_MAPPING.md Explicit JSON↔Database field mappings with computed field logic
json-export-specs/IMPLEMENTATION_SUMMARY.md Executive summary of implementation and findings
json-export-specs/README.md Added validation status section with badge
.gitignore Added json-export-specs/__pycache__/ exclusion
json-export-specs/__pycache__/validate_schemas.cpython-312.pyc Compiled Python bytecode (should not be committed)

| **Politician** | `view_riksdagen_politician`, `view_riksdagen_politician_summary`, `view_riksdagen_politician_document`, `view_riksdagen_politician_ballot` |
| **Party** | `view_riksdagen_party`, `view_riksdagen_party_summary`, `view_riksdagen_party_document_summary`, `view_riksdagen_party_ballot` |
| **Committee** | `view_riksdagen_committee`, `view_riksdagen_committee_decisions`, `view_riksdagen_committee_roles`, `view_riksdagen_committee_ballot_decision` |
| **Ministry** | `view_riksdagen_goverment`, `view_riksdagen_goverment_roles`, `view_ministry_decision_impact`, `view_ministry_effectiveness_trends` |
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling error: "goverment" should be "government". This typo appears in the view name references.

Suggested change
| **Ministry** | `view_riksdagen_goverment`, `view_riksdagen_goverment_roles`, `view_ministry_decision_impact`, `view_ministry_effectiveness_trends` |
| **Ministry** | `view_riksdagen_government`, `view_riksdagen_government_roles`, `view_ministry_decision_impact`, `view_ministry_effectiveness_trends` |

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Changed "goverment" to "government" in view name references.

Comment on lines 149 to 151
| `id` | `ministry_code` | string | `view_riksdagen_goverment` |
| `name` | `details` | string | `view_riksdagen_goverment` |
| `minister` | - | string | `view_riksdagen_goverment_role_member` |
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling error: "goverment" should be "government". This typo appears multiple times in view name references (lines 149-151).

Suggested change
| `id` | `ministry_code` | string | `view_riksdagen_goverment` |
| `name` | `details` | string | `view_riksdagen_goverment` |
| `minister` | - | string | `view_riksdagen_goverment_role_member` |
| `id` | `ministry_code` | string | `view_riksdagen_government` |
| `name` | `details` | string | `view_riksdagen_government` |
| `minister` | - | string | `view_riksdagen_government_role_member` |

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. All 3 occurrences of "goverment" corrected to "government".

"column_types": self._infer_column_types(rows, columns)
}

except Exception as e:
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The broad except Exception as e handler at line 149 catches all exceptions when reading CSV files, including critical errors like KeyboardInterrupt or SystemExit. While the error is logged, this could mask serious issues during execution.

Consider catching more specific exceptions:

except (IOError, csv.Error, UnicodeDecodeError) as e:
    print(f"  ✗ Error reading {csv_file.name}: {e}")

This allows critical exceptions like KeyboardInterrupt to propagate properly while still catching file-related errors.

Suggested change
except Exception as e:
except (IOError, csv.Error, UnicodeDecodeError) as e:

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Changed to catch specific exceptions: IOError, csv.Error, UnicodeDecodeError. Critical exceptions like KeyboardInterrupt now propagate properly.

Comment on lines 81 to 84
schema_info["fields"][field_name] = {
"type": field_type,
"required": True # Default assumption
}
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mermaid field extraction pattern r'\+(\w+)\s+(\w+)' is too broad and may incorrectly match non-field content. For example, in the validation results (line 34), a field named "8" was extracted, which is likely a false match from mermaid diagram syntax (e.g., list items or other markers).

Consider making the pattern more specific by:

  1. Ensuring it only matches within mermaid class diagrams
  2. Validating that extracted field names are valid identifiers (start with letter, not just digits)
  3. Adding a filter to exclude numeric-only field names

Example fix:

if field_name and not field_name.isdigit():  # Add validation
    schema_info["fields"][field_name] = {
        "type": field_type,
        "required": True
    }
Suggested change
schema_info["fields"][field_name] = {
"type": field_type,
"required": True # Default assumption
}
# Only add field if it starts with a letter and is not numeric-only
if re.match(r'^[A-Za-z]\w*$', field_name):
schema_info["fields"][field_name] = {
"type": field_type,
"required": True # Default assumption
}

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Added validation to ensure field names start with a letter: ^[A-Za-z]\w*$. The invalid "8" field is now excluded from extraction. Total field mismatches reduced from 127 to 125.

Comment on lines 34 to 40
"field": "8",
"issue": "Field defined in schema but not found in data",
"suggestions": [
"8"
]
},
{
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the validation results JSON, the field "8" appears in both politician and party schemas (lines 34 and 353), which confirms the issue with the mermaid pattern extraction. This invalid field name pollutes the validation results and creates meaningless field mismatches.

This is a consequence of the overly broad regex pattern in the schema parsing logic.

Suggested change
"field": "8",
"issue": "Field defined in schema but not found in data",
"suggestions": [
"8"
]
},
{

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. The invalid "8" field has been eliminated by adding field name validation in the mermaid pattern extraction logic.

Comment on lines 38 to 44
cache: 'pip'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
# No external pip packages required - script uses only Python standard library

Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The "Install dependencies" step (lines 40-43) upgrades pip but installs no packages since the script uses only the Python standard library. The cache: 'pip' option on line 38 is also unnecessary in this case.

Consider either:

  1. Removing the cache configuration and simplifying the install step
  2. Adding a comment explaining why pip is upgraded despite no dependencies

This would reduce workflow execution time slightly and improve clarity.

Suggested change
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
# No external pip packages required - script uses only Python standard library
# No dependencies to install - script uses only Python standard library

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Removed the cache: 'pip' option and "Install dependencies" step. Added comment: "No dependencies to install - script uses only Python standard library".

Comment on lines 378 to 379
"This report validates the 5 JSON export schemas against 142 real CSV sample data files "
"from the CIA database to ensure schema correctness and identify gaps between "
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implicit string concatenation. Maybe missing a comma?

Suggested change
"This report validates the 5 JSON export schemas against 142 real CSV sample data files "
"from the CIA database to ensure schema correctness and identify gaps between "
"This report validates the 5 JSON export schemas against 142 real CSV sample data files ",
"from the CIA database to ensure schema correctness and identify gaps between ",

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Added explicit commas between the strings to prevent implicit string concatenation.


import csv
import json
import os
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'os' is not used.

Suggested change
import os

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Removed unused os import.

from collections import defaultdict
from datetime import datetime, timezone
from pathlib import Path
from typing import Dict, List, Set, Tuple, Any
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'Set' is not used.

Suggested change
from typing import Dict, List, Set, Tuple, Any
from typing import Dict, List, Tuple, Any

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Removed unused Set from typing imports.

# This is a data structure example
schema_info["example_json_paths"].append(self._extract_paths(parsed.get("data", [])))
except json.JSONDecodeError:
pass
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'except' clause does nothing but pass and there is no explanatory comment.

Suggested change
pass
print(f"⚠️ Warning: Failed to parse JSON example in {schema_path}. Example snippet: {example[:60]}...")

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e625cae. Added explanatory comment: "Skip invalid JSON examples in markdown".

@pethers
Copy link
Member

pethers commented Dec 8, 2025

@copilot apply changes based on the comments in this thread

@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 8, 2025

@github-actions
Copy link

github-actions bot commented Dec 8, 2025

📊 JSON Schema Validation Results

Validation Summary:

  • ⏰ Generated: 2025-12-08T13:58:17.474324+00:00
  • 📋 Schemas Validated: 5
  • 📁 Sample Files Analyzed: 132
  • ⚠️ Total Mismatches: 125

Schema Status

Schema Fields Views Matched Mismatches Status
Politician 45 7 34 ⚠️ REVIEW
Party 42 11 39 ⚠️ REVIEW
Committee 26 10 24 ⚠️ REVIEW
Ministry 29 2 28 ⚠️ REVIEW
Intelligence 0 4 0 ✅ PASS

📄 Full Report: See uploaded artifacts for detailed validation report

⚠️ Action Required: Please review the field mismatches and update schemas to match actual data structure.

@github-actions
Copy link

github-actions bot commented Dec 8, 2025

📊 JSON Schema Validation Results

Validation Summary:

  • ⏰ Generated: 2025-12-08T13:58:24.336560+00:00
  • 📋 Schemas Validated: 5
  • 📁 Sample Files Analyzed: 132
  • ⚠️ Total Mismatches: 125

Schema Status

Schema Fields Views Matched Mismatches Status
Politician 45 7 34 ⚠️ REVIEW
Party 42 11 39 ⚠️ REVIEW
Committee 26 10 24 ⚠️ REVIEW
Ministry 29 2 28 ⚠️ REVIEW
Intelligence 0 4 0 ✅ PASS

📄 Full Report: See uploaded artifacts for detailed validation report

⚠️ Action Required: Please review the field mismatches and update schemas to match actual data structure.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 10 changed files in this pull request and generated no new comments.

@github-actions
Copy link

📊 JSON Schema Validation Results

Validation Summary:

  • ⏰ Generated: 2025-12-10T00:24:40.489887+00:00
  • 📋 Schemas Validated: 5
  • 📁 Sample Files Analyzed: 132
  • ⚠️ Total Mismatches: 125

Schema Status

Schema Fields Views Matched Mismatches Status
Politician 45 7 34 ⚠️ REVIEW
Party 42 11 39 ⚠️ REVIEW
Committee 26 10 24 ⚠️ REVIEW
Ministry 29 2 28 ⚠️ REVIEW
Intelligence 0 4 0 ✅ PASS

📄 Full Report: See uploaded artifacts for detailed validation report

⚠️ Action Required: Please review the field mismatches and update schemas to match actual data structure.

@github-actions
Copy link

github-actions bot commented Dec 10, 2025

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 0f9b761.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout 4.*.* 🟢 6.5
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 56 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
License🟢 10license file detected
Packaging⚠️ -1packaging workflow not detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Vulnerabilities🟢 91 existing vulnerabilities detected
SAST🟢 8SAST tool detected but not run on all commits
actions/actions/github-script 7.*.* 🟢 6.4
Details
CheckScoreReason
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
Vulnerabilities🟢 37 existing vulnerabilities detected
SAST🟢 10SAST tool is run on all commits
actions/actions/setup-python 5.*.* 🟢 5.2
Details
CheckScoreReason
Maintained🟢 79 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7
Binary-Artifacts🟢 10no binaries found in the repo
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Packaging⚠️ -1packaging workflow not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Vulnerabilities⚠️ 010 existing vulnerabilities detected
SAST🟢 9SAST tool is not run on all commits -- score normalized to 9
actions/actions/upload-artifact 4.*.* 🟢 5.5
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Maintained🟢 68 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 8SAST tool detected but not run on all commits
Vulnerabilities🟢 46 existing vulnerabilities detected

Scanned Files

  • .github/workflows/validate-json-schemas.yml

@github-actions
Copy link

📊 JSON Schema Validation Results

Validation Summary:

  • ⏰ Generated: 2025-12-13T15:09:07.128511+00:00
  • 📋 Schemas Validated: 5
  • 📁 Sample Files Analyzed: 132
  • ⚠️ Total Mismatches: 125

Schema Status

Schema Fields Views Matched Mismatches Status
Politician 45 7 34 ⚠️ REVIEW
Party 42 11 39 ⚠️ REVIEW
Committee 26 10 24 ⚠️ REVIEW
Ministry 29 2 28 ⚠️ REVIEW
Intelligence 0 4 0 ✅ PASS

📄 Full Report: See uploaded artifacts for detailed validation report

⚠️ Action Required: Please review the field mismatches and update schemas to match actual data structure.

@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Validate JSON Schemas Against Real Sample Data

2 participants