Who owns the repository and the accounts, today?
Not at the end of the project. Today, while work is happening. The answer should be that you do, with the supplier granted access. Any other arrangement means leaving involves a negotiation rather than a decision, and the moment you discover this is invariably the moment you most need it not to be true. This applies to hosting, domain, analytics and app store accounts as much as to code.