Azure / draft

A day 0 tool for getting your app on k8s fast
MIT License
515 stars 61 forks source link

add reporeader interface and an example extractor for python #215

Closed davidgamero closed 1 year ago

davidgamero commented 1 year ago

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 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.

How Has This Been Tested?

Existing unit and integration tests pass

Checklist: