@@ -291,7 +291,7 @@ def get_general_token(self) -> RepoToken:
291291 pass
292292
293293 @abstractmethod
294- def get_repo_token (self , repo : RepoData ) -> RepoToken :
294+ def get_repo_token (self , repo_full_name : str ) -> RepoToken :
295295 pass
296296
297297 @abstractmethod
@@ -354,7 +354,7 @@ def __init__(self, auth_type: GitHubLegacyConfig) -> None:
354354 def get_general_token (self ) -> RepoToken :
355355 return self .token
356356
357- def get_repo_token (self , repo : RepoData ) -> RepoToken :
357+ def get_repo_token (self , repo_full_name : str ) -> RepoToken :
358358 return self .token
359359
360360 def create_secret_providers (self ) -> list [SecretProviderBase ]:
@@ -436,9 +436,9 @@ def __init__(self, auth_type: GitHubAppConfig) -> None:
436436 def get_general_token (self ) -> RepoToken :
437437 return self .jwt_token
438438
439- def get_repo_token (self , repo : RepoData ) -> RepoToken :
440- assert repo . installation_id is not None , f"Missing installation_id in { repo } "
441- return self .installation_tokens [repo . installation_id ]
439+ def get_repo_token (self , repo_full_name : str ) -> RepoToken :
440+ installation_id = self . project_id_map [ repo_full_name ]
441+ return self .installation_tokens [installation_id ]
442442
443443 def create_secret_providers (self ) -> list [SecretProviderBase ]:
444444 return [GitHubAppSecretService (self .installation_tokens , self .jwt_token )]
@@ -585,10 +585,15 @@ def create_reporter(self) -> ReporterBase:
585585 return self .auth_backend .create_reporter ()
586586
587587 def create_change_hook (self ) -> dict [str , Any ]:
588+ def get_github_token (props : Properties ) -> str :
589+ return self .auth_backend .get_repo_token (
590+ props .getProperty ("full_name" )
591+ ).get ()
592+
588593 return {
589594 "secret" : self .webhook_secret ,
590595 "strict" : True ,
591- "token" : self . auth_backend . get_general_token (). get ( ),
596+ "token" : WithProperties ( "%(github_token)s" , github_token = get_github_token ),
592597 "github_property_whitelist" : ["github.base.sha" , "github.head.sha" ],
593598 }
594599
@@ -638,7 +643,7 @@ def load_projects(self) -> list["GitProject"]:
638643 )
639644 return [
640645 GithubProject (
641- self .auth_backend .get_repo_token (repo ),
646+ self .auth_backend .get_repo_token (repo . full_name ),
642647 self .config ,
643648 self .webhook_secret ,
644649 RepoData .model_validate (repo ),
0 commit comments