githubnext / githubnext/ado-aw

refactor(engine): emit typed install steps instead of YAML strings

Open
#1,834 0 comments 1 reaction 2 assignees Claimed by @jamesadevine View on GitHub
refactor
Dominant language
Rust
Stars
23
Forks
8
Avg merge
4d 9h
Merged PRs (30d)
22

Description

## Context

This refactor is prompted by PR #1824 review threads:
- https://github.com/githubnext/ado-aw/pull/1824#discussion_r3724479152
- https://github.com/githubnext/ado-aw/pull/1824#discussion_r3724480508 (reply to discussion_r3724479152)
- https://github.com/githubnext/ado-aw/pull/1824#discussion_r3724495467

`copilot_install_steps` currently returns rendered YAML strings, which forces `resolve_ado_organization_bash(indent)` and another format string. That conflicts with the IR rule that compiler-generated steps should use typed step representations (`Step::Bash`, `BashStep`, `TaskStep`) and that lowering should own YAML indentation.

This should be addressed across the engine and every target caller so compiler-generated install steps become typed `Vec` (or an equivalent typed representation), while genuinely user-authored YAML remains the only RawYaml escape hatch.

## Requirements

- Refactor generated install steps so they are emitted as typed steps rather than rendered YAML strings.
- Make the organization resolver return an unindented script or a typed BashStep rather than a string that requires caller-side indentation logic.
- Remove the need for callers to pass indentation for generated install steps.
- Ensure 1ES organization resolution, NuGet auth, and install steps are typed.
- Preserve standalone/1ES/job/stage output behavior.
- Ensure the IR graph/summary can see the generated steps.
- Keep compile fixtures and bash lint passing.

## Acceptance

- Organization resolution returns an unindented script or typed BashStep.
- No caller passes indentation for generated install steps.
- 1ES organization resolution/NuGet auth/install steps are typed.
- Standalone/1ES/job/stage output behavior is preserved.
- IR graph/summary sees the steps.
- Compile fixtures and bash lint pass.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.