<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=Make-jwt.py</id>
	<title>Make-jwt.py - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=Make-jwt.py"/>
	<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Make-jwt.py&amp;action=history"/>
	<updated>2026-04-28T06:21:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://aznot.com/index.php?title=Make-jwt.py&amp;diff=6532&amp;oldid=prev</id>
		<title>Kenneth: Created page with &quot;GitHub Make JWT Token Script  == make-jwt.py ==  &lt;pre&gt; #!/usr/bin/env python3  # pip install jwt  import jwt import time import sys  # Get PEM file path if len(sys.argv) &gt; 1:...&quot;</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Make-jwt.py&amp;diff=6532&amp;oldid=prev"/>
		<updated>2023-12-01T20:12:23Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;GitHub Make JWT Token Script  == make-jwt.py ==  &amp;lt;pre&amp;gt; #!/usr/bin/env python3  # pip install jwt  import jwt import time import sys  # Get PEM file path if len(sys.argv) &amp;gt; 1:...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;GitHub Make JWT Token Script&lt;br /&gt;
&lt;br /&gt;
== make-jwt.py ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
# pip install jwt&lt;br /&gt;
&lt;br /&gt;
import jwt&lt;br /&gt;
import time&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
# Get PEM file path&lt;br /&gt;
if len(sys.argv) &amp;gt; 1:&lt;br /&gt;
    pem = sys.argv[1]&lt;br /&gt;
else:&lt;br /&gt;
    pem = input(&amp;quot;Enter path of private PEM file: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Get the App ID&lt;br /&gt;
if len(sys.argv) &amp;gt; 2:&lt;br /&gt;
    app_id = sys.argv[2]&lt;br /&gt;
else:&lt;br /&gt;
    app_id = input(&amp;quot;Enter your APP ID: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Open PEM&lt;br /&gt;
with open(pem, &amp;#039;rb&amp;#039;) as pem_file:&lt;br /&gt;
    signing_key = jwt.jwk_from_pem(pem_file.read())&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    # Issued at time&lt;br /&gt;
    #&amp;#039;iat&amp;#039;: int(time.time()),&lt;br /&gt;
    &amp;#039;iat&amp;#039;: int(time.time()) - 60, # flex for clock drift&lt;br /&gt;
    # JWT expiration time (10 minutes maximum)&lt;br /&gt;
    &amp;#039;exp&amp;#039;: int(time.time()) + 50,&lt;br /&gt;
    # GitHub App&amp;#039;s identifier&lt;br /&gt;
    &amp;#039;iss&amp;#039;: app_id&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Create JWT&lt;br /&gt;
jwt_instance = jwt.JWT()&lt;br /&gt;
encoded_jwt = jwt_instance.encode(payload, signing_key, alg=&amp;#039;RS256&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
#print(f&amp;quot;JWT:  {encoded_jwt}&amp;quot;)&lt;br /&gt;
print(&amp;quot;{}&amp;quot;.format(encoded_jwt))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Original ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import jwt&lt;br /&gt;
import time&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
# Get PEM file path&lt;br /&gt;
if len(sys.argv) &amp;gt; 1:&lt;br /&gt;
    pem = sys.argv[1]&lt;br /&gt;
else:&lt;br /&gt;
    pem = input(&amp;quot;Enter path of private PEM file: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Get the App ID&lt;br /&gt;
if len(sys.argv) &amp;gt; 2:&lt;br /&gt;
    app_id = sys.argv[2]&lt;br /&gt;
else:&lt;br /&gt;
    app_id = input(&amp;quot;Enter your APP ID: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Open PEM&lt;br /&gt;
with open(pem, &amp;#039;rb&amp;#039;) as pem_file:&lt;br /&gt;
    signing_key = jwt.jwk_from_pem(pem_file.read())&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    # Issued at time&lt;br /&gt;
    &amp;#039;iat&amp;#039;: int(time.time()),&lt;br /&gt;
    # JWT expiration time (10 minutes maximum)&lt;br /&gt;
    &amp;#039;exp&amp;#039;: int(time.time()) + 600,&lt;br /&gt;
    # GitHub App&amp;#039;s identifier&lt;br /&gt;
    &amp;#039;iss&amp;#039;: app_id&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Create JWT&lt;br /&gt;
jwt_instance = jwt.JWT()&lt;br /&gt;
encoded_jwt = jwt_instance.encode(payload, signing_key, alg=&amp;#039;RS256&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;JWT:  {encoded_jwt}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ref: https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
</feed>