1+ #!/usr/bin/env python3
12import argparse
3+ import logging
24import os
35from typing import Optional , List , Set , Tuple , Dict
46
57import yaml
68from github import Github , Workflow
79
10+ logging .basicConfig (level = logging .WARNING )
11+ logging .getLogger ('github.Requester' ).setLevel (logging .WARNING )
12+ logger = logging .getLogger ()
13+
814
915def parse_args () -> argparse .Namespace :
1016 parser = argparse .ArgumentParser ()
@@ -14,8 +20,8 @@ def parse_args() -> argparse.Namespace:
1420 help = 'GitHub token to use, by default will use GITHUB_TOKEN environment variable' )
1521 subcommands = parser .add_subparsers (dest = 'command' , required = True )
1622 list_wfs_cmd_parser = subcommands .add_parser ('list-workflows' , help = 'List github workflows' )
17- list_wfs_cmd_parser .add_argument ('--local-only ' , action = 'store_true' , dest = 'local_only ' ,
18- help = 'Show only workflows stored in the repository ' )
23+ list_wfs_cmd_parser .add_argument ('--all ' , action = 'store_true' , dest = 'external_workflows ' ,
24+ help = 'Show external workflows as well ' )
1925 list_actions_cmd_parser = subcommands .add_parser ('list-actions' , help = 'List actions in a workflow' )
2026 list_actions_cmd_parser .add_argument ('workflow_path' , help = 'Workflow path' )
2127 update_gha_cmd_parser = subcommands .add_parser ('update' , help = 'Update actions in github workflows' )
@@ -33,12 +39,12 @@ def __init__(self, github_token: Optional[str]):
3339 raise ValueError ('GITHUB_TOKEN must be set' )
3440 self .client = Github (login_or_token = github_token )
3541
36- def get_github_workflows (self , repo_name : str , local_only : bool = False ) -> List [Workflow ]:
42+ def get_github_workflows (self , repo_name : str , external_workflows : bool = False ) -> List [Workflow ]:
3743 if repo_name in self .workflows :
3844 return list (self .workflows [repo_name ].values ())
3945 repo = self .client .get_repo (repo_name )
4046 workflows = list (repo .get_workflows ())
41- if local_only :
47+ if not external_workflows :
4248 workflows = list (filter (lambda item : item .path .startswith ('.github/' ), workflows ))
4349 self .workflows [repo_name ] = {wf .path : wf for wf in workflows }
4450 return workflows
0 commit comments