Skip to content

Conversation

@flemzord
Copy link
Owner

@flemzord flemzord commented Sep 18, 2025

Summary

  • scaffold team synchronization preview check and configuration support
  • add teams module placeholders for dynamic rules and diff/apply helpers
  • raise coverage around team schema and sync scaffolding

Testing

  • npm run test
  • npm run test:coverage
  • npm run lint

Summary by cubic

Adds a preview “team-sync” check and teams config schema to dry-run GitHub team synchronization. No changes are applied yet; this scaffolds the feature behind a safe preview.

  • New Features

    • New check: team-sync (runs when teams config exists; compliant result with preview stats).
    • Teams config schema added: definitions, dynamic_rules, dry_run, unmanaged_teams.
    • Dynamic rule types: all_org_members, by_filter (with filter), composite (with compose).
    • Teams module scaffolding: manager, diff, dynamic resolution, apply (no-op), types.
    • Check registry updated to include team-sync.
    • Extensive tests for schema, manager, diff/dynamic/sync, and check wiring.
  • Migration

    • Optional adoption: add a teams block to compliance config (can include definitions and/or dynamic_rules).
    • Enable the team-sync check via checks list if using an allowlist.
    • Run in dry-run to preview findings; fix still performs no changes while the feature is in preview.

@github-actions
Copy link

github-actions bot commented Sep 18, 2025

📊 Build Report

Bundle Size: 1.19 KB
Node Versions Tested: 18, 20, 22
All Checks: ✅ Passed

Details
  • Linting (BiomeJS, Knip, TypeScript): ✅
  • Tests with coverage: ✅
  • Build: ✅
  • Integration test: ✅

Generated for commit f05a1f6

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

4 issues found across 19 files

Prompt for AI agents (all 4 issues)

Understand the root cause of the following 4 issues and fix them.


<file name="src/config/types.ts">

<violation number="1" location="src/config/types.ts:96">
TeamMemberFilter allows an empty object; align the type with the schema using an &quot;at least one property&quot; utility/union to require one of the criteria.</violation>

<violation number="2" location="src/config/types.ts:106">
Ensure TeamCompositionDifference.subtract is non-empty to match schema; use a non-empty tuple type.</violation>

<violation number="3" location="src/config/types.ts:109">
TeamComposition permits an empty object; consider a type that enforces at least one of union/intersection/difference at compile time.</violation>

<violation number="4" location="src/config/types.ts:119">
DynamicTeamRule is too permissive; use a discriminated union to tie type to required fields (filter/compose) and prevent invalid combinations at compile time.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

@github-actions github-actions bot added documentation Improvements or additions to documentation config labels Sep 18, 2025
@flemzord flemzord merged commit 6087a42 into main Sep 18, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config documentation Improvements or additions to documentation size/XL source tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant