Fast Path Pipeline: Dockerfile discovery + RepoReadiness extension
- 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
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