@@ -41,12 +41,6 @@ def parse_args() -> argparse.Namespace:
4141 help = "Clear the cache and exit"
4242 )
4343
44- general_group .add_argument (
45- "--token" ,
46- type = str ,
47- help = "Personal access token (optional, increases rate limits)"
48- )
49-
5044 general_group .add_argument (
5145 "--version" ,
5246 action = "store_true" ,
@@ -199,7 +193,8 @@ def main() -> int:
199193 cache_manager = CacheManager (cache_expiry_hours = cache_expiry )
200194 provider = config_manager .get_provider ()
201195 provider_url = config_manager .get_provider_url ()
202- fetcher = _create_fetcher (provider , provider_url )
196+ token = config_manager .get_token ()
197+ fetcher = _create_fetcher (provider , provider_url , token )
203198
204199 # Handle custom box character
205200 custom_box = args .custom_box
@@ -355,20 +350,20 @@ def _prompt_provider() -> Optional[str]:
355350 return None
356351
357352
358- def _create_fetcher (provider : str , base_url : str ):
353+ def _create_fetcher (provider : str , base_url : str , token : Optional [ str ] = None ):
359354 """Create the appropriate fetcher for the provider."""
360355 if provider == 'github' :
361356 from .fetcher import GitHubFetcher
362- return GitHubFetcher ()
357+ return GitHubFetcher (token )
363358 elif provider == 'gitlab' :
364359 from .fetcher import GitLabFetcher
365- return GitLabFetcher (base_url )
360+ return GitLabFetcher (base_url , token )
366361 elif provider == 'gitea' :
367362 from .fetcher import GiteaFetcher
368- return GiteaFetcher (base_url )
363+ return GiteaFetcher (base_url , token )
369364 elif provider == 'sourcehut' :
370365 from .fetcher import SourcehutFetcher
371- return SourcehutFetcher (base_url )
366+ return SourcehutFetcher (base_url , token )
372367 else :
373368 raise ValueError (f"Unsupported provider: { provider } " )
374369
@@ -406,8 +401,21 @@ def _initialize_gitfetch(config_manager: ConfigManager) -> bool:
406401 elif provider == 'sourcehut' :
407402 config_manager .set_provider_url ('https://git.sr.ht' )
408403
404+ # Ask for token if needed
405+ token = None
406+ if provider in ['gitlab' , 'gitea' , 'sourcehut' ]:
407+ token_input = input (
408+ f"Enter your { provider } personal access token "
409+ "(optional, press Enter to skip): "
410+ ).strip ()
411+ if token_input :
412+ token = token_input
413+ config_manager .set_token (token )
414+
409415 # Create appropriate fetcher
410- fetcher = _create_fetcher (provider , config_manager .get_provider_url ())
416+ fetcher = _create_fetcher (
417+ provider , config_manager .get_provider_url (), token
418+ )
411419
412420 # Try to get authenticated user
413421 try :
0 commit comments