@@ -6,38 +6,67 @@ import { logger } from '@socketsecurity/registry/lib/logger'
66
77import constants from '../../constants'
88import { handleApiCall , handleUnsuccessfulApiResponse } from '../../utils/api'
9- import { setupSdk } from '../../utils/sdk'
9+ import { AuthError } from '../../utils/errors'
10+ import { getDefaultToken , setupSdk } from '../../utils/sdk'
1011
1112export async function listRepos ( {
12- apiToken,
1313 direction,
1414 orgSlug,
15- outputJson,
16- outputMarkdown,
15+ outputKind,
1716 page,
1817 per_page,
1918 sort
2019} : {
21- outputJson : boolean
22- outputMarkdown : boolean
20+ direction : string
2321 orgSlug : string
22+ outputKind : 'json' | 'markdown' | 'print'
23+ page : number
24+ per_page : number
2425 sort : string
26+ } ) : Promise < void > {
27+ const apiToken = getDefaultToken ( )
28+ if ( ! apiToken ) {
29+ throw new AuthError (
30+ 'User must be authenticated to run this command. To log in, run the command `socket login` and enter your API key.'
31+ )
32+ }
33+
34+ await listReposWithToken ( {
35+ apiToken,
36+ direction,
37+ orgSlug,
38+ outputKind,
39+ page,
40+ per_page,
41+ sort
42+ } )
43+ }
44+
45+ async function listReposWithToken ( {
46+ apiToken,
47+ direction,
48+ orgSlug,
49+ outputKind,
50+ page,
51+ per_page,
52+ sort
53+ } : {
54+ apiToken : string
2555 direction : string
26- per_page : number
56+ orgSlug : string
57+ outputKind : 'json' | 'markdown' | 'print'
2758 page : number
28- apiToken : string
59+ per_page : number
60+ sort : string
2961} ) : Promise < void > {
3062 // Lazily access constants.spinner.
3163 const { spinner } = constants
3264
33- spinner . start ( 'Listing repositories...' )
65+ spinner . start ( 'Fetching list of repositories...' )
3466
3567 const socketSdk = await setupSdk ( apiToken )
3668 const result = await handleApiCall (
3769 socketSdk . getOrgRepoList ( orgSlug , {
38- outputJson,
39- outputMarkdown,
40- orgSlug,
4170 sort,
4271 direction,
4372 per_page,
@@ -51,9 +80,9 @@ export async function listRepos({
5180 return
5281 }
5382
54- spinner . stop ( )
83+ spinner . stop ( 'Fetch complete.' )
5584
56- if ( outputJson ) {
85+ if ( outputKind === 'json' ) {
5786 const data = result . data . results . map ( o => ( {
5887 id : o . id ,
5988 name : o . name ,
0 commit comments