Azure / Azure/aks-desktop

Fast Path Pipeline: Dockerfile discovery + RepoReadiness extension

Open
#551 0 comments 0 reactions 0 assignees View on GitHub
documentation triage
Dominant language
TypeScript
Stars
102
Forks
25
Avg merge
1d 4h
Merged PRs (30d)
22

Description

Part of #557

## Problem

To offer a fast deploy path, we need to know whether the user's repo already has a Dockerfile. Today `checkRepoReadiness` only checks for the copilot setup workflow, agent config, and deploy workflow — it has no awareness of Dockerfiles.

Additionally, user feedback showed that the agent couldn't find Dockerfiles nested in subdirectories (e.g., `src/web/Dockerfile`). We need a reliable way to find Dockerfiles anywhere in the repo tree, not just at the root.

## Changes

- Add `findDockerfiles()` to `github-api.ts` — uses the GitHub Git Trees API to search the full repo tree for files named `Dockerfile` (case-insensitive, any depth)
- Extend `RepoReadiness` interface with `dockerfilePaths: string[]`
- Update `checkRepoReadiness` to include Dockerfile search in the existing parallel check
- Create `useDockerfileDiscovery` hook — manages selection state, auto-selects when exactly one Dockerfile found, derives build context from path (e.g., `src/web/Dockerfile` → build context `./src/web`)
- Create `DockerfileConfirmation` component — shows found Dockerfile(s), picker for multiple, build context override

Contributor guide

Open the contributing guide

Research direction

Start in github-api.ts by tracing checkRepoReadiness and its existing parallel checks, then review the new useDockerfileDiscovery hook and DockerfileConfirmation component. Done means Dockerfiles are found at any tree depth, RepoReadiness exposes their paths, a single file is auto-selected, nested build contexts are derived correctly, and multiple files can be selected or overridden.

Written by the indexing model from the issue text.

Assessment

Tech stack
dockerfile, typescript
Domain
developer-experience, devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.