Respect opaque structs for repository
Implement Repository.path()

I believe this doesn't leak