def gh_open(config: Config) -> Optional[ghapi.core.GhApi]: """Return a GhApi, if so configured.""" gh: Optional[ghapi.core.GhApi] = None if config['github.repository']: owner, repo = config.get('github.repository').split('/', 1) config.put('github.owner', owner) config.put('github.repo', repo) if not config['github.token']: config['github.token'] = os.environ.get('GITHUB_TOKEN') if not config['github.token']: logging.error('Missing --github-token') return None token = config['github.token'] if token != 'SKIP': gh = ghapi.all.GhApi(owner=owner, repo=repo, token=config['github.token']) return gh
return config.getl([column, 'limit', name], config.get('report.limit', 0)) def postprocess_selections(config: Config, key: str, info: Mapping) -> None: """Resolve select/ignore command options.""" split_size(config, key) choice, select = key.split('.') assert select == 'select' selections = config.get(key) if not config.getl([choice, 'ignore-all'], False): if defaults := config.getl([choice, 'default']): for i in config.getl([choice, 'ignore']): if i in defaults: defaults.remove(i) selections += defaults config.put(key, frozenset(selections)) def select_and_ignore_config_desc(key: str) -> ConfigDescription: return { Config.group_map(key): { 'group': 'select' }, f'{key}.select': { 'help': f'{key.capitalize()}(s) to process; otherwise all not ignored', 'metavar': 'NAME', 'default': [], 'argparse': { 'alias': [f'--{key}'], },