Both decorators are now used at the Command-level, but wrap the
Command.run() method
Changes the name of the Project class to Repository
Changes the ProjectService to RepositoryService
Makes repository an optional attribute in Command
Why are we doing this?
So that we can do validation at the Command-level, instead of
at initialization
So that we can check for .plan/ and .git/ as separate checks
So that we can allow --version when outside of a git repository
Repository being an optional attribute in Command means that each
subclass of command can choose how to handle it
Testing performed
tox
Manually running commands locally
Known issues
The Command class takes an Optional[Repository] now, which is not great as it means we have to check the repository in many places deeper in the call stack.
What does this PR do?
Why are we doing this?
Testing performed
Known issues
Command
class takes anOptional[Repository]
now, which is not great as it means we have to check the repository in many places deeper in the call stack.Notes
Closes #81