Це посилання на самий початок пояснення взаємодії ViewModel з іншими архітектурними компонентами Android.
Тобто тут йдеться про те, як не потрібно робити.
Більш конкретно взаємодія ViewModel з Repository наведена трішки далі, на цій же сторінці.
https://developer.android.com/jetpack/d … repository
Ідея в тому, щоб об'єкт LiveData, що належить Repository (отриманий в ViewModel через виклик repository.getUser()) передати в Activity (при виклику з Activity viewModel.getUser()). Тоді Activity "посадить" на нього свій Observer і буде спостерігати за LiveDate, що створений в Repository, а не за тим LiveDate, що створений в ViewModel. Це у випадку, якщо формат даних, що передаються з Repository, влаштовують UI сторону.
Якщо ні, можна, як варіант, зробити це в два етапи: виконати проміжну обробку даних в ViewModel, "посадивши" в ViewModel Observer на LiveData з Repository так само, як це робить Activity для LiveDate з ViewModel, але використавши метод observeForever(Observer<T> observer). В методі onChange() цього обсервера дані можна обробити належним чином (наприклад, привести до вигляду, що відповідають вимозі UI) і викликати setValue() на об'єкті LiveData, який належить ViewModel та спостерігається з Activity.