Можно ли каким-то образом получить информацию обо всем хранилище, используя один запрос к github api, или мы должны рекурсивно запрашивать API для определенного уровня?
Согласно этому запросу: https://api.github.com/repos/microsoft/terminal/contents?ref=master
мы получаем только один уровень.
Вы можете рекурсивно получить дерево , используя:
/repos/:owner/:repo/git/trees/:tree_sha?recursive=1
В вашем случае это будет:
https://api.github.com/repos/microsoft/terminal/git/trees/master?recursive=true