HomeElementl

Add a base IRepositoryData class that can be used to implement repositories…

Description

Add a base IRepositoryData class that can be used to implement repositories with different caching rules

Summary: The suggestion in the docs to subclass RepositoryData if you want to implement your own pipeline loading and caching logic doesn't really work - the constructor of RepositoryData makes a bunch of assumptions about caching. Instead, add a base class (essentially an interface, open to naming suggestions) with a bare-bones implemention of get_all_pipelines, and update the example to use it.

Test Plan: New test that verifies that you can use this RepositoryData to implement a repo that changes its definitions every time it is called

Reviewers: alangenfeld, max

Reviewed By: max

Differential Revision: https://dagster.phacility.com/D8953