Add expiration argument back to GithubIntegration.create_jwt (#2439)

* Add expiration argument back to create_jwt
This commit is contained in:
Enrico Minack
2023-03-17 21:40:48 +11:00
committed by GitHub
parent 554b2b28db
commit 822fc05cd5
3 changed files with 30 additions and 3 deletions
+8 -2
View File
@@ -90,17 +90,23 @@ class GithubIntegration:
completed=True,
)
def create_jwt(self):
def create_jwt(self, expiration=None):
"""
Create a signed JWT
https://docs.github.com/en/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app
:return string:
"""
if expiration is not None:
assert isinstance(expiration, int), expiration
assert (
Consts.MIN_JWT_EXPIRY <= expiration <= Consts.MAX_JWT_EXPIRY
), expiration
now = int(time.time())
payload = {
"iat": now + self.jwt_issued_at,
"exp": now + self.jwt_expiry,
"exp": now + (expiration if expiration is not None else self.jwt_expiry),
"iss": self.integration_id,
}
encrypted = jwt.encode(payload, key=self.private_key, algorithm="RS256")