add a new interface and pattern for extracting defaults from a repo in draft.
the current pattern only supports using pre- set defaults, which can then be replaced by a user-provided value.
Similar to the way the TemplateWriter interface was used to abstract the filesystem writing operations, this PR introduces the RepoReader interface that abstracts reading data from a repo's files.
The main goal of this is to allow more intelligent defaults such as detecting a compatible image version or entrypoint script by reading the files in a repo during draft create execution.
By allowing prompt defaults to be set through extracting information from the repo files, we can greatly improve the probability that a default value is correct.
An example of this is the great work on #214 that could leverage this interface to standardize how we read data from the repo and organize the procedure using extractors that each apply to specific languages
Fixes # (issue)
Feature # (details)
Type of change
Please delete options that are not relevant.
[x] New feature (non-breaking change which adds functionality)
How Has This Been Tested?
Existing unit and integration tests pass
Checklist:
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules
Description
add a new interface and pattern for extracting defaults from a repo in draft. the current pattern only supports using pre- set defaults, which can then be replaced by a user-provided value.
Similar to the way the
TemplateWriter
interface was used to abstract the filesystem writing operations, this PR introduces theRepoReader
interface that abstracts reading data from a repo's files.The main goal of this is to allow more intelligent defaults such as detecting a compatible image version or entrypoint script by reading the files in a repo during
draft create
execution.By allowing prompt defaults to be set through extracting information from the repo files, we can greatly improve the probability that a default value is correct. An example of this is the great work on #214 that could leverage this interface to standardize how we read data from the repo and organize the procedure using
extractors
that each apply to specific languagesFixes # (issue) Feature # (details)
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Existing unit and integration tests pass
Checklist: