add reporeader interface and an example extractor for python #215
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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: