11import * as vscode from "vscode" ;
22import { GitHubRepoContext } from "../../git/repository" ;
3+ import { EmptyNode } from "./emptyNode" ;
34import { VariableNode } from "./variableNode" ;
45
56export type RepoVariablesCommandArgs = Pick < RepoVariablesNode , "gitHubRepoContext" > ;
@@ -12,14 +13,25 @@ export class RepoVariablesNode extends vscode.TreeItem {
1213 }
1314
1415 async getVariables ( ) : Promise < vscode . TreeItem [ ] > {
15- return await this . gitHubRepoContext . client . paginate (
16- this . gitHubRepoContext . client . actions . listRepoVariables ,
17- {
18- owner : this . gitHubRepoContext . owner ,
19- repo : this . gitHubRepoContext . name ,
20- per_page : 100
21- } ,
22- response => response . data . map ( s => new VariableNode ( this . gitHubRepoContext , s ) )
23- ) ;
16+ let variables : VariableNode [ ] = [ ] ;
17+ try {
18+ variables = await this . gitHubRepoContext . client . paginate (
19+ this . gitHubRepoContext . client . actions . listRepoVariables ,
20+ {
21+ owner : this . gitHubRepoContext . owner ,
22+ repo : this . gitHubRepoContext . name ,
23+ per_page : 100
24+ } ,
25+ response => response . data . map ( s => new VariableNode ( this . gitHubRepoContext , s ) )
26+ ) ;
27+ } catch ( e ) {
28+ await vscode . window . showErrorMessage ( ( e as Error ) . message ) ;
29+ }
30+
31+ if ( ! variables || variables . length === 0 ) {
32+ return [ new EmptyNode ( "No repository variables defined" ) ] ;
33+ }
34+
35+ return variables ;
2436 }
2537}
0 commit comments