Skip to content

feat: migrate metadata to nested structure for tac-quicksilver compatibility#32

Merged
ChristopherJHart merged 1 commit intomasterfrom
feature/nested-metadata-structure
Feb 6, 2026
Merged

feat: migrate metadata to nested structure for tac-quicksilver compatibility#32
ChristopherJHart merged 1 commit intomasterfrom
feature/nested-metadata-structure

Conversation

@ChristopherJHart
Copy link
Collaborator

Summary

  • Migrates metadata storage from flat fields to nested structure for compatibility with tac-quicksilver's Pydantic models
  • Prevents metadata loss when Quicksilver loads YAML files (Pydantic ignores unknown flat fields)
  • Adds helper functions get_nested_metadata() and set_nested_metadata() for safe nested access

New Nested Structure

metadata:
  project_tracking:
    issue_number: 123
    issue_url: https://...
    pr_number: 456
    pr_url: https://...
    pr_branch: feature/...
    git_url: https://...
  catalog_tracking:
    pr_number: 789
    pr_url: https://...
    pr_branch: feat/...
    git_url: https://...
  catalog:
    destined: true

Changes

Core Functions Updated:

  • update_test_case_with_issue_metadata() → writes to metadata.project_tracking
  • update_test_case_with_project_pr_metadata() → writes to metadata.project_tracking
  • update_test_case_with_pr_metadata() → writes to metadata.catalog_tracking

Check Functions Updated:

  • requires_issue_creation() → reads from metadata.project_tracking
  • requires_project_pr_creation() → reads from metadata.project_tracking and metadata.catalog.destined
  • requires_catalog_pr_creation() → reads from metadata.catalog_tracking and metadata.catalog.destined

Files Modified:

  • github_ops_manager/processing/test_cases_processor.py - Main implementation
  • github_ops_manager/synchronize/test_requirements.py - Consumer updates
  • github_ops_manager/synchronize/pull_requests.py - Consumer updates
  • github_ops_manager/configuration/cli.py - Docstring updates
  • tests/unit/test_processing_test_cases_processor.py
  • tests/unit/test_synchronize_test_requirements.py
  • tests/unit/test_synchronize_issues_yaml_migration.py

Test plan

  • All 330 unit tests pass
  • Manual verification with tac-quicksilver loading the YAML files
  • Integration testing with real test_cases.yaml files

🤖 AI Generation Metadata

  • AI Generated: Yes
  • AI Tool: claude-code
  • AI Model: opus-4
  • AI Contribution: ~75%
  • AI Reason: refactor metadata structure for tac-quicksilver compatibility

🤖 Generated with Claude Code

…ibility

Update github-ops-manager to write and read metadata using nested structure
that aligns with tac-quicksilver's Pydantic models. This prevents metadata
loss when Quicksilver loads YAML files.

New nested structure:
- metadata.project_tracking.{issue_number, issue_url, pr_number, pr_url, pr_branch, git_url}
- metadata.catalog_tracking.{pr_number, pr_url, pr_branch, git_url}
- metadata.catalog.destined (replaces flat catalog_destined field)

Uses standard dict .setdefault() for writes and .get() chains for reads.

Co-Authored-By: Claude <noreply@anthropic.com>
@ChristopherJHart ChristopherJHart force-pushed the feature/nested-metadata-structure branch from ef93a7c to de26ec0 Compare February 6, 2026 00:04
@ChristopherJHart ChristopherJHart marked this pull request as ready for review February 6, 2026 00:08
@ChristopherJHart ChristopherJHart merged commit f587b69 into master Feb 6, 2026
2 checks passed
@ChristopherJHart ChristopherJHart deleted the feature/nested-metadata-structure branch February 6, 2026 00:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant