githubnext / githubnext/ado-aw

feat: allow enable to target individual pipeline files

Open
#1,634 1 comment 0 reactions 0 assignees View on GitHub
enhancement rust
Dominant language
Rust
Stars
23
Forks
8
Avg merge
4d 9h
Merged PRs (30d)
22

Description

## Problem

`ado-aw enable [PATH]` can only operate on a repository directory and always discovers every compiled pipeline under it. This makes it unsafe to register one new pipeline in a repository that also contains intentionally disabled or externally managed definitions: a full-repository `enable` may enable or create unrelated definitions.

Passing an individual agent source or compiled YAML as `PATH` does not narrow the operation. It is treated as a directory and fails before planning.

## Reproduction

With ado-aw 0.45.1 and a repository containing multiple compiled pipelines:

```text
ado-aw enable foo.yml --dry-run
```

or:

```text
ado-aw enable agents/foo.md --dry-run
```

Both fail on Windows with:

```text
Error: Failed to read directory:

Caused by:
The directory name is invalid. (os error 267)
```

Running against the repository root succeeds, but the plan includes every discovered fixture, including unrelated creates/enables.

## Expected behavior

Provide a supported way to target one or more individual pipeline fixtures, for example:

```text
ado-aw enable agents/foo.md
ado-aw enable foo.yml
ado-aw enable --include foo --include bar
```

The selected command should preserve repository context for remote/project inference while restricting create/enable operations to the requested fixture(s).

Ideally the same selection mechanism would be consistent across the lifecycle commands where broad discovery can be destructive (`enable`, `disable`, and `remove`).

## Workaround

Create the individual Azure DevOps definition directly with `az pipelines create --skip-first-run`, then verify its queue status, YAML path, and default branch separately.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the `ado-aw enable` command and its path-discovery and planning entry points, then compare how `disable` and `remove` select pipeline fixtures. Verify the behavior with the documented file and repository-root dry-run examples; done means individual paths or includes preserve repository context while limiting create, enable, disable, or remove operations to the selected fixtures.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, rust
Domain
cli, devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.