Skip to content

feat: add Skyhook configuration support - #3

Merged
eliran-ops merged 4 commits into
mainfrom
feat/skyhook-support
Jan 20, 2026
Merged

eliran-ops merged 4 commits into
mainfrom
feat/skyhook-support

Conversation

@eliran-ops

Copy link
Copy Markdown
Contributor

Summary

  • Add support for .skyhook/skyhook.yaml configuration format alongside existing Koala format
  • Auto-detect which config format(s) are present and merge services when both exist
  • Add SkyhookConfig, SkyhookService, SkyhookEnvironment classes with internal path field

Changes

  • New files:

    • src/config/SkyhookConfig.js - Classes representing skyhook.yaml structure with CONFIG_PATH = '.skyhook/skyhook.yaml'
    • src/config/config-detector.js - Auto-detects config format(s)
    • src/config/skyhook-parser.js - Parses and validates YAML
    • src/matrix/matrix-builder.js - Builds DeploymentMatrix from Skyhook config
    • src/DeploymentMatrix.js - DeploymentEntry/DeploymentMatrix classes with namespace, account fields and merge() method
  • Modified files:

    • src/index.js - New flow: detect → process both configs → merge → output
    • package.json - Added js-yaml dependency

Test plan

  • Test with Skyhook config only (.skyhook/skyhook.yaml)
  • Test with Koala config only (existing behavior)
  • Test with both configs (merge scenario)
  • Test with overlay filter applied

🤖 Generated with Claude Code

Add support for `.skyhook/skyhook.yaml` configuration format alongside
existing Koala format with auto-detection and merging capabilities.

Changes:
- Add SkyhookConfig class with service and environment models
- Add config format auto-detection (Koala, Skyhook, or both)
- Add skyhook.yaml parser with validation
- Add matrix builder for Skyhook config with per-service counters
- Update DeploymentMatrix with merge() method and new fields (namespace, account)
- Add detailed logging showing where values are sourced from
- Add Jest tests for all new functionality

When both configs exist, matrices are merged with deduplication by
service_name + overlay. Per-service counters continue from existing
Koala entries to ensure unique service_tags.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@eliran-ops
eliran-ops force-pushed the feat/skyhook-support branch from 286e748 to 1a7bd8c Compare January 20, 2026 20:24
eliran-ops and others added 3 commits January 20, 2026 22:28
- Add unit-tests job to run Jest tests
- Add test-skyhook-config job (2 services x 2 environments)
- Add test-skyhook-env-filter job (environment filter)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@eliran-ops
eliran-ops merged commit 9b8ba7f into main Jan 20, 2026
3 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.4.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant