Tags: aviationexam/docker-compose-builder
Tags
add typed secrets and configs (#195) * add typed secrets and configs * feat: add UnixFileMode type for file permission handling - Add UnixFileMode record struct with notation preservation (Octal, OctalWithO, RawInt) - Add UnixFileModeConverter for YAML serialization/deserialization - Support parsing: 0755 (octal), 0o755 (octal with 'o'), 256 (decimal) - Preserve original notation on round-trip serialization - Replace int? Mode with UnixFileMode? in ServiceSecret, ServiceConfig, ServiceVolumeTmpfs - Simplify collection converters to use rootDeserializer instead of manual parsing - Register UnixFileModeConverter in ComposeExtensions * test: add comprehensive UnixFileMode tests - Test parsing for all notations: octal (0755), octal with 'o' (0o755), decimal (493) - Test setuid/setgid/sticky bit modes (04777, 02755, etc.) - Test invalid octal values (0800, 0888) throw exceptions - Test notation preservation on ToNotationString() - Test implicit conversion roundtrip equality - Test equality includes notation (record struct semantics) - Add integration tests for mode serialization in compose files * refactor: extract ServiceItemCollection base class Extract common IList<T> implementation from ServiceSecretCollection, ServiceConfigCollection, and ServiceVolumeCollection into abstract ServiceItemCollection<T> base class. Each concrete collection still implements IList<string> explicitly due to C# interface unification limitations (CS0695). --------- Co-authored-by: Jasim Schluter <jasim.schluter@pacom.com> Co-authored-by: Jan Trejbal <jan@trejbal.land>
Fix quoted keys in YAML serialization and add comprehensive service t… …est (#192) * Add serialization test for complex service with healthcheck and deploy Test covers comprehensive Docker Compose service configuration including: - HealthCheck (test command, interval, timeout, retries, start_period) - Deploy (labels, replicas, update_config, restart_policy, placement, resources) - Ports, extra_hosts, command, volumes, labels, environment, networks The test currently fails due to quoted keys in serialization output. Keys 'ports', 'extra_hosts', 'command', 'deploy' are incorrectly quoted. * Fix quoted keys in YAML serialization output The issue was that custom type converters (ServiceVolumeCollectionConverter, YamlValueCollectionConverter) were emitting YAML events directly to IEmitter, bypassing the event emitter chain. This caused ForceQuotedStringValuesEventEmitter to lose track of key/value positions, resulting in quoted keys like "ports". Changes: - Refactor converters to use serializer callback instead of direct emitter.Emit() - Simplify ForceQuotedStringValuesEventEmitter to use boolean toggle for key/value tracking - Remove ServiceVolumeConverter (functionality merged into ServiceVolumeCollectionConverter)
Add Typed ServiceVolume Models With Custom Collection (#191) * Changes Volumes property from List<string> to ServiceVolumeCollection, which implements both IList<string> and IList<ServiceVolume>. This allows both patterns to work: - foreach (string v in service.Volumes) - backwards compatible - foreach (var v in service.Volumes) - typed access (ServiceVolume) - string x = service.Volumes[0] - implicit conversion - ServiceVolume y = service.Volumes[0] - typed access Note: This is a minor breaking change for code using 'var' with volumes, as the inferred type changes from string to ServiceVolume. * fix formatting issue update complex example * Keep class per file * Define PLACE_ACCESSORHOLDER_ATTRIBUTE_ON_SAME_LINE_EX * Simplify deserializer * Simplify serializer --------- Co-authored-by: aus-design-web-mobile <aus-design-web-mobile@users.noreply.github.com> Co-authored-by: Jan Trejbal <jan@trejbal.land>
Add Deserialization support (#187) * Add Deserialization support * Minor tweaks * Configure raw string literal indentation * Add builder factory methods * Use PublishedPortConverter in deserialization * Implement PublishedPortConverter.ReadYaml * Fix CS --------- Co-authored-by: aus-design-web-mobile <aus-design-web-mobile@users.noreply.github.com> Co-authored-by: Jan Trejbal <jan@trejbal.land>
Bump gittools/actions from 4.1.0 to 4.2.0 (#166) Bumps [gittools/actions](https://github.com/gittools/actions) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/gittools/actions/releases) - [Changelog](https://github.com/GitTools/actions/blob/main/GitReleaseManager.yml) - [Commits](GitTools/actions@v4.1.0...v4.2.0) --- updated-dependencies: - dependency-name: gittools/actions dependency-version: 4.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
PreviousNext