www.htmlyse.com - Home

Test DNS, SSL/TLS, HTTP and HTML

Test results for github.com

Scanned on: Tue Oct 18 23:43:39 2022 GMT. Tested in 440 seconds

DNS Report

DNSSEC                 not offered
Zone transfer (AXFR)   not allowed (OK)
CAA Record             offered (OK)
SPF Record             offered (OK)
DMARC Record           offered (OK)
MTA-STS                not offered
TLSRPT Record          not offered

Raw DNS Records

Name TTL Type Data
github.com 900 SOA ns-1707.awsdns-21.co.uk awsdns-hostmaster @ amazon.com 1 7200 900 1209600 86400
github.com 900 NS dns1.p08.nsone.net, IPv4: 198.51.44.8, IPv6: 2620:4d:4000:6259:7:8:0:1
github.com 900 NS dns2.p08.nsone.net, IPv4: 198.51.45.8, IPv6: 2a00:edc0:6259:7:8:0:0:2
github.com 900 NS dns3.p08.nsone.net, IPv4: 198.51.44.72, IPv6: 2620:4d:4000:6259:7:8:0:3
github.com 900 NS dns4.p08.nsone.net, IPv4: 198.51.45.72, IPv6: 2a00:edc0:6259:7:8:0:0:4
github.com 900 NS ns-1283.awsdns-32.org
github.com 900 NS ns-1707.awsdns-21.co.uk
github.com 900 NS ns-421.awsdns-52.com
github.com 900 NS ns-520.awsdns-01.net
github.com 3600 CAA 0 issue digicert.com
github.com 3600 CAA 0 issue globalsign.com
github.com 3600 CAA 0 issuewild digicert.com
github.com 3600 MX 1 aspmx.l.google.com
github.com 3600 MX 5 alt1.aspmx.l.google.com
github.com 3600 MX 5 alt2.aspmx.l.google.com
github.com 3600 MX 10 alt3.aspmx.l.google.com
github.com 3600 MX 10 alt4.aspmx.l.google.com
github.com 3600 TXT MS=6BF03E6AF5CB689E315FB6199603BABF2C88D805
github.com 3600 TXT MS=ms44452932
github.com 3600 TXT MS=ms58704441
github.com 3600 TXT adobe-idp-site-verification=b92c9e999aef825edc36e0a3d847d2dbad5b2fc0e05c79ddd7a16139b48ecf4b
github.com 3600 TXT apple-domain-verification=RyQhdzTl6Z6x8ZP4
github.com 3600 TXT atlassian-domain-verification=jjgw98AKv2aeoYFxiL/VFaoyPkn3undEssTRuMg6C/3Fp/iqhkV4HVV7WjYlVeF8
github.com 3600 TXT docusign=087098e3-3d46-47b7-9b4e-8a23028154cd
github.com 3600 TXT google-site-verification=UTM-3akMgubp6tQtgEuAkYNYLyYAvpTnnSrDMWoDR3o
github.com 3600 TXT stripe-verification=f88ef17321660a01bab1660454192e014defa29ba7b8de9633c69d6b4912217f
github.com 3600 TXT v=spf1 ip4:192.30.252.0/22 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com include:spf.protection.outlook.com include:mail.zendesk.com include:_spf.salesforce.com include:servers.mcsv.net ip4:166.78.69.169 ip4:1
_dmarc.github.com 300 TXT v=DMARC1; p=reject; pct=100; rua= mailto : dmarc @ github.com
mta-sts.github.com 3600 CNAME github.github.io
www.github.com 60 A 140.82.112.3
www.github.com 3600 CNAME github.com

SSL/TLS Report

 A record via            supplied IP "140.82.121.3"
 rDNS (140.82.121.3):    lb-140-82-121-3-fra.github.com.
 Service detected:       HTTP


 SSL/TLS protocols 
 SSLv2      not offered (OK)
 SSLv3      not offered (OK)
 TLS 1      not offered
 TLS 1.1    not offered
 TLS 1.2    offered (OK)
 TLS 1.3    offered (OK): final
 NPN/SPDY   not offered
 ALPN/HTTP2 h2, http/1.1 (offered)

 SSL/TLS server implementation bugs 

 No bugs found.

 Cipher categories 

 NULL ciphers (no encryption)                  not offered (OK) -- NULL:eNULL
 Anonymous NULL Ciphers (no authentication)    not offered (OK) -- aNULL:ADH
 Export ciphers (w/o ADH+NULL)                 not offered (OK) -- EXPORT:!ADH:!NULL
 LOW: 64 Bit + DES encryption (w/o export)     not offered (OK) -- LOW:DES:!ADH:!EXP:!NULL
 Weak 128 Bit ciphers (SEED, IDEA, RC[2,4])    not offered (OK) -- MEDIUM:!aNULL:!AES:!CAMELLIA:!ARIA:!CHACHA20:!3DES
 Triple DES Ciphers (Medium)                   not offered (OK) -- 3DES:!aNULL:!ADH
 High encryption (AES+Camellia, no AEAD)       offered (OK) -- HIGH:!NULL:!aNULL:!DES:!3DES:!AESGCM:!CHACHA20:!AESGCM:!CamelliaGCM:!AESCCM8:!AESCCM
 Strong encryption (AEAD ciphers)              offered (OK) -- AESGCM:CHACHA20:AESGCM:CamelliaGCM:AESCCM8:AESCCM


 Robust (perfect) forward secrecy, (P)FS -- omitting Null Authentication/Encryption, 3DES, RC4 

 PFS is offered (OK)          TLS_AES_256_GCM_SHA384 
                              TLS_CHACHA20_POLY1305_SHA256 
                              ECDHE-RSA-AES256-GCM-SHA384 
                              ECDHE-ECDSA-AES256-GCM-SHA384 
                              ECDHE-RSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA384 
                              ECDHE-RSA-AES256-SHA ECDHE-ECDSA-AES256-SHA 
                              ECDHE-ECDSA-CHACHA20-POLY1305 
                              ECDHE-RSA-CHACHA20-POLY1305 
                              TLS_AES_128_GCM_SHA256 
                              ECDHE-RSA-AES128-GCM-SHA256 
                              ECDHE-ECDSA-AES128-GCM-SHA256 
                              ECDHE-RSA-AES128-SHA256 
 Elliptic curves offered:     prime256v1 X25519 


 Server preferences 

 Has server cipher order?     yes (OK)
 Negotiated protocol          TLSv1.3
 Negotiated cipher            TLS_AES_128_GCM_SHA256, 253 bit ECDH (X25519)
 Cipher order
    TLSv1.2:   ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 
               ECDHE-ECDSA-CHACHA20-POLY1305 ECDHE-RSA-CHACHA20-POLY1305 
               ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 
               ECDHE-ECDSA-AES128-SHA256 ECDHE-RSA-AES128-SHA256 
               ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-AES256-SHA384 
               ECDHE-ECDSA-AES256-SHA ECDHE-RSA-AES256-SHA AES128-GCM-SHA256 
               AES256-GCM-SHA384 AES128-SHA256 AES256-SHA256 AES128-SHA 
               AES256-SHA 
    TLSv1.3:   TLS_AES_128_GCM_SHA256 TLS_CHACHA20_POLY1305_SHA256 
               TLS_AES_256_GCM_SHA384 


 Server defaults (Server Hello) 

 TLS extensions (standard)    "renegotiation info/#65281" "server name/#0"
                              "EC point formats/#11" "supported versions/#43"
                              "key share/#51" "supported_groups/#10"
                              "max fragment length/#1"
                              "application layer protocol negotiation/#16"
                              "encrypt-then-mac/#22"
                              "extended master secret/#23"
 Session Ticket RFC 5077 hint (no lifetime advertised)
 SSL Session ID support       yes
 Session Resumption           Tickets no, ID: no
 TLS clock skew               Random values, no fingerprinting possible 

  Server Certificate #1
   Signature Algorithm          SHA256 with RSA
   Server key size              RSA 2048 bits
   Server key usage             Digital Signature, Key Encipherment
   Server extended key usage    TLS Web Server Authentication, TLS Web Client Authentication
   Serial / Fingerprints        0D46B383D8F8435D4ABFF9BE6B9EED81 / SHA1 D42A8F8A1DD7E058C5E5916983CFF6329E23DBDB
                                SHA256 D94BC37BB699AAF8FC2453BFAE964F1B87A557DFB0DA526AC95D203C0DBA719C
   Common Name (CN)             github.com
   subjectAltName (SAN)         github.com www.github.com 
   Issuer                       DigiCert TLS RSA SHA256 2020 CA1 (DigiCert Inc from US)
   Trust (hostname)             Ok via SAN and CN (same w/o SNI)
   Chain of trust               Ok   
   EV cert (experimental)       no 
   Certificate Validity (UTC)   184 >= 60 days (2022-04-20 00:00 --> 2023-04-20 23:59)
   # of certificates provided   2
   Certificate Revocation List  http://crl3.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl
                                http://crl4.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl
   OCSP URI                     http://ocsp.digicert.com
   OCSP stapling                not offered
   OCSP must staple extension   --
   DNS CAA RR (experimental)    available - please check for match with "Issuer" above
                                issue=digicert.com, issue=globalsign.com,
                                issuewild=digicert.com
   Certificate Transparency     yes (certificate extension)

  Server Certificate #2
   Signature Algorithm          ECDSA with SHA384
   Server key size              EC 256 bits
   Server key usage             Digital Signature
   Server extended key usage    TLS Web Server Authentication, TLS Web Client Authentication
   Serial / Fingerprints        05189A54EBE8C7E903E0AB0D925545DE / SHA1 1E16CC3F842F65FCC0AB932D638AC64A95C91B7A
                                SHA256 B7BC5510CC1C637B5E5FB785816A773DBB394B68337B1B117CA5AB43CCF778CF
   Common Name (CN)             github.com
   subjectAltName (SAN)         github.com www.github.com 
   Issuer                       DigiCert TLS Hybrid ECC SHA384 2020 CA1 (DigiCert Inc from US)
   Trust (hostname)             Ok via SAN and CN (same w/o SNI)
   Chain of trust               Ok   
   EV cert (experimental)       no 
   Certificate Validity (UTC)   148 >= 60 days (2022-03-15 00:00 --> 2023-03-15 23:59)
   # of certificates provided   2
   Certificate Revocation List  http://crl3.digicert.com/DigiCertTLSHybridECCSHA3842020CA1-1.crl
                                http://crl4.digicert.com/DigiCertTLSHybridECCSHA3842020CA1-1.crl
   OCSP URI                     http://ocsp.digicert.com
   OCSP stapling                not offered
   OCSP must staple extension   --
   DNS CAA RR (experimental)    available - please check for match with "Issuer" above
                                issue=digicert.com, issue=globalsign.com,
                                issuewild=digicert.com
   Certificate Transparency     yes (certificate extension)


 HTTP header response @ "/" 

 HTTP Status Code             200 OK
 HTTP clock skew              +84 sec from localtime
 Strict Transport Security    365 days=31536000 s, includeSubDomains, preload
 Public Key Pinning           --
 Server banner                GitHub.com
 Application banner           --
 Cookie(s)                    3 issued: 3/3 secure, 2/3 HttpOnly
 Security headers             X-Frame-Options deny
                              X-XSS-Protection 0
                              X-Content-Type-Options nosniff
                              Content-Security-Policy default-src 'none'; base-uri 'self';
                              block-all-mixed-content; child-src
                              github.com/assets-cdn/worker/
                              gist.github.com/assets-cdn/worker/; connect-src
                              'self' uploads.github.com
                              objects-origin.githubusercontent.com
                              www.githubstatus.com collector.github.com
                              raw.githubusercontent.com api.github.com
                              github-cloud.s3.amazonaws.com
                              github-production-repository-file-5c1aeb.s3.amazonaws.com 
                              ithub-production-upload-manifest-file-7fdce7.s3.amazonaws.com 
                              ithub-production-user-asset-6210df.s3.amazonaws.com 
                              dn.optimizely.com logx.optimizely.com/v1/events
                              *.actions.githubusercontent.com
                              wss://*.actions.githubusercontent.com
                              online.visualstudio.com/api/v1/locations
                              github-production-repository-image-32fea6.s3.amazonaws.com 
                              ithub-production-release-asset-2e65be.s3.amazonaws.com 
                              nsights.github.com wss://alive.github.com
                              github.githubassets.com; font-src
                              github.githubassets.com; form-action 'self'
                              github.com gist.github.com
                              objects-origin.githubusercontent.com;
                              frame-ancestors 'none'; frame-src
                              viewscreen.githubusercontent.com
                              notebooks.githubusercontent.com; img-src 'self'
                              data: github.githubassets.com
                              identicons.github.com
                              github-cloud.s3.amazonaws.com
                              secured-user-images.githubusercontent.com/
                              github-production-user-asset-6210df.s3.amazonaws.com 
                              ustomer-stories-feed.github.com
                              spotlights-feed.github.com
                              *.githubusercontent.com; manifest-src 'self';
                              media-src github.com
                              user-images.githubusercontent.com/
                              secured-user-images.githubusercontent.com/
                              github.githubassets.com; script-src
                              github.githubassets.com; style-src
                              'unsafe-inline' github.githubassets.com;
                              worker-src github.com/assets-cdn/worker/
                              gist.github.com/assets-cdn/worker/
                              Expect-CT max-age=2592000,
                              report-uri="https://api.github.com/_private/browser/errors"
                              Referrer-Policy origin-when-cross-origin, strict-origin-when-cross-origin
 Reverse Proxy banner         --


 SSL/TLS vulnerabilities 

 Heartbleed (CVE-2014-0160)                not vulnerable (OK), no heartbeat extension
 CCS (CVE-2014-0224)                       not vulnerable (OK)
 Ticketbleed (CVE-2016-9244), experiment.  not vulnerable (OK), no session ticket extension
 ROBOT                                     not vulnerable (OK)
 Secure Renegotiation (CVE-2009-3555)      not vulnerable (OK)
 Secure Client-Initiated Renegotiation     not vulnerable (OK)
 CRIME, TLS (CVE-2012-4929)                not vulnerable (OK)
 BREACH (CVE-2013-3587)                    potentially NOT ok, uses gzip HTTP compression. - only supplied "/" tested
                                           Can be ignored for static pages or if no secrets in the page
 POODLE, SSL (CVE-2014-3566)               not vulnerable (OK)
 TLS_FALLBACK_SCSV (RFC 7507)              No fallback possible, no protocol below TLS 1.2 offered (OK)
 SWEET32 (CVE-2016-2183, CVE-2016-6329)    not vulnerable (OK)
 FREAK (CVE-2015-0204)                     not vulnerable (OK)
 DROWN (CVE-2016-0800, CVE-2016-0703)      not vulnerable on this host and port (OK)
                                           make sure you don't use this certificate elsewhere with SSLv2 enabled services
                                           https://censys.io/ipv4?q=D94BC37BB699AAF8FC2453BFAE964F1B87A557DFB0DA526AC95D203C0DBA719C
                                           could help you to find out
 LOGJAM (CVE-2015-4000), experimental      not vulnerable (OK): no DH EXPORT ciphers, no DH key detected
 BEAST (CVE-2011-3389)                     no SSL3 or TLS1 (OK)
 LUCKY13 (CVE-2013-0169), experimental     potentially VULNERABLE, uses cipher block chaining (CBC) ciphers with TLS. Check patches
 RC4 (CVE-2013-2566, CVE-2015-2808)        no RC4 ciphers detected (OK)


 Tested 364 ciphers, ordered by encryption strength 

Hexcode  Cipher Suite Name (OpenSSL)       KeyExch.   Encryption  Bits     Cipher Suite Name (RFC)
-----------------------------------------------------------------------------------------------------------------------------
 x1302   TLS_AES_256_GCM_SHA384            ECDH 253   AESGCM      256      TLS_AES_256_GCM_SHA384                             
 x1303   TLS_CHACHA20_POLY1305_SHA256      ECDH 253   ChaCha20    256      TLS_CHACHA20_POLY1305_SHA256                       
 xc030   ECDHE-RSA-AES256-GCM-SHA384       ECDH 256   AESGCM      256      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384              
 xc02c   ECDHE-ECDSA-AES256-GCM-SHA384     ECDH 256   AESGCM      256      TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384            
 xc028   ECDHE-RSA-AES256-SHA384           ECDH 256   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384              
 xc024   ECDHE-ECDSA-AES256-SHA384         ECDH 256   AES         256      TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384            
 xc014   ECDHE-RSA-AES256-SHA              ECDH 256   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA                 
 xc00a   ECDHE-ECDSA-AES256-SHA            ECDH 256   AES         256      TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA               
 xcca9   ECDHE-ECDSA-CHACHA20-POLY1305     ECDH 253   ChaCha20    256      TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256      
 xcca8   ECDHE-RSA-CHACHA20-POLY1305       ECDH 253   ChaCha20    256      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256        
 x9d     AES256-GCM-SHA384                 RSA        AESGCM      256      TLS_RSA_WITH_AES_256_GCM_SHA384                    
 x3d     AES256-SHA256                     RSA        AES         256      TLS_RSA_WITH_AES_256_CBC_SHA256                    
 x35     AES256-SHA                        RSA        AES         256      TLS_RSA_WITH_AES_256_CBC_SHA                       
 x1301   TLS_AES_128_GCM_SHA256            ECDH 253   AESGCM      128      TLS_AES_128_GCM_SHA256                             
 xc02f   ECDHE-RSA-AES128-GCM-SHA256       ECDH 256   AESGCM      128      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256              
 xc02b   ECDHE-ECDSA-AES128-GCM-SHA256     ECDH 256   AESGCM      128      TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256            
 xc027   ECDHE-RSA-AES128-SHA256           ECDH 256   AES         128      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256              
 xc023   ECDHE-ECDSA-AES128-SHA256         ECDH 256   AES         128      TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256            
 x9c     AES128-GCM-SHA256                 RSA        AESGCM      128      TLS_RSA_WITH_AES_128_GCM_SHA256                    
 x3c     AES128-SHA256                     RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA256                    
 x2f     AES128-SHA                        RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA                       


 Ciphers per protocol, ordered by encryption strength 

Hexcode  Cipher Suite Name (OpenSSL)       KeyExch.   Encryption  Bits     Cipher Suite Name (RFC)
-----------------------------------------------------------------------------------------------------------------------------
TLS 1.3  
 x1302   TLS_AES_256_GCM_SHA384            ECDH 253   AESGCM      256      TLS_AES_256_GCM_SHA384                             
 x1303   TLS_CHACHA20_POLY1305_SHA256      ECDH 253   ChaCha20    256      TLS_CHACHA20_POLY1305_SHA256                       
 x1301   TLS_AES_128_GCM_SHA256            ECDH 253   AESGCM      128      TLS_AES_128_GCM_SHA256                             
TLS 1.2  
 xc030   ECDHE-RSA-AES256-GCM-SHA384       ECDH 256   AESGCM      256      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384              
 xc02c   ECDHE-ECDSA-AES256-GCM-SHA384     ECDH 256   AESGCM      256      TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384            
 xc028   ECDHE-RSA-AES256-SHA384           ECDH 256   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384              
 xc024   ECDHE-ECDSA-AES256-SHA384         ECDH 256   AES         256      TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384            
 xc014   ECDHE-RSA-AES256-SHA              ECDH 256   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA                 
 xc00a   ECDHE-ECDSA-AES256-SHA            ECDH 256   AES         256      TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA               
 xcca9   ECDHE-ECDSA-CHACHA20-POLY1305     ECDH 253   ChaCha20    256      TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256      
 xcca8   ECDHE-RSA-CHACHA20-POLY1305       ECDH 253   ChaCha20    256      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256        
 x9d     AES256-GCM-SHA384                 RSA        AESGCM      256      TLS_RSA_WITH_AES_256_GCM_SHA384                    
 x3d     AES256-SHA256                     RSA        AES         256      TLS_RSA_WITH_AES_256_CBC_SHA256                    
 x35     AES256-SHA                        RSA        AES         256      TLS_RSA_WITH_AES_256_CBC_SHA                       
 xc02f   ECDHE-RSA-AES128-GCM-SHA256       ECDH 256   AESGCM      128      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256              
 xc02b   ECDHE-ECDSA-AES128-GCM-SHA256     ECDH 256   AESGCM      128      TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256            
 xc027   ECDHE-RSA-AES128-SHA256           ECDH 256   AES         128      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256              
 xc023   ECDHE-ECDSA-AES128-SHA256         ECDH 256   AES         128      TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256            
 x9c     AES128-GCM-SHA256                 RSA        AESGCM      128      TLS_RSA_WITH_AES_128_GCM_SHA256                    
 x3c     AES128-SHA256                     RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA256                    
 x2f     AES128-SHA                        RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA                       
TLS 1.1  
TLS 1  
SSLv3  
SSLv2  

 Client simulations 

 Android 2.3.7                No connection
 Android 4.0.4                No connection
 Android 4.1.1                No connection
 Android 4.2.2                No connection
 Android 4.3                  No connection
 Android 4.4.2                TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 5.0.0                TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 6.0                  TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Android 7.0                  TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305, 253 bit ECDH (X25519)
 Chrome 27 Win 7              No connection
 Chrome 28 Win 7              No connection
 Chrome 29 Win 7              No connection
 Chrome 30 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Chrome 31 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 32 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 33 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 34 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 35 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 36 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 37 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 39 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 40 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 42 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 43 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 45 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 47 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 48 OS X               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 49 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 49 XP SP3             TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Chrome 50 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Chrome 51 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Chrome 57 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Chrome 65 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Chrome 69 Win 7              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Chrome 70 Win 10             TLSv1.3 TLS_AES_128_GCM_SHA256, 253 bit ECDH (X25519)
 Firefox 10.0.12 ESR Win 7    No connection
 Firefox 17.0.7 ESR Win 7     No connection
 Firefox 21 Fedora 19         No connection
 Firefox 21 Win 7             No connection
 Firefox 22 Win 7             No connection
 Firefox 24.2.0 ESR Win 7     No connection
 Firefox 24 Win 7             No connection
 Firefox 26 Win 8             No connection
 Firefox 27 Win 8             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 29 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 30 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 31.3.0 ESR Win 7     TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 31 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 32 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 34 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 35 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 37 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 39 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 41 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 42 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 44 OS X              TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 45 Win 7             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 46 Win 7             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 47 Win 7             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 49 Win 7             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 49 XP SP3            TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Firefox 53 Win 7             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Firefox 59 Win 7             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Firefox 62 Win 7             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 IE 6 XP                      No connection
 IE 7 Vista                   No connection
 IE 8-10 Win 7                No connection
 IE 8 Win 7                   No connection
 IE 8 XP                      No connection
 IE 9 Win 7                   No connection
 IE 10 Win Phone 8.0          No connection
 IE 11 Win 7                  TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 IE 11 Win 8.1                TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 IE 11 Win Phone 8.1          TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 IE 11 Win Phone 8.1 Update   TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 IE 11 Win 10                 TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 IE 11 Win 10 Preview         TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Edge 12 Win 10               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Edge 13 Win 10               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Edge 13 Win Phone 10         TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Edge 15 Win 10               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Opera 12.15 Win 7            No connection
 Opera 15 Win 7               No connection
 Opera 16 Win 7               No connection
 Opera 17 Win 7               TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 5.1.9 OS X 10.6.8     No connection
 Safari 5 iOS 5.1.1           TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 6.0.4 OS X 10.8.4     No connection
 Safari 6 iOS 6.0.1           TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 7 iOS 7.1             TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 7 OS X 10.9           TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 8 iOS 8.0 Beta        TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 8 iOS 8.4             TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 8 OS X 10.10          TLSv1.2 ECDHE-ECDSA-AES128-SHA256, 256 bit ECDH (P-256)
 Safari 9 iOS 9               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 9 OS X 10.11          TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 10 iOS 10             TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Safari 10 OS X 10.12         TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Tor 17.0.9 Win 7             No connection
 Apple ATS 9 iOS 9            TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Baidu Jan 2015               No connection
 BingBot Dec 2013             No connection
 BingPreview Dec 2013         No connection
 BingPreview Jun 2014         No connection
 BingPreview Jan 2015         TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Googlebot Oct 2013           No connection
 Googlebot Jun 2014           No connection
 Googlebot Feb 2015           TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Googlebot Feb 2018           TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 253 bit ECDH (X25519)
 Yahoo Slurp Oct 2013         No connection
 Yahoo Slurp Jun 2014         TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Yahoo Slurp Jan 2015         TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 YandexBot 3.0                No connection
 YandexBot May 2014           No connection
 YandexBot Sep 2014           TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 YandexBot Jan 2015           TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 6u45                    No connection
 Java 7u25                    No connection
 Java 8b132                   TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 8u111                   TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 8u161                   TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 8u31                    TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 Java 9.0.4                   TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 OpenSSL 0.9.8y               No connection
 OpenSSL 1.0.1h               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 OpenSSL 1.0.1l               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)
 OpenSSL 1.0.2e               TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256, 256 bit ECDH (P-256)


Security HTTP Headers

HTTP Strict Transport Security (HSTS)   offered (OK)
Content Security Policy (CSP)           offered (OK)
X-Frame-Options                         offered (OK)
X-XSS-Protection                        offered (OK)
X-Content-Type-Options                  offered (OK)
Expect-CT                               offered (OK)
Referrer Policy                         offered (OK)
Feature Policy                          not offered
Web Server Version Disclosure           not offered (OK)
Web Application Disclosure              not offered (OK)
HTTP Public Key Pins (HPKP)             not offered, deprecated

Connection Performance
Keep Alive Connection                   not offered
Content Encoding (Compression)          offered (Gzip) OK, for static pages or if no secrets in the page

Raw HTTP Headers

HTTP/1.1 200 OK
Accept-Ranges bytes
Cache-Control max-age=0, private, must-revalidate
Content-Encoding gzip
Content-Language en-US
Content-Security-Policy default-src 'none'; base-uri 'self'; block-all-mixed-content; child-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com objects-origin.githubusercontent.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com cdn.optimizely.com logx.optimizely.com/v1/events *.actions.githubusercontent.com wss://*.actions.githubusercontent.com online.visualstudio.com/api/v1/locations github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com github.githubassets.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: github.githubassets.com identicons.github.com github-cloud.s3.amazonaws.com secured-user-images.githubusercontent.com/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ github.githubassets.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; worker-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/
Content-Type text/html; charset=utf-8
Date Tue, 18 Oct 2022 23:42:31 GMT
ETag W/"62caaa60b47e0e9a3c9c97dab0bc893f"
Expect-CT max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
Referrer-Policy origin-when-cross-origin, strict-origin-when-cross-origin
Server GitHub.com
Set-Cookie logged_in=no; Path=/; Domain=github.com; Expires=Wed, 18 Oct 2023 23:42:46 GMT; HttpOnly; Secure; SameSite=Lax
Strict-Transport-Security max-age=31536000; includeSubdomains; preload
Vary X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Language, Accept-Encoding, Accept, X-Requested-With
X-Content-Type-Options nosniff
X-Frame-Options deny
X-GitHub-Request-Id B1AE:68FA:104775:10EACF:634F39F6
X-XSS-Protection

Cleaned HTML

<!DOCTYPE html>
<html lang="en" data-a11y-animated-images="system">
<head>
<meta charset="utf-8" />
<link rel="dns-prefetch" href="https://github.githubassets.com" />
<link rel="dns-prefetch" href="https://avatars.githubusercontent.com" />
<link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com" />
<link rel="dns-prefetch" href="https://user-images.githubusercontent.com/" />
<link rel="preconnect" href="https://github.githubassets.com" crossorigin="" />
<link rel="preconnect" href="https://avatars.githubusercontent.com" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-5178aee0ee76.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-217d4f9c8e70.css" />
<link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-5178aee0ee76.css" />
<link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-217d4f9c8e70.css" />
<link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-0adfa28f0e68.css" />
<link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-1c8575b36644.css" />
<link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-5113d2be20b0.css" />
<link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-c96add742484.css" />
<link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-290f92f5e867.css" />
<link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-cdd88f146bf7.css" />
<link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-2171ea0f078b.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-2280eb26901e.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-3ba07bcfee8b.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-2dd1ce4b3d5c.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dashboard-f4b1d992339b.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-113765a6413c.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/home-06d3899b7964.css" />
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-78b59eded900.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_manuelpuyol_turbo_dist_turbo_es2017-esm_js-7ca92c8d513d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_stacktrace-parser_dist_stack-trace-parser_esm_js-node_modules_github_bro-d351f6-c1d63d230b29.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_smoothscroll-polyfill_dist_smoothscroll_js-node_modules_github_hydro-ana-bb79c3-260c6842245e.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-6997f8efb40d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_selector-observer_dist_index_esm_js-650337916dbd.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_details-dialog-elemen-63debe-4a2f37f7419e.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-6afc16-fa4f01d20b81.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_fzy_js_index_js-node_modules_github_markdown-toolbar-element_dist_index_js-5936f45973f5.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_time-elements_dist_index_js-74b4ec51ce20.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_github_filter--6a5bff-93edd18dab1d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-47df4383add3.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-a00507341842.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-e954e8c01c93.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_remote-form_dist_-ece2b0-917c0dad4566.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_alive-client_dist_index_js-node_modules_github_memoize_dist_esm_i-fab77c-ff9d9fde6bc6.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_dimensions_js-node_modules_github_hydro-analyt-f69502-65a022907302.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_paste-mark-c3e01c-5a047723cd89.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_updatable-content_ts-62df1309213c.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-6483ace64969.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_keyboard-shortcuts-helper_ts-app_assets_modules_github_be-ac2ea2-fda9c90f5f33.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_blob-anchor_ts-app_assets_modules_github_hydro-tracking_ts-app_asse-414b68-e517277d517c.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-02b38260d85d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-68d276ae12dd.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-06ff533-60844731e2b9.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-e71e7f99b10d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-06ff531-17204a539101.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/marketing-dffc05f010fc.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/home-2dd6739e14f6.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_webgl-globe_dist_js_main_js-8dc1957e5bb1.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/webgl-globe-d9a3329d3745.js"></script>
<title>GitHub: Where the world builds software · GitHub</title>
<meta name="request-id" content="B1AE:68FA:104775:10EACF:634F39F6" data-pjax-transient="true" />
<meta name="html-safe-nonce" content="41b0d2fc918b314ec8b026ef6a22ecb58038334140d279fec4b15f3182a15e33" data-pjax-transient="true" />
<meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vd3d3Lmh0bWx5c2UuY29tLyIsInJlcXVlc3RfaWQiOiJCMUFFOjY4RkE6MTA0Nzc1OjEwRUFDRjo2MzRGMzlGNiIsInZpc2l0b3JfaWQiOiI0MjY0NTIyMTIxMzQwNzI5ODQ2IiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true" />
<meta name="visitor-hmac" content="6327d2969bf67c1ffab533863c86ddb2cd3bff323109b68d3e5f3b34dea97e4b" data-pjax-transient="true" />
<meta name="page-subject" content="GitHub" />
<meta name="github-keyboard-shortcuts" content="dashboards" data-turbo-transient="true" />
<meta name="selected-link" value="/" data-turbo-transient="" />
<meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY" />
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU" />
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA" />
<meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc" />
<meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I" />
<meta name="octolytics-url" content="https://collector.github.com/github/collect" />
<meta name="user-login" content="" />
<meta name="viewport" content="width=device-width" />
<meta name="description" content="GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it." />
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
<meta property="fb:app_id" content="1401488693436528" />
<meta name="apple-itunes-app" content="app-id=1477376905" />
<meta name="twitter:image:src" content="https://github.githubassets.com/images/modules/site/social-cards/github-social.png" />
<meta name="twitter:site" content="@github" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="GitHub: Where the world builds software" />
<meta name="twitter:description" content="GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat..." />
<meta property="og:image" content="https://github.githubassets.com/images/modules/site/social-cards/github-social.png" />
<meta property="og:image:alt" content="GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat..." />
<meta property="og:site_name" content="GitHub" />
<meta property="og:type" content="object" />
<meta property="og:title" content="GitHub: Where the world builds software" />
<meta property="og:url" content="https://github.com/" />
<meta property="og:description" content="GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat..." />
<link rel="assets" href="https://github.githubassets.com/" />
<meta name="hostname" content="github.com" />
<meta name="expected-hostname" content="github.com" />
<meta name="enabled-features" content="ACTIONS_RUN_NAME,IMAGE_METRIC_TRACKING,GEOJSON_AZURE_MAPS,STRICT_DEFERRED_DIFF_LINES_CHECKS" />
<meta http-equiv="x-pjax-version" content="ade01ab7ec2a92bc8ac2c88239bec7c43d451d60effe0b6d37dd963e53d276a6" data-turbo-track="reload" />
<meta http-equiv="x-pjax-csp-version" content="fbf5aa8bdd6e37ffefb75b1e69535207f0f3c3a61553c8d37dc6bd75847e9a99" data-turbo-track="reload" />
<meta http-equiv="x-pjax-css-version" content="63dcc8c78d70ea88197af91650ae63c1242ff257f5daf924d446f97ad1c6886e" data-turbo-track="reload" />
<meta http-equiv="x-pjax-js-version" content="a4c57c9be0ed0e99ad1b7347cec864372c2d5bc3ea65cb4fd63b98e6cf3cd5af" data-turbo-track="reload" />
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="" />
<meta name="homepage-version-ga-dimension" content="dimension11" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="620" />
<link rel="preload" href="/webgl-globe/data/data.json" as="fetch" type="application/json" />
<link rel="preload" href="https://github.githubassets.com/static/fonts/github/alliance-1.woff2" as="font" type="font/woff2" crossorigin="" />
<link rel="canonical" href="https://github.com/" data-turbo-transient="" />
<meta name="turbo-body-classes" content="logged-out env-production page-responsive header-overlay" />
<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats" />
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors" />
<meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors" />
<link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000" />
<link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png" />
<link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" />
<meta name="theme-color" content="#1e2327" />
<link rel="manifest" href="/manifest.json" crossorigin="use-credentials" />
<style type="text/css">
/*<![CDATA[*/
body.c58 {word-wrap: break-word;}
div.c57 {display: none; outline: none; width: 360px}
p.c56 {-webkit-box-orient: vertical; min-height: 3em;}
svg.c55 {transform: scaleY(-1);}
img.c54 {min-width: 10px}
div.c53 {padding-top: 0 !important}
div.c52 {margin-left: -2.3125rem;}
div.c51 {width: 164px; height: 164px;}
div.c50 {max-width: 706px;}
div.c49 {left: 9.75%; top: 9.5%; width: 5.5%; height: 80.25%;}
div.c48 {width: 27%;}
div.c47 {border-top-left-radius: 0 !important;}
div.c46 {width: 22%;}
div.c45 {max-width: 276px}
div.c44 {top: 10%;}
div.c43 {max-width: 706px; font-size: 0;}
div.c42 {background-color: #040d21; border-radius: inherit;}
svg.c41 {width: 42px; height: 42px;}
div.c40 {background-color: #040d21}
div.c39 {width: 1rem; height: 10rem; margin-top: 0.875rem; border-radius: 0 16px 0 0; border-top: 2px solid #424d65; border-right: 2px solid #424d65;}
div.c38 {height: 1rem; border-radius: 0 0 0 1rem; border-bottom: 2px solid #424d65; border-left: 2px solid #424d65;}
div.c37 {padding-left: 0 !important; padding-right: 0 !important;}
svg.c36 {margin-left: -4.6875rem;}
svg.c35 {right: -0.26rem}
div.c34 {padding: 6.5rem 0 0;}
span.c33 {width: 12px; height: 12px; opacity: .4;}
div.c32 {max-width: 490px;}
video.c31 {border-radius: 1.75rem;}
div.c30 {padding-top: 0 !important;}
img.c29 {bottom: 0%; left: 0%;}
img.c28 {bottom: 15%; left: 5%;}
img.c27 {bottom: 30%; left: 10%;}
img.c26 {width: 20px}
svg.c25 {transform: scaleX(-1);}
div.c24 {padding: 5% 0 14.5%}
div.c23 {padding: 8% 0 10.5%}
img.c22 {width: 150%; margin: 0 -25%; top: 50%; transform: translateY(-50%);}
img.c21 {width: 117.31%; margin: 0 -8.65%; top: 50%; transform: translateY(-50%);}
div.c20 {border-bottom-right-radius: 0.375rem;}
div.c19 {font-size: 0;}
div.c18 {margin-bottom: 25%; box-shadow: 0 0 50px 30px #fff}
p.c17 {max-width: 380px;}
h2.c16 {max-width: 310px;}
svg.c15 {bottom: -1px;}
div.c14 {bottom: -4rem;}
video.c13 {margin: auto; z-index: -1; min-width: 100%; min-height: 100%;}
svg.c12 {margin: auto; transform: scale(0.8)}
div.c11 {border-top: 1px solid rgba(255,255,255,0.1)}
input.c10 {height: 3rem}
span.c9 {height: 1.2em}
span.c8 {animation-delay: 9000ms}
span.c7 {animation-delay: 7500ms}
span.c6 {animation-delay: 6000ms}
span.c5 {animation-delay: 4500ms}
span.c4 {animation-delay: 3000ms}
span.c3 {animation-delay: 1500ms}
span.c2 {animation-delay: 0ms}
span.c1 {width: 0%;}
/*]]>*/
</style>
</head>
<body class="logged-out env-production page-responsive header-overlay c58">
<div class="position-relative js-header-wrapper"><a href="#start-of-content" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis c1" data-view-component="true"></span>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-49be4e13fea3.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/sessions-239675566f74.js"></script>
<header class="Header-old header-logged-out js-details-container Details position-relative f4 py-3" role="banner"><button type="button" class="Header-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target" aria-label="Toggle navigation"><span class="d-none">Toggle navigation</span></button>
<div class="container-xl d-flex flex-column flex-lg-row flex-items-center p-responsive height-full position-relative z-1">
<div class="d-flex flex-justify-between flex-items-center width-full width-lg-auto"><a class="mr-lg-3 color-fg-inherit flex-order-2" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark"><svg height="32" aria-hidden="true" viewbox="0 0 16 16" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github">
<path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
</svg></a>
<div class="flex-1"><a href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F&amp;source=header-home" class="d-inline-block d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="520d87e8f83281e6946b192f0f840552721c7fcba9b9c36d802e898a816314e2">Sign&nbsp;up</a></div>
<div class="flex-1 flex-order-2 text-right"><button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target Button--link Button--medium Button d-lg-none color-fg-inherit p-1"><span class="Button-content Button-label"></span></button>
<div class="HeaderMenu-toggle-bar rounded my-1"><button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target Button--link Button--medium Button d-lg-none color-fg-inherit p-1"><span class="Button-content"></span></button></div>
<div class="HeaderMenu-toggle-bar rounded my-1"><button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target Button--link Button--medium Button d-lg-none color-fg-inherit p-1"><span class="Button-content"></span></button></div>
<div class="HeaderMenu-toggle-bar rounded my-1"><button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target Button--link Button--medium Button d-lg-none color-fg-inherit p-1"><span class="Button-content"></span></button></div>
</div>
</div>
<div class="HeaderMenu--logged-out p-responsive height-fit position-lg-relative d-lg-flex flex-column flex-auto pt-7 pb-4 top-0 header-menu-wrapper d-flex flex-column flex-self-end flex-lg-row flex-justify-between flex-auto p-3 p-lg-0 rounded rounded-lg-0 mt-3 mt-lg-0">
<nav class="mt-0 px-3 px-lg-0 mb-3 mb-lg-0" aria-label="Global">
<ul class="d-lg-flex list-style-none">
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"><button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-3 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">Product <svg opacity="0.5" aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path fill-rule="evenodd" d="M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"></path>
</svg></button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 py-2 py-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex dropdown-menu-wide">
<ul class="list-style-none f5 px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7">
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Actions&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Actions;&quot;}" href="/features/actions"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3">
<path fill-rule="evenodd" d="M1 3a2 2 0 012-2h6.5a2 2 0 012 2v6.5a2 2 0 01-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 012-2H21a2 2 0 012 2V21a2 2 0 01-2 2h-6.5a2 2 0 01-2-2v-2.5H8.437A2.938 2.938 0 015.5 15.562V11.5H3a2 2 0 01-2-2V3zm2-.5a.5.5 0 00-.5.5v6.5a.5.5 0 00.5.5h6.5a.5.5 0 00.5-.5V3a.5.5 0 00-.5-.5H3zM14.5 14a.5.5 0 00-.5.5V21a.5.5 0 00.5.5H21a.5.5 0 00.5-.5v-6.5a.5.5 0 00-.5-.5h-6.5z"></path>
</svg>
<div>
<div class="color-fg-default h4">Actions</div>
Automate any workflow</div>
</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Packages&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Packages;&quot;}" href="/features/packages"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-package color-fg-subtle mr-3">
<path fill-rule="evenodd" d="M12.876.64a1.75 1.75 0 00-1.75 0l-8.25 4.762a1.75 1.75 0 00-.875 1.515v9.525c0 .625.334 1.203.875 1.515l8.25 4.763a1.75 1.75 0 001.75 0l8.25-4.762a1.75 1.75 0 00.875-1.516V6.917a1.75 1.75 0 00-.875-1.515L12.876.639zm-1 1.298a.25.25 0 01.25 0l7.625 4.402-7.75 4.474-7.75-4.474 7.625-4.402zM3.501 7.64v8.803c0 .09.048.172.125.216l7.625 4.402v-8.947L3.501 7.64zm9.25 13.421l7.625-4.402a.25.25 0 00.125-.216V7.639l-7.75 4.474v8.947z"></path>
</svg>
<div>
<div class="color-fg-default h4">Packages</div>
Host and manage packages</div>
</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Security&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Security;&quot;}" href="/features/security"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3">
<path d="M16.53 9.78a.75.75 0 00-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 00-1.06 1.06l2.5 2.5a.75.75 0 001.06 0l5-5z"></path>
<path fill-rule="evenodd" d="M12.54.637a1.75 1.75 0 00-1.08 0L3.21 3.312A1.75 1.75 0 002 4.976V10c0 6.19 3.77 10.705 9.401 12.83.386.145.812.145 1.198 0C18.229 20.704 22 16.19 22 10V4.976c0-.759-.49-1.43-1.21-1.664L12.54.637zm-.617 1.426a.25.25 0 01.154 0l8.25 2.676a.25.25 0 01.173.237V10c0 5.461-3.28 9.483-8.43 11.426a.2.2 0 01-.14 0C6.78 19.483 3.5 15.46 3.5 10V4.976c0-.108.069-.203.173-.237l8.25-2.676z"></path>
</svg>
<div>
<div class="color-fg-default h4">Security</div>
Find and fix vulnerabilities</div>
</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Codespaces&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Codespaces;&quot;}" href="/features/codespaces"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3">
<path fill-rule="evenodd" d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0118.75 13H5.25a1.75 1.75 0 01-1.75-1.75v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25H5.25zM1.5 15.75c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 01-1.75 1.75H3.25a1.75 1.75 0 01-1.75-1.75v-4zm1.75-.25a.25.25 0 00-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 00.25-.25v-4a.25.25 0 00-.25-.25H3.25z"></path>
<path fill-rule="evenodd" d="M10 17.75a.75.75 0 01.75-.75h6.5a.75.75 0 010 1.5h-6.5a.75.75 0 01-.75-.75zm-4 0a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5a.75.75 0 01-.75-.75z"></path>
</svg>
<div>
<div class="color-fg-default h4">Codespaces</div>
Instant dev environments</div>
</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Copilot&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Copilot;&quot;}" href="/features/copilot"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3">
<path d="M9.75 14a.75.75 0 01.75.75v2.5a.75.75 0 01-1.5 0v-2.5a.75.75 0 01.75-.75zm4.5 0a.75.75 0 01.75.75v2.5a.75.75 0 01-1.5 0v-2.5a.75.75 0 01.75-.75z"></path>
<path fill-rule="evenodd" d="M12 2c-2.214 0-4.248.657-5.747 1.756a7.43 7.43 0 00-.397.312c-.584.235-1.077.546-1.474.952-.85.87-1.132 2.037-1.132 3.368 0 .368.014.733.052 1.086l-.633 1.478-.043.022A4.75 4.75 0 000 15.222v1.028c0 .529.31.987.564 1.293.28.336.637.653.967.918a13.262 13.262 0 001.299.911l.024.015.006.004.04.025.144.087c.124.073.304.177.535.3.46.245 1.122.57 1.942.894C7.155 21.344 9.439 22 12 22s4.845-.656 6.48-1.303c.819-.324 1.481-.65 1.941-.895a13.797 13.797 0 00.68-.386l.039-.025.006-.004.024-.015a8.829 8.829 0 00.387-.248c.245-.164.577-.396.912-.663.33-.265.686-.582.966-.918.256-.306.565-.764.565-1.293v-1.028a4.75 4.75 0 00-2.626-4.248l-.043-.022-.633-1.478c.038-.353.052-.718.052-1.086 0-1.331-.282-2.499-1.132-3.368-.397-.406-.89-.717-1.474-.952a7.386 7.386 0 00-.397-.312C16.248 2.657 14.214 2 12 2zm-8 9.654l.038-.09c.046.06.094.12.145.177.793.9 2.057 1.259 3.782 1.259 1.59 0 2.739-.544 3.508-1.492.131-.161.249-.331.355-.508a32.948 32.948 0 00.344 0c.106.177.224.347.355.508.77.948 1.918 1.492 3.508 1.492 1.725 0 2.989-.359 3.782-1.259.05-.057.099-.116.145-.177l.038.09v6.669a17.618 17.618 0 01-2.073.98C16.405 19.906 14.314 20.5 12 20.5c-2.314 0-4.405-.594-5.927-1.197A17.62 17.62 0 014 18.323v-6.67zm6.309-1.092a2.35 2.35 0 01-.38.374c-.437.341-1.054.564-1.964.564-1.573 0-2.292-.337-2.657-.75-.192-.218-.331-.506-.423-.89-.091-.385-.135-.867-.135-1.472 0-1.14.243-1.847.705-2.32.477-.487 1.319-.861 2.824-1.024 1.487-.16 2.192.138 2.533.529l.008.01c.264.308.429.806.43 1.568v.031a7.203 7.203 0 01-.09 1.079c-.143.967-.406 1.754-.851 2.301zm2.504-2.497a7.174 7.174 0 01-.063-.894v-.02c.001-.77.17-1.27.438-1.578.341-.39 1.046-.69 2.533-.529 1.506.163 2.347.537 2.824 1.025.462.472.705 1.179.705 2.319 0 1.21-.174 1.926-.558 2.361-.365.414-1.084.751-2.657.751-1.21 0-1.902-.393-2.344-.938-.475-.584-.742-1.44-.878-2.497z"></path>
</svg>
<div>
<div class="color-fg-default h4">Copilot</div>
Write better code with AI</div>
</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Code review&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Code review;&quot;}" href="/features/code-review"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3">
<path d="M10.3 6.74a.75.75 0 01-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 11-1.02 1.1l-3.5-3.25a.75.75 0 010-1.1l3.5-3.25a.75.75 0 011.06.04zm3.44 1.06a.75.75 0 111.02-1.1l3.5 3.25a.75.75 0 010 1.1l-3.5 3.25a.75.75 0 11-1.02-1.1l2.908-2.7-2.908-2.7z"></path>
<path fill-rule="evenodd" d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 01-1.75 1.75h-9.69l-3.573 3.573A1.457 1.457 0 015 21.043V18.5H3.25a1.75 1.75 0 01-1.75-1.75V4.25zM3.25 4a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 01.75.75v3.19l3.72-3.72a.75.75 0 01.53-.22h10a.25.25 0 00.25-.25V4.25a.25.25 0 00-.25-.25H3.25z"></path>
</svg>
<div>
<div class="color-fg-default h4">Code review</div>
Manage code changes</div>
</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center pb-lg-3" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Issues&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Issues;&quot;}" href="/features/issues"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3">
<path fill-rule="evenodd" d="M2.5 12a9.5 9.5 0 1119 0 9.5 9.5 0 01-19 0zM12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11S18.075 1 12 1zm0 13a2 2 0 100-4 2 2 0 000 4z"></path>
</svg>
<div>
<div class="color-fg-default h4">Issues</div>
Plan and track work</div>
</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Discussions&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Discussions;&quot;}" href="/features/discussions"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3">
<path fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v9.5C0 13.216.784 14 1.75 14H3v1.543a1.457 1.457 0 002.487 1.03L8.061 14h6.189A1.75 1.75 0 0016 12.25v-9.5A1.75 1.75 0 0014.25 1H1.75zM1.5 2.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v9.5a.25.25 0 01-.25.25h-6.5a.75.75 0 00-.53.22L4.5 15.44v-2.19a.75.75 0 00-.75-.75h-2a.25.25 0 01-.25-.25v-9.5z"></path>
<path d="M22.5 8.75a.25.25 0 00-.25-.25h-3.5a.75.75 0 010-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0122.25 20H21v1.543a1.457 1.457 0 01-2.487 1.03L15.939 20H10.75A1.75 1.75 0 019 18.25v-1.465a.75.75 0 011.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 01.53.22l2.72 2.72v-2.19a.75.75 0 01.75-.75h2a.25.25 0 00.25-.25v-9.5z"></path>
</svg>
<div>
<div class="color-fg-default h4">Discussions</div>
Collaborate outside of code</div>
</a></li>
</ul>
<ul class="list-style-none f5 px-lg-4">
<li class="h4 color-fg-default my-1">Explore</li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to All features&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:All features;&quot;}" href="/features">All features</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Documentation&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Documentation;&quot;}" href="https://docs.github.com">Documentation <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg></a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to GitHub Skills&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:GitHub Skills;&quot;}" href="https://skills.github.com/">GitHub Skills <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg></a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Product&quot;,&quot;action&quot;:&quot;click to go to Blog&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Blog;&quot;}" href="https://github.blog">Blog <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg></a></li>
</ul>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"><button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-3 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">Solutions <svg opacity="0.5" aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path fill-rule="evenodd" d="M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"></path>
</svg></button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 py-2 py-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 px-lg-4">
<ul class="list-style-none f5 border-bottom pb-3 mb-3">
<li class="h4 color-fg-default my-1">By Plan</li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to Enterprise&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Enterprise;&quot;}" href="/enterprise">Enterprise</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to Teams&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Teams;&quot;}" href="/team">Teams</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to Compare all&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Compare all;&quot;}" href="/pricing#compare-features">Compare all</a></li>
</ul>
<ul class="list-style-none f5 border-bottom pb-3 mb-3">
<li class="h4 color-fg-default my-1">By Solution</li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to CI/CD &amp;amp; Automation&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:CI/CD &amp;amp; Automation;&quot;}" href="https://resources.github.com/ci-cd/">CI/CD & Automation <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg></a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to DevOps&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:DevOps;&quot;}" href="https://resources.github.com/devops/">DevOps <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg></a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to DevSecOps&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:DevSecOps;&quot;}" href="https://resources.github.com/devops/fundamentals/devsecops/">DevSecOps <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg></a></li>
</ul>
<ul class="list-style-none f5">
<li class="h4 color-fg-default my-1">Case Studies</li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to Customer Stories&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Customer Stories;&quot;}" href="/customer-stories">Customer Stories</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" target="_blank" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Solutions&quot;,&quot;action&quot;:&quot;click to go to Resources&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Resources;&quot;}" href="https://resources.github.com/">Resources <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path fill-rule="evenodd" d="M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"></path>
</svg></a></li>
</ul>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"><button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-3 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">Open Source <svg opacity="0.5" aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path fill-rule="evenodd" d="M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"></path>
</svg></button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 py-2 py-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 px-lg-4">
<ul class="list-style-none f5 border-bottom pb-3 mb-3">
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Open Source&quot;,&quot;action&quot;:&quot;click to go to GitHub Sponsors&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:GitHub Sponsors;&quot;}" href="/sponsors">
<div>
<div class="color-fg-default h4">GitHub Sponsors</div>
Fund open source developers</div>
</a></li>
</ul>
<ul class="list-style-none f5 border-bottom pb-3 mb-3">
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Open Source&quot;,&quot;action&quot;:&quot;click to go to The ReadME Project&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:The ReadME Project;&quot;}" href="/readme">
<div>
<div class="color-fg-default h4">The ReadME Project</div>
GitHub community articles</div>
</a></li>
</ul>
<ul class="list-style-none f5">
<li class="h4 color-fg-default my-1">Repositories</li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Open Source&quot;,&quot;action&quot;:&quot;click to go to Topics&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Topics;&quot;}" href="/topics">Topics</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Open Source&quot;,&quot;action&quot;:&quot;click to go to Trending&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Trending;&quot;}" href="/trending">Trending</a></li>
<li><a class="HeaderMenu-dropdown-link lh-condensed d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Header dropdown (logged out), Open Source&quot;,&quot;action&quot;:&quot;click to go to Collections&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Collections;&quot;}" href="/collections">Collections</a></li>
</ul>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"><a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{&quot;category&quot;:&quot;Header menu top item (logged out)&quot;,&quot;action&quot;:&quot;click to go to Pricing&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Pricing;&quot;}" href="/pricing">Pricing</a></li>
</ul>
</nav>
<div class="d-lg-flex flex-items-center px-3 px-lg-0 mb-3 mb-lg-0 text-center text-lg-left">
<div class="d-lg-flex min-width-0 mb-2 mb-lg-0 header-search flex-auto position-relative js-site-search flex-self-stretch flex-md-self-auto mb-3 mb-md-0 mr-0 mr-md-3 js-jump-to position-relative">
<form class="js-site-search-form" role="search" aria-label="Site" data-unscoped-search-url="/search" data-turbo="false" action="/search" accept-charset="UTF-8" method="get"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><input type="text" class="form-control js-site-search-focus header-search-input jump-to-field js-jump-to-field" data-hotkey="s,/" name="q" data-test-selector="nav-search-input" placeholder="Search GitHub" data-unscoped-placeholder="Search GitHub" data-scoped-placeholder="Search" autocapitalize="off" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search GitHub" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off" /> <input type="hidden" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf" value="kPm2rUdh2ZD90RUJobPc5o/QYcmKoKfUgVFzFNhMFlVk3399NQ3XkW8DrJGGgjql1akDPGmKC5Y+EHdSQ5iqrw==" /> <input type="hidden" class="js-site-search-type-field" name="type" /> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1 header-search-key-slash">
<path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path>
<path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path>
</svg></label>
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"></label>
<ul class="d-none js-jump-to-suggestions-template-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg></label></div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28" />
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"></label></div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">Search</span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">All GitHub</span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
</a></label></li>
</ul>
<ul class="d-none js-jump-to-no-results-template-container">
<li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><span class="color-fg-muted">No suggested jump to results</span></label></li>
</ul>
<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg></label></div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28" />
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"></label></div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">Search</span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">All GitHub</span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
</a></label></li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg></label></div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28" />
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"></label></div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">Search</span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">All GitHub</span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
</a></label></li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><svg title="Repository" aria-label="Repository" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo js-jump-to-octicon-repo d-none flex-shrink-0">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
</svg> <svg title="Project" aria-label="Project" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project js-jump-to-octicon-project d-none flex-shrink-0">
<path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path>
</svg> <svg title="Search" aria-label="Search" role="img" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search js-jump-to-octicon-search d-none flex-shrink-0">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
</svg></label></div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28" />
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"></label></div>
<div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center"><span class="js-jump-to-badge-search-text-default d-none" aria-label="in all of GitHub">Search</span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">All GitHub</span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
<div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"><label class="form-control header-search-wrapper input-sm p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span></label></div>
</a></label></li>
</ul>
</div>
</form>
</div>
<div class="position-relative mr-lg-3 d-lg-inline-block"><a href="/login" class="HeaderMenu-link HeaderMenu-link--sign-in flex-shrink-0 no-underline d-block d-lg-inline-block border border-lg-0 rounded rounded-lg-0 p-2 p-lg-0" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cd4f672ed9a2fa51ea92c28de162e81edb2d11a2aad6884ec89a6d60b21b1cfb" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a></div>
<a href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F&amp;source=header-home" class="HeaderMenu-link HeaderMenu-link--sign-up flex-shrink-0 d-none d-lg-inline-block no-underline border color-border-default rounded px-2 py-1" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cd4f672ed9a2fa51ea92c28de162e81edb2d11a2aad6884ec89a6d60b21b1cfb" data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Sign up;ref_loc:header logged out&quot;}">Sign up</a></div>
</div>
</div>
</header>
</div>
<div id="start-of-content" class="show-on-focus"></div>
<div id="js-flash-container" data-turbo-replace="">
<template class="js-flash-template">
<div class="flash flash-full {{ className }} px-2"><button autofocus="" class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg></button>
<div aria-atomic="true" role="alert" class="js-flash-alert">{{ message }}</div>
</div>
</template>
</div>
<div class="application-main" data-commit-hovercards-enabled="" data-discussion-hovercards-enabled="" data-issue-and-pr-hovercards-enabled="">
<main class="font-mktg">
<div class="overflow-hidden">
<div class="home-hero-container position-relative js-webgl-globe-data">
<div class="home-hero position-absolute z-1 top-0 right-0 bottom-0 left-0 overflow-hidden" data-hpc="">
<div class="d-flex flex-column flex-justify-between mx-auto container-xl p-responsive height-full pb-md-9 d-flex flex-column flex-lg-row flex-items-center height-full">
<div class="col-12 col-lg-7 text-center text-md-left"><a class="eyebrow-banner d-inline-block no-underline color-fg-on-emphasis f5-mktg mb-4 border width-full position-relative z-2 arrow-target-mktg text-left" data-analytics-event="{&quot;category&quot;:&quot;Register&quot;,&quot;action&quot;:&quot;click to register for Universe 2022&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Register for GitHub Universe 2022;ref_loc:hero&quot;}" target="_blank" href="https://githubuniverse.com">
<div class="d-flex flex-items-center"><img class="eyebrow-banner-icon d-block width-auto ml-3 ml-md-4 mr-4 flex-grow-0 flex-shrink-0" src="https://github.githubassets.com/images/modules/site/eyebrow-banner-icon-unicat22.png" width="44" height="44" alt="GitHub Universe 2022 Icon" aria-hidden="true" />
<div class="py-2 py-md-3 pr-4">
<div class="eyebrow-banner-title text-semibold lh-condensed">GitHub Universe: A global developer event</div>
<div class="color-fg-subtle lh-condensed">See the full schedule and register now</div>
</div>
<div class="ml-auto mr-4 mr-md-5"><svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></div>
</div>
</a>
<h1 class="h2-mktg color-text-white mb-3 position-relative z-2">Let's build from&nbsp;here, <span class="position-relative overflow-hidden d-block width-full c9"><span class="position-absolute left-0 width-full home-tagline-appendix c2">openly</span> <span class="position-absolute left-0 width-full home-tagline-appendix c3">instantly</span> <span class="position-absolute left-0 width-full home-tagline-appendix c4">automatically</span> <span class="position-absolute left-0 width-full home-tagline-appendix c5">securely</span> <span class="position-absolute left-0 width-full home-tagline-appendix c6">magically</span> <span class="position-absolute left-0 width-full home-tagline-appendix c7">collaboratively</span> <span class="position-absolute left-0 width-full home-tagline-appendix c8">together.</span></span></h1>
<p class="f2-mktg col-md-7 col-lg-11 col-xl-10 text-normal text-gray-light-mktg mr-lg-n4 mb-4 position-relative z-2">The complete developer platform to build, scale, and deliver secure software.</p>
<form data-turbo="false" class="mx-auto mx-md-0 col-5-max js-signup-form position-relative z-2" autocomplete="off" action="/signup" accept-charset="UTF-8" method="get">
<div class="d-flex flex-column flex-sm-row flex-items-center">
<dl class="col-12 my-0 pb-2 pb-sm-0 pr-0 pr-sm-2 flex-auto">
<dt><label for="user_email" class="sr-only">Email address</label></dt>
<dd><input class="form-control border-0 f4-mktg py-3 px-4 width-full c10" placeholder="Email address" type="email" name="user_email" id="user_email" autocomplete="off" spellcheck="false" /></dd>
</dl>
<input type="hidden" name="source" value="form-home-signup" /> <button class="btn-mktg width-full width-sm-auto btn-signup-mktg" data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Sign up for GitHub;ref_loc:hero launchpad&quot;}" type="submit">Sign up for GitHub</button></div>
</form>
<div class="position-lg-absolute bottom-lg-8 left-lg-0 right-lg-0 mt-4 z-1 position-relative container-xl mx-auto px-lg-3 py-4 d-flex gutter-condensed gutter-md-spacious col-12 col-lg-8 flex-justify-between text-md-left c11">
<div class="col-6 col-sm-4 col-md-3">
<h2 class="f3-mktg text-mono color-text-white text-normal no-wrap">83<span class="text-white-fade">+</span> million</h2>
<p class="m-0 text-mono text-white-fade f6-mktg">Developers</p>
</div>
<div class="col-6 col-sm-4 col-md-3">
<h2 class="f3-mktg text-mono color-text-white text-normal no-wrap">4<span class="text-white-fade">+</span> million</h2>
<p class="m-0 text-mono text-white-fade f6-mktg">Organizations</p>
</div>
<div class="col-sm-4 col-md-3 d-none d-md-block">
<h2 class="f3-mktg text-mono color-text-white text-normal no-wrap">200<span class="text-white-fade">+</span> million</h2>
<p class="m-0 text-mono text-white-fade f6-mktg">Repositories</p>
</div>
<div class="col-3 d-none d-sm-block">
<h3 class="f3-mktg text-mono color-text-white text-normal no-wrap">90%</h3>
<p class="m-0 text-mono text-white-fade f6-mktg">Fortune 100</p>
</div>
</div>
</div>
<div class="col-12 col-lg-6 text-center text-md-left position-relative home-globe-container home-globe-container-webgl mx-auto width-full mt-n9 mt-lg-2 home-globe position-relative height-full js-webgl-globe"><video width="916" height="918" loop="" muted="" playsinline="" preload="none" class="home-globe-container-video js-globe-fallback-video" hidden=""><source type="video/mp4; codecs=hevc,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/globe-900.hevc.mp4" /> <source type="video/mp4; codecs=avc1.4D401E,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/globe-900.h264.mp4" /></video> <video loop="" muted="" playsinline="" preload="none" class="home-globe-container-video js-globe-fallback-video-small" hidden=""><source type="video/mp4; codecs=hevc,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/globe-500.hevc.mp4" /> <source type="video/mp4; codecs=avc1.4D401E,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/globe-500.h264.mp4" /></video> <img srcset="https://github.githubassets.com/images/modules/site/home/globe-700.jpg 700w, https://github.githubassets.com/images/modules/site/home/globe.jpg 1400w" sizes="(max-width: 700px) 70vw, 700px" src="https://github.githubassets.com/images/modules/site/home/globe.jpg" alt="Planet earth with visualization of GitHub activity crossing the globe" class="width-full height-auto js-globe-fallback-image" loading="lazy" decoding="async" width="1238" height="1404" hidden="" /> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" height="704" viewbox="0 0 704 704" width="704" class="js-webgl-globe-loading position-absolute left-0 right-0 top-0 bottom-0 c12">
<filter id="a" color-interpolation-filters="sRGB" filterunits="userSpaceOnUse" height="560" width="560" x="70" y="70">
<feflood flood-opacity="0" result="BackgroundImageFix"></feflood>
<feblend in="SourceGraphic" in2="BackgroundImageFix" mode="normal" result="shape"></feblend>
<fecolormatrix in="SourceAlpha" result="hardAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"></fecolormatrix>
<feoffset dx="2" dy="2"></feoffset>
<fegaussianblur stddeviation="7.5"></fegaussianblur>
<fecomposite in2="hardAlpha" k2="-1" k3="1" operator="arithmetic"></fecomposite>
<fecolormatrix type="matrix" values="0 0 0 0 0.447059 0 0 0 0 0.643137 0 0 0 0 0.988235 0 0 0 0.49 0"></fecolormatrix>
<feblend in2="shape" mode="normal" result="effect1_innerShadow"></feblend>
<fecolormatrix in="SourceAlpha" result="hardAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"></fecolormatrix>
<feoffset dx="1" dy="1"></feoffset>
<fegaussianblur stddeviation="3"></fegaussianblur>
<fecomposite in2="hardAlpha" k2="-1" k3="1" operator="arithmetic"></fecomposite>
<fecolormatrix type="matrix" values="0 0 0 0 0.625 0 0 0 0 0.9325 0 0 0 0 1 0 0 0 0.32 0"></fecolormatrix>
<feblend in2="effect1_innerShadow" mode="normal" result="effect2_innerShadow"></feblend>
<fecolormatrix in="SourceAlpha" result="hardAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"></fecolormatrix>
<feoffset dx="-10" dy="-10"></feoffset>
<fegaussianblur stddeviation="3"></fegaussianblur>
<fecomposite in2="hardAlpha" k2="-1" k3="1" operator="arithmetic"></fecomposite>
<fecolormatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"></fecolormatrix>
<feblend in2="effect2_innerShadow" mode="normal" result="effect3_innerShadow"></feblend>
</filter>
<radialgradient id="b" cx="0" cy="0" gradienttransform="matrix(-199.20400108 -199.20400108 199.20400108 -199.20400108 332.08 338.37)" gradientunits="userSpaceOnUse" r="1">
<stop offset=".875" stop-color="#fff"></stop>
<stop offset=".937507" stop-color="#3e68ff"></stop>
<stop offset="1" stop-color="#03009f" stop-opacity="0"></stop>
</radialgradient>
<lineargradient id="c" gradientunits="userSpaceOnUse" x1="352" x2="352" y1="331" y2="628">
<stop offset="0" stop-color="#06060e"></stop>
<stop offset="1" stop-color="#0f0e20"></stop>
</lineargradient>
<radialgradient id="d" cx="0" cy="0" gradienttransform="matrix(-5.99972278 523.99965313 -523.99965313 -5.99972278 170 147)" gradientunits="userSpaceOnUse" r="1">
<stop offset="0" stop-color="#4b60fb"></stop>
<stop offset=".565687" stop-color="#33205d"></stop>
<stop offset="1" stop-color="#33205d" stop-opacity="0"></stop>
</radialgradient>
<radialgradient id="e" cx="0" cy="0" gradienttransform="matrix(41.99992987 206.0000547 -206.0000547 41.99992987 292 327)" gradientunits="userSpaceOnUse" r="1">
<stop offset="0" stop-color="#354097"></stop>
<stop offset="1" stop-color="#243273" stop-opacity="0"></stop>
</radialgradient>
<radialgradient id="f" cx="0" cy="0" gradienttransform="matrix(-84.00137423 185.99914213 -185.99914213 -84.00137423 462 399)" gradientunits="userSpaceOnUse" r="1">
<stop offset="0" stop-color="#040d20"></stop>
<stop offset="1" stop-color="#040d20" stop-opacity="0"></stop>
</radialgradient>
<circle cx="352" cy="352" fill="url(#b)" r="303" transform="matrix(.98453041 .1752138 -.1752138 .98453041 67.120553 -56.22996)"></circle>
<g filter="url(#a)">
<circle cx="352" cy="352" fill="url(#c)" r="276"></circle>
<circle cx="352" cy="352" fill="url(#d)" r="276"></circle>
<circle cx="352" cy="352" fill="url(#e)" r="276"></circle>
<circle cx="352" cy="352" fill="url(#f)" r="276"></circle>
</g>
</svg></div>
</div>
<img src="https://github.githubassets.com/images/modules/site/home/hero-glow.svg" alt="Glowing universe" class="position-absolute home-hero-glow events-none z-1" /> <video loop="" muted="" playsinline="" preload="none" class="js-globe-aurora position-absolute top-0 left-0 right-0 bottom-0 c13" hidden=""><source type="video/mp4; codecs=avc1.4D401E,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/aurora.h264.mp4" /></video></div>
<div class="position-absolute width-full color-bg-default container-xl p-responsive d-flex flex-justify-center flex-lg-justify-end color-bg-default col-8 col-sm-7 col-md-6 col-lg-5 position-relative z-2 right-lg-n12 events-none c14"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/astro-mona.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/astro-mona.svg" width="960" height="967" class="home-astro-mona width-full position-absolute bottom-0 height-auto" alt="Mona looking at GitHub activity across the globe" /></picture></div>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" preserveaspectratio="none" viewbox="0 0 1680 40" class="position-absolute width-full z-1 c15">
<path d="M0 40h1680V30S1340 0 840 0 0 30 0 30z" fill="#fff"></path>
</svg></div>
<div class="mx-auto container-xl p-responsive py-8 py-md-9 overflow-hidden d-flex gutter gutter-spacious js-build-in-trigger js-build-in-item build-in-scale-up color-bg-default col-10-max mx-auto d-flex position-relative rounded-2 box-shadow-card-border-mktg overflow-hidden" data-build-margin-bottom="20">
<div class="col-5-max mx-auto mx-md-0 col-12 col-md-9 px-4 pl-md-7 pt-4 py-md-6 mb-md-0 position-relative z-1 text-center text-md-left c18">
<h2 class="h5-mktg mb-1 mx-auto mx-md-0 c16"><span class="color-fg-muted">Build like the best with GitHub Enterprise</span></h2>
<p class="f5-mktg color-fg-subtle mx-auto mx-md-0 c17">Take collaboration to the next level with security and administrative features built for teams.</p>
<div class="d-flex flex-column flex-sm-row flex-items-center flex-justify-center flex-md-justify-start"><a class="btn-mktg mb-3 mb-sm-0 mr-sm-2 btn-muted-mktg" data-analytics-event="{&quot;category&quot;:&quot;start_a_free_trial&quot;,&quot;action&quot;:&quot;click_to_set_up_enterprise_trial&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:start_a_free_trial;ref_loc:billboard_launchpad&quot;}" href="/organizations/enterprise_plan?ref_cta=Start%2520a%2520free%2520trial&amp;ref_loc=billboard&amp;ref_page=%2F" data-test-selector="start-trial-button">Start a free trial</a> <a class="btn-mktg btn-subtle-mktg" data-analytics-event="{&quot;category&quot;:&quot;Contact Sales&quot;,&quot;action&quot;:&quot;click to Contact Sales&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Contact Sales;ref_loc:billboard launchpad;&quot;}" href="https://github.com/enterprise/contact?ref_page=/&amp;ref_cta=Contact%20Sales&amp;ref_loc=billboard%20launchpad">Contact Sales</a></div>
</div>
<div class="col-12 col-md-8 position-absolute text-right position-relative height-full right-0"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/enterprise-city-w-logos.jpg?width=1376 1376w,https://github.githubassets.com/images/modules/site/home/enterprise-city-w-logos.jpg?width=1100 1100w,https://github.githubassets.com/images/modules/site/home/enterprise-city-w-logos.jpg?width=825 825w,https://github.githubassets.com/images/modules/site/home/enterprise-city-w-logos.jpg?width=688 688w,https://github.githubassets.com/images/modules/site/home/enterprise-city-w-logos.jpg?width=550 550w,https://github.githubassets.com/images/modules/site/home/enterprise-city-w-logos.jpg?width=275 275w" sizes="(max-width: 1120px) 60vw, 688px" type="image/jpeg" /></picture> <img class="width-full height-auto position-absolute right-0 bottom-0" width="1376" height="436" loading="lazy" decoding="async" alt="" src="https://github.githubassets.com/images/modules/site/home/enterprise-city-w-logos.jpg?width=1376" /> </div>
</div>
</div>
<div class="position-relative pt-5 mt-5">
<div class="sub-nav-mktg js-toggler-container z-3 js-sticky js-position-sticky top-0 width-full scrollnav sub-nav-mktg-wrapper d-flex flex-items-center py-3 p-responsive container-xl"><button type="button" class="btn-octicon sub-nav-mktg-toggle d-lg-none p-1 flex-order-1 float-right js-toggler-target mr-n1" aria-label="Toggle page navigation"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-chevron-down on-hidden">
<path fill-rule="evenodd" d="M5.22 8.72a.75.75 0 000 1.06l6.25 6.25a.75.75 0 001.06 0l6.25-6.25a.75.75 0 00-1.06-1.06L12 14.44 6.28 8.72a.75.75 0 00-1.06 0z"></path>
</svg> <svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-x on-visible">
<path fill-rule="evenodd" d="M5.72 5.72a.75.75 0 011.06 0L12 10.94l5.22-5.22a.75.75 0 111.06 1.06L13.06 12l5.22 5.22a.75.75 0 11-1.06 1.06L12 13.06l-5.22 5.22a.75.75 0 01-1.06-1.06L10.94 12 5.72 6.78a.75.75 0 010-1.06z"></path>
</svg></button>
<div class="sub-nav-mktg-links flex-auto f4-mktg d-lg-flex flex-lg-justify-around"><a href="#home-code" class="sub-nav-mktg-link Link--primary no-underline py-1 py-lg-2 js-scrollnav-item js-smoothscroll-anchor" data-analytics-event="{&quot;category&quot;:&quot;Homepage&quot;,&quot;action&quot;:&quot;click item to scroll to Code&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Code;&quot;}">Code</a> <a href="#home-collaborate" class="sub-nav-mktg-link Link--primary no-underline py-1 py-lg-2 js-scrollnav-item js-smoothscroll-anchor" data-analytics-event="{&quot;category&quot;:&quot;Homepage&quot;,&quot;action&quot;:&quot;click item to scroll to Collaborate&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Collaborate;&quot;}">Collaborate</a> <a href="#home-develop" class="sub-nav-mktg-link Link--primary no-underline py-1 py-lg-2 js-scrollnav-item js-smoothscroll-anchor" data-analytics-event="{&quot;category&quot;:&quot;Homepage&quot;,&quot;action&quot;:&quot;click item to scroll to Develop&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Develop;&quot;}">Develop</a> <a href="#home-automate" class="sub-nav-mktg-link Link--primary no-underline py-1 py-lg-2 js-scrollnav-item js-smoothscroll-anchor" data-analytics-event="{&quot;category&quot;:&quot;Homepage&quot;,&quot;action&quot;:&quot;click item to scroll to Automate&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Automate;&quot;}">Automate</a> <a href="#home-secure" class="sub-nav-mktg-link Link--primary no-underline py-1 py-lg-2 js-scrollnav-item js-smoothscroll-anchor" data-analytics-event="{&quot;category&quot;:&quot;Homepage&quot;,&quot;action&quot;:&quot;click item to scroll to Secure&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Secure;&quot;}">Secure</a> <a href="#home-community" class="sub-nav-mktg-link Link--primary no-underline py-1 py-lg-2 js-scrollnav-item js-smoothscroll-anchor" data-analytics-event="{&quot;category&quot;:&quot;Homepage&quot;,&quot;action&quot;:&quot;click item to scroll to Community&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Community;&quot;}">Community</a></div>
<div class="sub-nav-mktg-ctas ml-lg-3"><a class="btn-mktg ml-lg-2 mt-2 mt-lg-0 d-block d-lg-inline-block btn-signup-mktg" data-analytics-event="{&quot;category&quot;:&quot;Homepage&quot;,&quot;action&quot;:&quot;click to Sign up&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Sign up;ref_loc:Homepage;&quot;}" href="/join?ref_cta=Sign+up&amp;ref_loc=homepage+sticky+nav&amp;ref_page=%2F&amp;source=homepage-sticky-nav">Sign up <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
</div>
<div class="overflow-hidden">
<meta property="page-title" content="GitHub: Where the world builds software" />
<meta property="page-description" content="GitHub is where over 83 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it." />
<div class="position-relative z-2 mx-auto box-shadow-default-mktg wide-block js-section container-xl p-responsive d-flex flex-column gutter gutter-spacious" id="home-code" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark">
<div class="col-12 col-sm-10 offset-sm-1 col-6-max">
<h2 class="h2-mktg color-fg-default mb-6 mb-md-8 text-gradient-mint-blue-dark">Give your code a home in the cloud</h2>
</div>
<div class="col-11 col-sm-10 offset-1">
<ul class="home-git-log-dark d-flex gutter gutter-spacious flex-column list-style-none pb-5">
<li class="col-12 col-md-9 col-lg-6 mt-n3 pb-4"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="f2-mktg text-gray-light-mktg text-semibold mb-3">Record or rewind any change to your code to keep you and your team in sync. <span class="color-fg-default">Host it all for free with unlimited public and private repositories.</span></h3>
<a class="link-mktg text-semibold color-fg-default py-1 f4-mktg link-emphasis-mktg" href="/signup" data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Sign up for GitHub;ref_loc:code launchpad&quot;}">Sign up for GitHub <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></li>
<li class="col-12 d-flex flex-items-center position-relative f5-mktg text-gray-light-mktg py-2 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 28 32" aria-hidden="true" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1" height="32" width="28">
<g fill="#fff">
<path d="m17.8 24.4h-11c-.6 0-1.1-.5-1.1-1.1v-1.3c0-.8.6-1.4 1.4-1.4h7.2c.5 0 .9-.4.9-.9s-.4-.9-.9-.9h-7.3c-.5 0-.9.1-1.4.3v-12.3c0-.6.5-1.1 1.1-1.1h13.6v6.9c0 .5.4.9.9.9s.9-.4.9-.9v-7.8c0-.5-.4-.9-.9-.9h-14.4c-1.6 0-2.9 1.3-2.9 2.9v16.5c0 1.6 1.3 2.9 2.9 2.9h11c.5 0 .9-.4.9-.9s-.5-.9-.9-.9z"></path>
<path d="m25.4 19.2-3.5-3.8c-.3-.4-.9-.4-1.3 0l-3.5 3.8c-.2.2-.2.4-.2.6s.1.4.3.6.4.3.6.2c.2 0 .4-.1.6-.3l2-2.1v9c0 .5.4.9.9.9s.9-.4.9-.9v-9l2 2.1c.2.2.4.3.6.3s.5-.1.6-.2c.2-.2.3-.4.3-.6-.1-.3-.2-.5-.3-.6z"></path>
</g>
</svg> <span class="text-truncate"><strong class="text-bold color-fg-default">jasonetco</strong> added some commits 8 minutes ago</span></li>
<li class="col-12 d-flex flex-items-center position-relative f6-mktg text-mono text-gray-light-mktg py-2 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="22" width="28" aria-hidden="true" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m2.5 10a1 1 0 1 0 0 2zm23 2a1 1 0 1 0 0-2zm-23 0h23v-2h-23z" fill="#465061"></path>
<circle cx="14" cy="11" fill="#041027" r="5" stroke="#465061" stroke-width="2"></circle>
</svg> <img src="https://avatars.githubusercontent.com/jasonetco?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 opacity-4 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@jasonetco" decoding="async" /> <span class="opacity-4 text-truncate">Updated README.md</span></li>
</ul>
</div>
<div class="col-12 position-relative home-repo-comp position-relative py-3 position-relative z-2 js-build-in build-in-scale-up js-build-in-trigger js-type-in-trigger">
<div class="home-repo-comp-browser rounded-2 box-shadow-default-mktg position-absolute z-1 top-0 left-0 right-0 box-shadow-active-border-light-mktg js-build-in-item c19"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/repo-browser.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/repo-browser.png" class="width-full height-auto" width="2496" height="1480" alt="The resulting GitHub repository page from pushing" decoding="async" /></picture></div>
<div class="home-repo-editor rounded-2 position-relative mr-n1 ml-n1 mr-md-0 ml-md-0 overflow-hidden js-build-in-item d-flex position-absolute top-0 right-0 bottom-0 left-0 home-repo-editor-ui js-build-in-item">
<div class="col-3 d-none d-lg-block d-flex home-repo-editor-filetree height-full flex-column py-2">
<div class="d-flex py-1 px-3"><img src="https://github.githubassets.com/images/modules/site/home/icons/folder.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>octocat-classifier</div>
</div>
<div class="d-flex py-1 px-4"><img src="https://github.githubassets.com/images/modules/site/home/icons/folder.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>assets</div>
</div>
<div class="opacity-4 d-flex py-1 px-4"><img src="https://github.githubassets.com/images/modules/site/home/icons/folder.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>tests</div>
</div>
<div class="d-flex py-1 px-3"><img src="https://github.githubassets.com/images/modules/site/home/icons/file.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>LICENSE</div>
</div>
<div class="d-flex py-1 px-3"><img src="https://github.githubassets.com/images/modules/site/home/icons/file.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>README.md</div>
</div>
<div class="d-flex py-1 px-3"><img src="https://github.githubassets.com/images/modules/site/home/icons/file.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>index.js</div>
</div>
<div class="d-flex py-1 px-3"><img src="https://github.githubassets.com/images/modules/site/home/icons/file.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>package.json</div>
</div>
</div>
<div class="col-12 col-lg-9 position-relative">
<div class="d-flex home-repo-editor-tabs">
<div class="home-repo-editor-tab--active color-text-white d-flex flex-items-center"><img src="https://github.githubassets.com/images/modules/site/home/icons/file.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>README.md</div>
</div>
<div class="d-lg-none home-repo-editor-tab opacity-4 d-flex flex-items-center"><img src="https://github.githubassets.com/images/modules/site/home/icons/file.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>app.js</div>
</div>
<div class="d-lg-none home-repo-editor-tab opacity-4 d-flex flex-items-center"><img src="https://github.githubassets.com/images/modules/site/home/icons/file.svg" alt="File icon" class="mr-1" loading="lazy" decoding="async" width="16" height="16" />
<div>index.html</div>
</div>
</div>
<div class="home-repo-editor-file d-flex opacity-4">
<pre class="opacity-4 text-right color-text-white home-pre pre-line p-3">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre>
<div class="flex-1">
<pre class="pre-line color-text-white home-pre px-2 py-3">
<span class="code-green"># Octocat Classifier :octopus: :cat: :mag:</span>

<span class="code-pink">![](https://img.shields.io/badge/build-passing-brightgreen) ![](https://img.shields.io/badge/coverage-90%25-green) ![](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen)</span>

As the name suggests, Octocat Classifier is used to determine whether a given image contains an Octocat. It is trained with images from the <span class="code-pink">[Octodex](1)</span>, images shared with <span class="code-pink">[#MyOctocat on Twitter](2)</span>, and <span class="code-pink">[photographs of laptops with :octocat: stickers on them]()</span>.

<span class="code-green">## Installation</span>

```
git clone https://github.com/jasonetco/octocat-classifier
```
</pre></div>
</div>
<div class="home-repo-editor-terminal p-3 position-absolute right-0 bottom-0 left-0 c20"><svg height="16" class="octicon octicon-x text-gray-light-mktg position-absolute right-3 top-3" viewbox="0 0 16 16" version="1.1" width="16" aria-hidden="true">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg>
<div class="terminal-mktg text-mono bg-gray-800-mktg home-pre rounded-2 js-type-in-item p-4" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-type-delay="800">
<div class=""><strong class="code-pink">→</strong> <strong class="color-fg-success">~/octocat-classifier</strong> <span class="js-type-letters">$ gh repo create octocat-classifier</span></div>
<div class="js-type-row"><span><em>✓</em> Created repository jasonetco/octocat-classifier on GitHub</span></div>
<div class="js-type-row"><span><em>✓</em> Added remote <a href="https://github.com/jasonetco/octocat-classifier.git">https://github.com/jasonetco/octocat-classifier.git</a></span></div>
<div class="js-type-row"><span>&nbsp;</span></div>
<div class="js-type-row"><strong class="code-pink">→</strong> <strong class="color-fg-success">~/octocat-classifier</strong> <span class="js-type-letters">$ git push origin main</span></div>
</div>
</div>
</div>
</div>
<img src="https://github.githubassets.com/images/modules/site/home/repo-editor-glow.svg" class="position-absolute z-n1 js-build-in-item build-in-scale-up c21" alt="Light glowing behind the editor" decoding="async" /></div>
<div class="col-11 col-sm-10 offset-1">
<ul class="home-git-log-dark d-flex gutter gutter-spacious flex-column list-style-none pt-5 pb-8 pb-md-9">
<li class="col-12 d-flex flex-items-center position-relative f6-mktg text-mono text-gray-light-mktg py-2 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="22" width="28" aria-hidden="true" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m2.5 10a1 1 0 1 0 0 2zm23 2a1 1 0 1 0 0-2zm-23 0h23v-2h-23z" fill="#465061"></path>
<circle cx="14" cy="11" fill="#041027" r="5" stroke="#465061" stroke-width="2"></circle>
</svg> <img src="https://avatars.githubusercontent.com/jasonetco?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 opacity-4 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@jasonetco" loading="lazy" /> <span class="opacity-4 text-truncate">Support Octocats shared on Twitter</span></li>
<li class="col-12 d-flex flex-items-center position-relative f6-mktg text-mono text-gray-light-mktg py-2 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="22" width="28" aria-hidden="true" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m2.5 10a1 1 0 1 0 0 2zm23 2a1 1 0 1 0 0-2zm-23 0h23v-2h-23z" fill="#465061"></path>
<circle cx="14" cy="11" fill="#041027" r="5" stroke="#465061" stroke-width="2"></circle>
</svg> <img src="https://avatars.githubusercontent.com/jasonetco?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 opacity-4 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@jasonetco" loading="lazy" /> <span class="opacity-4 text-truncate">Created index.js</span></li>
<li class="col-12 col-md-9 col-lg-12">
<div class="d-flex flex-column flex-lg-row flex-lg-row-reverse flex-items-center gutter gutter-spacious my-4">
<div class="col-12 col-lg-6 py-5 js-build-in build-in-slideX-left">
<h2 class="h3-mktg color-fg-default mb-3 text-gradient-mint-blue-dark">Build on what's been built</h2>
<h3 class="f2-mktg text-gray-light-mktg lh-condensed text-semibold mb-3"><span class="color-fg-default">Write less code thanks to the world's largest software package registry.</span> Find the best community-approved projects to accelerate your work, then share it with the world with <a class="text-gray-light-mktg text-underline" data-analytics-event="{&quot;category&quot;:&quot;npm&quot;,&quot;action&quot;:&quot;click to npm site&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:npm;ref_loc:code launchpad&quot;}" href="https://www.npmjs.com">npm</a> and GitHub Packages.</h3>
</div>
<div class="col-12 col-lg-6 position-relative" aria-hidden="true">
<div class="terminal-mktg text-mono package-registry bg-gray-800-mktg home-pre rounded-2 js-type-in p-4" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark">
<div class=""><strong class="code-pink">→</strong> <strong class="color-fg-success">~/octocat-classifier</strong> <span class="js-type-letters">$ npm install eslint</span></div>
<div class="js-type-row"><span>+ eslint@7.8.1</span></div>
<div class="js-type-row"><span>&nbsp;&nbsp;added 109 packages from 64 contributors and audited 109 packages in 3.491s</span></div>
<div class="js-type-row"><span>&nbsp;</span></div>
<div class="js-type-row"><span>9 packages are looking for funding</span></div>
<div class="js-type-row"><span>&nbsp;&nbsp;run `npm fund` for details</span></div>
<div class="js-type-row"><span>&nbsp;</span></div>
<div class="js-type-row"><span>found 0 vulnerabilities</span></div>
<div class="js-type-row"><strong class="code-pink">→</strong> <strong class="color-fg-success">~/octocat-classifier</strong> <span class="js-type-letters">$</span></div>
</div>
<img src="https://github.githubassets.com/images/modules/site/home/repo-terminal-glow.svg" class="position-absolute z-n1 c22" alt="Light glowing behind the editor" loading="lazy" /></div>
</div>
</li>
<li class="col-12 d-flex flex-items-center position-relative f6-mktg text-mono text-gray-light-mktg py-2 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="22" width="28" aria-hidden="true" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m2.5 10a1 1 0 1 0 0 2zm23 2a1 1 0 1 0 0-2zm-23 0h23v-2h-23z" fill="#465061"></path>
<circle cx="14" cy="11" fill="#041027" r="5" stroke="#465061" stroke-width="2"></circle>
</svg> <img src="https://avatars.githubusercontent.com/jasonetco?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 opacity-4 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@jasonetco" loading="lazy" /> <span class="opacity-4 text-truncate">Added package for javascript linting</span></li>
</ul>
</div>
</div>
<div class="overflow-hidden width-full position-relative z-1 container-xl p-responsive mx-auto d-flex flex-column gutter gutter-spacious position-relative home-git-log-light col-11 offset-md-1 pt-5 pt-md-6 d-flex flex-column gutter gutter-spacious js-section" id="home-collaborate">
<div class="home-branch-container position-relative f6-mktg text-mono color-fg-subtle z-1">
<div class="d-flex flex-items-center py-1 home-git-log-terminal unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="26" width="28" class="flex-shrink-0 mr-3">
<path d="m0 0h28v26h-28z" fill="#fff"></path>
<g fill="#8392ad">
<path d="m11.25 13a.75.75 0 0 1 -.22.53l-2.75 2.75a.75.75 0 0 1 -1.06-1.06l2.22-2.22-2.22-2.22a.75.75 0 1 1 1.06-1.06l2.75 2.75c.141.14.22.331.22.53zm2 2a.75.75 0 0 0 0 1.5h5a.75.75 0 0 0 0-1.5z"></path>
<path clip-rule="evenodd" d="m2 5.75c0-.966.784-1.75 1.75-1.75h20.5c.966 0 1.75.784 1.75 1.75v14.5a1.75 1.75 0 0 1 -1.75 1.75h-20.5a1.75 1.75 0 0 1 -1.75-1.75zm1.75-.25a.25.25 0 0 0 -.25.25v14.5c0 .138.112.25.25.25h20.5a.25.25 0 0 0 .25-.25v-14.5a.25.25 0 0 0 -.25-.25z" fill-rule="evenodd"></path>
</g>
</svg> git checkout -b origin add-status-screens</div>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" preserveaspectratio="none" viewbox="0 0 110 142" class="d-none d-md-block position-relative home-branch offset-n1">
<path d="m1-8c0 75 108 75 108 150" stroke-width="2" vector-effect="non-scaling-stroke"></path>
</svg></div>
<div class="home-git-log-light col-10 offset-1 pb-5 pb-md-6 pt-6 pt-md-0 col-6-max">
<div class="mb-5 mb-md-6 mt-n3 d-flex flex-items-center position-relative z-1 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="20" viewbox="0 0 28 20" width="28" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<div class="d-inline-block border py-1 px-2 text-mono rounded-pill f6-mktg color-fg-muted"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-branch mr-1">
<path fill-rule="evenodd" d="M11.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122V6A2.5 2.5 0 0110 8.5H6a1 1 0 00-1 1v1.128a2.251 2.251 0 11-1.5 0V5.372a2.25 2.25 0 111.5 0v1.836A2.492 2.492 0 016 7h4a1 1 0 001-1v-.628A2.25 2.25 0 019.5 3.25zM4.25 12a.75.75 0 100 1.5.75.75 0 000-1.5zM3.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0z"></path>
</svg>origin/add-status-screens</div>
</div>
<div class="mb-3 d-flex flex-items-center" aria-hidden="true">
<div class="mr-3"><img class="float-left circle border unselectable" width="32" height="32" alt="@nplasterer" src="https://avatars.githubusercontent.com/nplasterer?s=64&amp;v=4" loading="lazy" /> <img class="float-left circle ml-n3 border unselectable" width="32" height="32" alt="@ampinsk" src="https://avatars.githubusercontent.com/ampinsk?s=64&amp;v=4" loading="lazy" /> <img class="float-left circle ml-n3 border unselectable" width="32" height="32" alt="@joshaber" src="https://avatars.githubusercontent.com/joshaber?s=64&amp;v=4" loading="lazy" /></div>
<h4 class="f4-mktg d-inline-block color-fg-muted opacity-4 unselectable text-bold">+3 collaborators</h4>
</div>
<h2 class="h2-mktg mb-3"><span class="text-gradient-pink-blue">Ready player two.</span> Scale your team to any size in the cloud.</h2>
<a class="link-mktg text-semibold color-fg-default py-1 f3-mktg link-emphasis-mktg" href="/account/organizations/new" data-analytics-event="{&quot;category&quot;:&quot;Homepage Collaborate section&quot;,&quot;action&quot;:&quot;click&quot;,&quot;label&quot;:&quot;text:Create a new organization for free;ref_loc:home launchpad&quot;}">Create a new organization for free <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="col-12 d-none d-lg-block d-flex gutter gutter-spacious col-lg-6 offset-lg-7 position-relative"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/pr-screen.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/pr-screen.png" class="position-absolute top-0 z-n1 height-auto home-pr-screen" alt="Timeline of a pull request on GitHub" loading="lazy" decoding="async" width="1400" height="2474" /></picture></div>
<div class="col-11 offset-1 position-relative">
<ul class="home-git-log-light d-flex gutter gutter-spacious flex-column list-style-none">
<li class="js-build-in-trigger col-11 col-sm-10 col-lg-12">
<div class="d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious c23">
<div class="col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="js-build-in-item build-in-slideX-left f2-mktg color-fg-muted lh-condensed text-semibold mb-5 mb-lg-0 col-5-max"><span class="text-gray-dark-mktg">Better code starts with pull requests</span>—conversations around your code where you can experiment, squash bugs, and build new features.</h3>
</div>
<div class="col-12 col-lg-5 js-build-in-item home-pr-description rounded-2 position-relative z-2"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/pr-description.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/pr-description.png" class="width-full height-auto" alt="Pull request description on GitHub" loading="lazy" decoding="async" width="980" height="434" /></picture></div>
</div>
</li>
<li class="js-build-in-trigger col-11 col-sm-10 col-lg-12">
<div class="d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious c24">
<div class="col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="js-build-in-item build-in-slideX-left f2-mktg color-fg-muted text-semibold mb-5 mb-lg-0 col-5-max"><span class="text-gray-dark-mktg">Code review is built in.</span> Pull requests cover the entire review flow: propose changes, browse code, ask for input, make a suggestion, and sign off in one place.</h3>
</div>
<div class="col-12 col-lg-5 js-build-in-item home-pr-comment rounded-2 position-relative z-2"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/pr-comment.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/pr-comment.png" class="width-full height-auto" alt="Pull request comment on GitHub" loading="lazy" decoding="async" width="980" height="940" /></picture></div>
</div>
</li>
<li class="js-build-in-trigger col-11 col-sm-10 col-lg-12">
<div class="d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious pt-5 pt-md-6 pb-9 pb-md-10">
<div class="col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="js-build-in-item build-in-slideX-left f2-mktg color-fg-muted text-semibold mb-5 mb-lg-0 col-5-max"><span class="text-gray-dark-mktg">Know when your pull request is ready to merge when everything’s green.</span> Reviews approved? Check. Tests passing? Check check. No conflicts? Ship it already.</h3>
</div>
<div class="col-12 col-lg-5 js-build-in-item home-pr-merge rounded-2 position-relative z-2"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/pr-merge.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/pr-merge.png" class="width-full height-auto" alt="Merge pull request on GitHub" loading="lazy" decoding="async" width="980" height="888" /></picture></div>
</div>
</li>
<li class="col-12 d-flex flex-items-center position-relative z-1 f6-mktg text-mono color-fg-subtle" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="26" width="28" class="home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m0 0h28v26h-28z" fill="#fff"></path>
<g fill="#8392ad">
<path d="m11.25 13a.75.75 0 0 1 -.22.53l-2.75 2.75a.75.75 0 0 1 -1.06-1.06l2.22-2.22-2.22-2.22a.75.75 0 1 1 1.06-1.06l2.75 2.75c.141.14.22.331.22.53zm2 2a.75.75 0 0 0 0 1.5h5a.75.75 0 0 0 0-1.5z"></path>
<path clip-rule="evenodd" d="m2 5.75c0-.966.784-1.75 1.75-1.75h20.5c.966 0 1.75.784 1.75 1.75v14.5a1.75 1.75 0 0 1 -1.75 1.75h-20.5a1.75 1.75 0 0 1 -1.75-1.75zm1.75-.25a.25.25 0 0 0 -.25.25v14.5c0 .138.112.25.25.25h20.5a.25.25 0 0 0 .25-.25v-14.5a.25.25 0 0 0 -.25-.25z" fill-rule="evenodd"></path>
</g>
</svg> <span class="text-truncate unselectable">git push origin gh/main</span></li>
</ul>
</div>
<div class="home-branch-container position-relative f6-mktg text-mono color-fg-subtle z-1 mb-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" preserveaspectratio="none" viewbox="0 0 110 142" aria-hidden="true" class="d-none d-md-block position-relative home-branch offset-n1 c25">
<path d="m1-8c0 75 108 75 108 150" stroke-width="2" vector-effect="non-scaling-stroke"></path>
</svg></div>
</div>
<div class="mx-auto wide-block color-bg-subtle container-xl p-responsive d-flex flex-column gutter gutter-spacious position-relative c30">
<div class="home-git-log-subtle col-11 offset-1 pt-8 pb-7 col-md-9 col-lg-6 col-xl-6">
<div class="TimelineItem home-git-timeline-item"><span class="TimelineItem-badge color-border-muted"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table color-fg-subtle">
<path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25V1.75zM1.5 6.5v7.75c0 .138.112.25.25.25H5v-8H1.5zM5 5H1.5V1.75a.25.25 0 01.25-.25H5V5zm1.5 1.5v8h7.75a.25.25 0 00.25-.25V6.5h-8zm8-1.5h-8V1.5h7.75a.25.25 0 01.25.25V5z"></path>
</svg></span>
<div class="TimelineItem-body color-fg-subtle"><picture><source srcset="https://github.githubassets.com/images/modules/site/avatars/mdo.jpg?width=40 40w,https://github.githubassets.com/images/modules/site/avatars/mdo.jpg?width=32 32w,https://github.githubassets.com/images/modules/site/avatars/mdo.jpg?width=24 24w,https://github.githubassets.com/images/modules/site/avatars/mdo.jpg?width=20 20w,https://github.githubassets.com/images/modules/site/avatars/mdo.jpg?width=16 16w,https://github.githubassets.com/images/modules/site/avatars/mdo.jpg?width=8 8w" sizes="20px" type="image/jpeg" /></picture> <img class="avatar height-auto mr-1 circle c26" width="40" height="40" loading="lazy" decoding="async" alt="mdo" aria-hidden="true" src="https://github.githubassets.com/images/modules/site/avatars/mdo.jpg?width=40" /> <strong>mdo</strong> created a new project <strong>👾 OctoArcade Invaders</strong> just now</div>
</div>
<h2 class="h3-mktg mt-6 mb-4 mb-md-6">Put it all on the table, or&nbsp;board, <span class="text-gradient-pink-blue">with&nbsp;Projects.</span></h2>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="f2-mktg color-fg-muted text-semibold mb-4 mb-md-6">Manage your team's work at any scale easier than ever with <span class="text-gray-dark-mktg">the all-new Projects</span>. Built like a spreadsheet, Projects give you a live canvas to filter, sort, group issues and pull requests, create custom views, and more.</h3>
<a class="link-mktg text-semibold color-fg-default py-1 f3-mktg link-emphasis-mktg" href="/features/issues" data-analytics-event="{&quot;category&quot;:&quot;Explore GitHub Issues &amp;amp; Projects&quot;,&quot;action&quot;:&quot;click to Explore GitHub Issues &amp;amp; Projects&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Explore GitHub Issues &amp;amp; Projects;ref_loc:Homepage Projects section;&quot;}">Explore GitHub Issues & Projects <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="col-12 position-relative">
<div class="d-none d-sm-flex flex-justify-center flex-items-center position-absolute top-n9 right-4 z-1"><label for="before-after-layout-toggle" class="f3 text-semibold">Board</label>
<div class="before-after-toggle position-relative mx-2"><input id="before-after-layout-toggle" name="before-after-layout-toggle" class="before-after-toggle-checkbox width-full height-full" type="checkbox" data-target="before-after.toggleElement" data-action="change:before-after#toggle" /> <span class="before-after-toggle-knob position-absolute events-none"></span></div>
<label for="before-after-layout-toggle" class="f3 text-semibold">Table</label></div>
<div class="position-relative mx-auto z-2 box-shadow-default-border-mktg rounded-2 overflow-hidden">
<div class="position-absolute height-full border-right color-border-accent-emphasis top-0 left-0 z-2 before-after-slider"></div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=2280&amp;format=webpll 2280w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=1824&amp;format=webpll 1824w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=1368&amp;format=webpll 1368w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=1140&amp;format=webpll 1140w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=912&amp;format=webpll 912w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=456&amp;format=webpll 456w" sizes="(max-width: 1024px) 90vw, 1140px" type="image/webp" /></picture> <source srcset="https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=2280 2280w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=1140 1140w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=912 912w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=570 570w" sizes="(max-width: 1024px) 90vw, 1140px" type="image/png" /> <img class="width-full height-auto position-absolute top-0 left-0" width="2280" height="1370" loading="lazy" decoding="async" alt="Board view: Project cards in a classic kanban board layout. Cards are sorted in 4 columns based on their status, in a view called 'Standup.'" src="https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=2280" /> <picture><source srcset="https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=2280&amp;format=webpll 2280w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=1824&amp;format=webpll 1824w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=1368&amp;format=webpll 1368w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=1140&amp;format=webpll 1140w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=912&amp;format=webpll 912w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=456&amp;format=webpll 456w" sizes="(max-width: 1024px) 90vw, 1140px" type="image/webp" /></picture> <source srcset="https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=2280 2280w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=1140 1140w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=912 912w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=570 570w" sizes="(max-width: 1024px) 90vw, 1140px" type="image/png" /> <img class="width-full height-auto d-block after-element" width="2280" height="1370" loading="lazy" decoding="async" alt="Table view: Project cards in a table layout. Cards are listed as line items, like a spreadsheet. Cards are grouped by three project phases in a view called 'The Plan.'" data-target="before-after.afterElement" src="https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=2280" /> </div>
</div>
<div class="home-git-log-subtle col-11 offset-1 d-lg-flex flex-wrap py-6 py-md-8 pt-lg-12">
<div class="col-12 col-md-8 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="f2-mktg color-fg-muted text-semibold"><span class="text-gray-dark-mktg">Projects build on the power of GitHub Issues</span>—the most powerful and flexible issue tracker for developers to manage todos, bugs, and features. Together, Issues and Projects ensure your team can focus on coding and shipping.</h3>
<div class="d-none d-lg-flex flex-wrap py-6">
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-markdown color-fg-muted mr-1">
<path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"></path>
</svg> <span class="color-fg-muted text-semibold">GitHub Flavored Markdown</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-checklist color-fg-muted mr-1">
<path fill-rule="evenodd" d="M2.5 1.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v7.736a.75.75 0 101.5 0V1.75A1.75 1.75 0 0011.25 0h-8.5A1.75 1.75 0 001 1.75v11.5c0 .966.784 1.75 1.75 1.75h3.17a.75.75 0 000-1.5H2.75a.25.25 0 01-.25-.25V1.75zM4.75 4a.75.75 0 000 1.5h4.5a.75.75 0 000-1.5h-4.5zM4 7.75A.75.75 0 014.75 7h2a.75.75 0 010 1.5h-2A.75.75 0 014 7.75zm11.774 3.537a.75.75 0 00-1.048-1.074L10.7 14.145 9.281 12.72a.75.75 0 00-1.062 1.058l1.943 1.95a.75.75 0 001.055.008l4.557-4.45z"></path>
</svg> <span class="color-fg-muted text-semibold">Task lists</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted mr-1">
<path d="M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
<path fill-rule="evenodd" d="M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z"></path>
</svg> <span class="color-fg-muted text-semibold">Issue forms & templates</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check-circle color-fg-muted mr-1">
<path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM0 8a8 8 0 1116 0A8 8 0 010 8zm11.78-1.72a.75.75 0 00-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 00-1.06 1.06l2 2a.75.75 0 001.06 0l4.5-4.5z"></path>
</svg> <span class="color-fg-muted text-semibold">Progress indicators</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people color-fg-muted mr-1">
<path fill-rule="evenodd" d="M5.5 3.5a2 2 0 100 4 2 2 0 000-4zM2 5.5a3.5 3.5 0 115.898 2.549 5.507 5.507 0 013.034 4.084.75.75 0 11-1.482.235 4.001 4.001 0 00-7.9 0 .75.75 0 01-1.482-.236A5.507 5.507 0 013.102 8.05 3.49 3.49 0 012 5.5zM11 4a.75.75 0 100 1.5 1.5 1.5 0 01.666 2.844.75.75 0 00-.416.672v.352a.75.75 0 00.574.73c1.2.289 2.162 1.2 2.522 2.372a.75.75 0 101.434-.44 5.01 5.01 0 00-2.56-3.012A3 3 0 0011 4z"></path>
</svg> <span class="color-fg-muted text-semibold">Multiple assignees</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-smiley color-fg-muted mr-1">
<path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM5 8a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zM5.32 9.636a.75.75 0 011.038.175l.007.009c.103.118.22.222.35.31.264.178.683.37 1.285.37.602 0 1.02-.192 1.285-.371.13-.088.247-.192.35-.31l.007-.008a.75.75 0 111.222.87l-.614-.431c.614.43.614.431.613.431v.001l-.001.002-.002.003-.005.007-.014.019a1.984 1.984 0 01-.184.213c-.16.166-.338.316-.53.445-.63.418-1.37.638-2.127.629-.946 0-1.652-.308-2.126-.63a3.32 3.32 0 01-.715-.657l-.014-.02-.005-.006-.002-.003v-.002h-.001l.613-.432-.614.43a.75.75 0 01.183-1.044h.001z"></path>
</svg> <span class="color-fg-muted text-semibold">Reactions</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-tag color-fg-muted mr-1">
<path fill-rule="evenodd" d="M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"></path>
</svg> <span class="color-fg-muted text-semibold">Labels</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-commit color-fg-muted mr-1">
<path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path>
</svg> <span class="color-fg-muted text-semibold">Timeline events</span></div>
</div>
</div>
<div class="col-12 col-sm-11 col-md-8 col-lg-6">
<div class="position-relative z-1 left-n6 left-lg-6 mt-12 mt-lg-10 mt-xl-8 js-build-in-trigger build-in-animate"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=1200&amp;format=webpll 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=960&amp;format=webpll 960w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=720&amp;format=webpll 720w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=600&amp;format=webpll 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=480&amp;format=webpll 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=240&amp;format=webpll 240w" sizes="(max-width: 600px) 90vw, 600px" type="image/webp" /></picture> <source srcset="https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=1200 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=600 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=480 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=300 300w" sizes="(max-width: 600px) 90vw, 600px" type="image/png" /> <img class="width-full height-auto color-bg-default rounded-2 box-shadow-default-border-mktg js-build-in-item build-in-slideY position-absolute c27" width="1200" height="850" loading="lazy" decoding="async" alt="" data-build-delay="200" src="https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=1200" /> <picture><source srcset="https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=1200&amp;format=webpll 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=960&amp;format=webpll 960w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=720&amp;format=webpll 720w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=600&amp;format=webpll 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=480&amp;format=webpll 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=240&amp;format=webpll 240w" sizes="(max-width: 600px) 90vw, 600px" type="image/webp" /></picture> <source srcset="https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=1200 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=600 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=480 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=300 300w" sizes="(max-width: 600px) 90vw, 600px" type="image/png" /> <img class="width-full height-auto color-bg-default rounded-2 box-shadow-default-border-mktg js-build-in-item build-in-slideY position-absolute c28" width="1200" height="850" loading="lazy" decoding="async" alt="" data-build-delay="100" src="https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=1200" /> <picture><source srcset="https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=1200&amp;format=webpll 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=960&amp;format=webpll 960w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=720&amp;format=webpll 720w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=600&amp;format=webpll 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=480&amp;format=webpll 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=240&amp;format=webpll 240w" sizes="(max-width: 600px) 90vw, 600px" type="image/webp" /></picture> <source srcset="https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=1200 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=600 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=480 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=300 300w" sizes="(max-width: 600px) 90vw, 600px" type="image/png" /> <img class="width-full height-auto color-bg-default rounded-2 box-shadow-default-border-mktg js-build-in-item build-in-slideY c29" width="1200" height="850" loading="lazy" decoding="async" alt="" data-build-delay="0" src="https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=1200" /> </div>
<div class="d-sm-flex d-lg-none flex-wrap pt-4 py-sm-6">
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened color-fg-muted mr-1">
<path d="M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
<path fill-rule="evenodd" d="M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z"></path>
</svg> <span class="color-fg-muted text-semibold">Issue forms & templates</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-smiley color-fg-muted mr-1">
<path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM5 8a1 1 0 100-2 1 1 0 000 2zm7-1a1 1 0 11-2 0 1 1 0 012 0zM5.32 9.636a.75.75 0 011.038.175l.007.009c.103.118.22.222.35.31.264.178.683.37 1.285.37.602 0 1.02-.192 1.285-.371.13-.088.247-.192.35-.31l.007-.008a.75.75 0 111.222.87l-.614-.431c.614.43.614.431.613.431v.001l-.001.002-.002.003-.005.007-.014.019a1.984 1.984 0 01-.184.213c-.16.166-.338.316-.53.445-.63.418-1.37.638-2.127.629-.946 0-1.652-.308-2.126-.63a3.32 3.32 0 01-.715-.657l-.014-.02-.005-.006-.002-.003v-.002h-.001l.613-.432-.614.43a.75.75 0 01.183-1.044h.001z"></path>
</svg> <span class="color-fg-muted text-semibold">Reactions</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people color-fg-muted mr-1">
<path fill-rule="evenodd" d="M5.5 3.5a2 2 0 100 4 2 2 0 000-4zM2 5.5a3.5 3.5 0 115.898 2.549 5.507 5.507 0 013.034 4.084.75.75 0 11-1.482.235 4.001 4.001 0 00-7.9 0 .75.75 0 01-1.482-.236A5.507 5.507 0 013.102 8.05 3.49 3.49 0 012 5.5zM11 4a.75.75 0 100 1.5 1.5 1.5 0 01.666 2.844.75.75 0 00-.416.672v.352a.75.75 0 00.574.73c1.2.289 2.162 1.2 2.522 2.372a.75.75 0 101.434-.44 5.01 5.01 0 00-2.56-3.012A3 3 0 0011 4z"></path>
</svg> <span class="color-fg-muted text-semibold">Multiple assignees</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-quote color-fg-muted mr-1">
<path fill-rule="evenodd" d="M1.75 2.5a.75.75 0 000 1.5h10.5a.75.75 0 000-1.5H1.75zm4 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM2.5 7.75a.75.75 0 00-1.5 0v6a.75.75 0 001.5 0v-6z"></path>
</svg> <span class="color-fg-muted text-semibold">Nested issues</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check-circle color-fg-muted mr-1">
<path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM0 8a8 8 0 1116 0A8 8 0 010 8zm11.78-1.72a.75.75 0 00-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 00-1.06 1.06l2 2a.75.75 0 001.06 0l4.5-4.5z"></path>
</svg> <span class="color-fg-muted text-semibold">Progress indicators</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-checklist color-fg-muted mr-1">
<path fill-rule="evenodd" d="M2.5 1.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v7.736a.75.75 0 101.5 0V1.75A1.75 1.75 0 0011.25 0h-8.5A1.75 1.75 0 001 1.75v11.5c0 .966.784 1.75 1.75 1.75h3.17a.75.75 0 000-1.5H2.75a.25.25 0 01-.25-.25V1.75zM4.75 4a.75.75 0 000 1.5h4.5a.75.75 0 000-1.5h-4.5zM4 7.75A.75.75 0 014.75 7h2a.75.75 0 010 1.5h-2A.75.75 0 014 7.75zm11.774 3.537a.75.75 0 00-1.048-1.074L10.7 14.145 9.281 12.72a.75.75 0 00-1.062 1.058l1.943 1.95a.75.75 0 001.055.008l4.557-4.45z"></path>
</svg> <span class="color-fg-muted text-semibold">Task lists</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-commit color-fg-muted mr-1">
<path fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path>
</svg> <span class="color-fg-muted text-semibold">Timeline events</span></div>
<div class="col-sm-6 flex-shrink-0 py-2"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-tag color-fg-muted mr-1">
<path fill-rule="evenodd" d="M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"></path>
</svg> <span class="color-fg-muted text-semibold">Labels</span></div>
</div>
</div>
</div>
</div>
<div class="container-xl p-responsive d-flex flex-column gutter gutter-spacious position-relative home-git-log-light col-11 offset-1 py-6 pt-md-12 d-flex gutter gutter-spacious flex-column flex-lg-row">
<div class="offset-sm-1 ml-lg-0 col-12 col-sm-11 col-md-10 col-lg-5 d-flex flex-column mb-5 mb-md-6">
<div class="text-center js-build-in build-in-slideY home-mobile-iphone mx-auto box-shadow-active-mktg mb-5 mb-md-6 position-relative c32"><img src="https://github.githubassets.com/images/modules/site/home/iphone-notch.svg" class="width-full position-absolute top-0 right-0 left-0" alt="iPhone notch" loading="lazy" /> <video loop="" muted="" playsinline="" class="width-full js-viewport-aware-video looping-mktg c31" data-threshold="0" preload="none" poster="https://github.githubassets.com/images/modules/site/home/gh-mobile.png"><source type="video/mp4; codecs=avc1.4D401E,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/gh-mobile.h264.mp4" /></video></div>
<div>
<h3 class="f2-mktg color-fg-muted text-semibold mb-5 mb-lg-0 col-5-max"><span class="text-gray-dark-mktg">Keep work moving.</span> Review or merge code, manage projects, issues, browse repos, and more with <a class="color-fg-accent" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn about GitHub Mobile&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:GitHub Mobile;ref_loc:collaboration launchpad;&quot;}" href="/mobile">GitHub Mobile</a>.</h3>
<h4 class="f4-mktg text-semibold color-fg-muted mb-3">Available for iOS and Android</h4>
<ul class="list-style-none d-flex flex-items-center">
<li class="mr-1 px-1"><a href="https://apps.apple.com/app/github/id1477376905?ls=1" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to get GitHub Mobile on Apple App Store&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:apple icon;ref_loc:develop launchpad;&quot;}"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-apple.svg" alt="Apple App Store" loading="lazy" /></a></li>
<li class="px-1"><a href="https://play.google.com/store/apps/details?id=com.github.android" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to get GitHub Mobile on Google Play Store&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:google icon;ref_loc:develop launchpad;&quot;}"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-google.svg" alt="Google Play Store" loading="lazy" /></a></li>
</ul>
</div>
</div>
<div class="offset-sm-1 ml-lg-0 col-11 col-md-10 col-lg-5 d-flex flex-column mb-5 mb-md-6">
<div class="js-build-in-trigger js-type-in-trigger position-relative d-flex flex-items-center mb-5 mb-md-6 home-desktop-comp col-12">
<div class="js-build-in-item build-in-slideX-left home-desktop box-shadow-default-border-mktg offset-2 overflow-hidden"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/gh-desktop.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/gh-desktop.png" width="709" height="510" loading="lazy" class="width-full height-auto" alt="Viewing changelog in GitHub Desktop" /></picture></div>
<div class="js-build-in-item home-cli position-absolute width-full terminal-mktg text-mono f6-mktg bg-gray-dark-mktg box-shadow-active-mktg rounded-2 js-type-in" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark">
<div class="px-4 pt-3 position-relative">
<div class="d-flex flex-row flex-nowrap position-absolute mt-1" aria-hidden="true"><span class="d-inline-block circle mr-2 color-bg-emphasis c33"></span> <span class="d-inline-block circle mr-2 color-bg-emphasis c33"></span> <span class="d-inline-block circle mr-2 color-bg-emphasis c33"></span></div>
<div class="text-center text-small color-fg-subtle mb-n3">bash</div>
</div>
<div class="p-4" data-type-row-delay="100">
<div class=""><strong class="code-pink">→</strong> <strong class="color-fg-success">~/</strong> <span class="js-type-letters">$ gh pr status</span></div>
<div class="js-type-row"><span><var>Relevant pull requests in cli/cli</var></span></div>
<div class="js-type-row"><span>&nbsp;</span></div>
<div class="js-type-row"><span><strong>Current branch</strong></span></div>
<div class="js-type-row"><span><var>There is no pull request associated with [main]</var></span></div>
<div class="js-type-row"><span>&nbsp;</span></div>
<div class="js-type-row"><span><strong>Created by you</strong></span></div>
<div class="js-type-row"><span><var>You have no open pull requests</var></span></div>
<div class="js-type-row"><span>&nbsp;</span></div>
<div class="js-type-row"><span><strong>Requesting a code review from you</strong></span></div>
<div class="js-type-row"><span><em>#1401</em> Correctly handle and set empty fields...</span></div>
<div class="js-type-row"><span><var>[octocat:emptyBody]</var></span></div>
<div class="js-type-row"><span><em>✓ Checks passing</em></span></div>
<div class="js-type-row"><span><em>#1357</em> Added confirmation steps for risk...</span></div>
<div class="js-type-row"><span><var>[octocat:confirmations]</var></span></div>
<div class="js-type-row"><span><del>x 1/3 checks failing</del></span></div>
<div class="js-type-row"><strong class="code-pink">→</strong> <strong class="color-fg-success">~/</strong> <span class="js-type-letters">$</span></div>
</div>
</div>
</div>
<div>
<h3 class="f2-mktg color-fg-muted text-semibold mb-5 mb-lg-0 col-5-max"><span class="text-gray-dark-mktg">Work however you want.</span> Put a GUI on it with <a class="color-fg-accent" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn about GitHub Desktop&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:npm;ref_loc:code launchpad&quot;}" href="https://desktop.github.com/">GitHub Desktop</a> or stay in the command line with <a class="color-fg-accent" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn about GitHub CLI&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:npm;ref_loc:code launchpad&quot;}" href="https://cli.github.com/">GitHub CLI</a>.</h3>
<h4 class="f4-mktg text-semibold color-fg-muted mb-3">Available for macOS, Windows, and Linux*</h4>
<ul class="list-style-none d-flex flex-items-center mb-2">
<li class="mr-1 px-1"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-apple.svg" alt="macOS" loading="lazy" /></li>
<li class="px-1"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-windows.svg" alt="Windows" loading="lazy" /></li>
<li class="mr-1 px-1"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-linux.svg" alt="Linux" loading="lazy" /></li>
</ul>
<p class="f6-mktg color-fg-muted">* GitHub CLI is available on macOS, Windows, and Linux<br />
* GitHub Desktop is available on macOS and Windows</p>
</div>
</div>
</div>
</div>
<div class="mx-auto box-shadow-default-mktg wide-block py-0 position-relative home-git-log-dark-icons js-section" id="home-develop" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark">
<div class="container-xl p-responsive height-full position-absolute top-0 left-0 right-0 width-full events-none overflow-hidden d-flex flex-column gutter gutter-spacious height-full events-none col-10 offset-1 home-git-log-dark height-full c34"></div>
<div class="container-xl p-responsive">
<div class="d-flex flex-column col-11 col-md-10 offset-1 home-codespaces-container">
<div class="col-8-max mx-lg-auto text-lg-center mb-6 mb-md-8 position-relative z-2">
<h2 class="h2-mktg color-fg-default mb-3">Blazing fast cloud developer environments with <span class="text-gradient-turq-purple-dark">Codespaces</span></h2>
<a class="link-mktg text-semibold color-fg-default py-1 f3-mktg link-emphasis-mktg" href="/features/codespaces" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn more about Codespaces&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Learn more about GitHub Codespaces;ref_loc:codespaces launchpad&quot;}">Learn more about GitHub Codespaces <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="d-flex flex-column pt-5 z-1">
<div class="js-build-in col-12 col-md-9 col-lg-6 home-codespaces-copy-item home-codespaces-copy-item-1 position-relative" data-build-non-decorative="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1 c35">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="f2-mktg text-gray-light-mktg text-semibold">The future of code is in the cloud, not your local copy. <span class="color-fg-default">Codespaces gives you a complete, configurable dev environment on top of a powerful VM in minutes.</span></h3>
</div>
<div class="js-build-in col-12 col-md-9 col-lg-6 home-codespaces-copy-item home-codespaces-copy-item-2 position-relative" data-build-non-decorative="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="64" viewbox="0 0 56 64" width="56" aria-hidden="true" class="d-none d-sm-block float-left position-relative z-1 c36">
<path d="m0 0h56v64h-56z" fill="#051127"></path>
<rect fill="#fff" height="56" rx="16" width="56" y="4"></rect>
<path d="m43.6096 18.8281-6.923-3.3333c-.8013-.3858-1.7591-.2231-2.388.4058l-22.6636 20.664c-.6096.5558-.6089 1.5155.0015 2.0704l1.8512 1.6829c.4991.4538 1.2506.4871 1.7879.0796l27.2923-20.7046c.9156-.6946 2.2307-.0416 2.2307 1.1077v-.0804c0-.8067-.4621-1.5421-1.189-1.8921z" fill="#0065a9"></path>
<path d="m43.6096 45.1719-6.923 3.3334c-.8013.3857-1.7591.223-2.388-.4058l-22.6636-20.664c-.6096-.5558-.6089-1.5156.0015-2.0705l1.8512-1.6829c.4991-.4537 1.2506-.4871 1.7879-.0795l27.2923 20.7045c.9156.6946 2.2307.0416 2.2307-1.1077v.0804c0 .8067-.4621 1.5421-1.189 1.8921z" fill="#007acc"></path>
<path d="m36.6877 48.5059c-.8015.3855-1.7593.2226-2.3882-.4063.7749.7749 2.1.226 2.1-.8699v-30.4603c0-1.096-1.3251-1.6448-2.1-.8699.6289-.6289 1.5867-.7919 2.3882-.4064l6.9219 3.3287c.7274.3498 1.1899 1.0855 1.1899 1.8926v22.5704c0 .8071-.4625 1.5427-1.1899 1.8925z" fill="#1f9cf0"></path>
</svg> <svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="d-block d-sm-none home-git-icon home-git-item float-left mr-n6 position-relative z-1 c35">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="f2-mktg text-gray-light-mktg text-semibold"><span class="color-fg-default">Visual Studio Code, in your browser, full stop.</span> Codespaces brings the world’s most popular desktop editor to every repo. Code, build, test, use the terminal, and open pull requests from anywhere.</h3>
</div>
<div class="js-build-in col-12 col-md-9 col-lg-6 home-codespaces-copy-item home-codespaces-copy-item-3 position-relative" data-build-non-decorative="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1 c35">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="f2-mktg text-gray-light-mktg text-semibold"><span class="color-fg-default">Customize to your heart’s desire.</span> Add your favorite VS Code extensions, create a devcontainer config file, install new themes, and tweak your settings.</h3>
</div>
<div class="col-12 col-lg-6 position-absolute top-0 right-0 height-full home-codespaces-illo events-none top-0 right-0 position-sticky z-1 pt-3 pt-lg-8 c37">
<div class="home-codespaces-img-container overflow-hidden d-flex flex-items-start position-relative pl-2 pl-lg-4"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/codespaces-vscode-1.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/codespaces-vscode-1.png" class="home-codespaces-view home-codespaces-view-1 z-2 rounded-2 box-shadow-active-border-light-mktg" alt="VS Code running in the browser with your project's code and development environment running. A terminal panel is visiable in the editor." loading="lazy" /></picture> <picture><source srcset="https://github.githubassets.com/images/modules/site/home/codespaces-vscode-2.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/codespaces-vscode-2.png" class="home-codespaces-view home-codespaces-view-2 z-2 rounded-2 box-shadow-active-border-light-mktg" alt="VS Code running in the browser with your project's code and development environment running. A terminal panel is visiable in the editor." loading="lazy" /></picture> <picture><source srcset="https://github.githubassets.com/images/modules/site/home/codespaces-vscode-3.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/codespaces-vscode-3.png" class="home-codespaces-view home-codespaces-view-3 z-2 rounded-2 box-shadow-active-border-light-mktg" alt="VS Code running in the browser with your project's code and development environment running. A terminal panel is visiable in the editor." loading="lazy" /></picture></div>
<div class="home-codespaces-glow-container position-absolute top-0 bottom-0 overflow-hidden"><img src="https://github.githubassets.com/images/modules/site/home/codespaces-glow.svg" class="home-codespaces-glow position-absolute z-n1" alt="Light glowing behind the editor" loading="lazy" /></div>
</div>
</div>
</div>
<div class="width-full overflow-hidden d-flex flex-column gutter gutter-spacious d-none d-lg-flex offset-1 col-5 px-0 position-relative z-1">
<div class="flex-auto ml-n7 c38"></div>
<div class="mr-n4 c39"></div>
<div class="ml-n7 height-full position-absolute top-0 width-full z-n1 bg-home-dark c40"></div>
</div>
</div>
<div class="width-full overflow-hidden position-relative z-1 text-md-center pt-3 px-3 c42"><svg aria-hidden="true" height="24" viewbox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot mb-3 c41">
<path d="M9.75 14a.75.75 0 01.75.75v2.5a.75.75 0 01-1.5 0v-2.5a.75.75 0 01.75-.75zm4.5 0a.75.75 0 01.75.75v2.5a.75.75 0 01-1.5 0v-2.5a.75.75 0 01.75-.75z"></path>
<path fill-rule="evenodd" d="M12 2c-2.214 0-4.248.657-5.747 1.756a7.43 7.43 0 00-.397.312c-.584.235-1.077.546-1.474.952-.85.87-1.132 2.037-1.132 3.368 0 .368.014.733.052 1.086l-.633 1.478-.043.022A4.75 4.75 0 000 15.222v1.028c0 .529.31.987.564 1.293.28.336.637.653.967.918a13.262 13.262 0 001.299.911l.024.015.006.004.04.025.144.087c.124.073.304.177.535.3.46.245 1.122.57 1.942.894C7.155 21.344 9.439 22 12 22s4.845-.656 6.48-1.303c.819-.324 1.481-.65 1.941-.895a13.797 13.797 0 00.68-.386l.039-.025.006-.004.024-.015a8.829 8.829 0 00.387-.248c.245-.164.577-.396.912-.663.33-.265.686-.582.966-.918.256-.306.565-.764.565-1.293v-1.028a4.75 4.75 0 00-2.626-4.248l-.043-.022-.633-1.478c.038-.353.052-.718.052-1.086 0-1.331-.282-2.499-1.132-3.368-.397-.406-.89-.717-1.474-.952a7.386 7.386 0 00-.397-.312C16.248 2.657 14.214 2 12 2zm-8 9.654l.038-.09c.046.06.094.12.145.177.793.9 2.057 1.259 3.782 1.259 1.59 0 2.739-.544 3.508-1.492.131-.161.249-.331.355-.508a32.948 32.948 0 00.344 0c.106.177.224.347.355.508.77.948 1.918 1.492 3.508 1.492 1.725 0 2.989-.359 3.782-1.259.05-.057.099-.116.145-.177l.038.09v6.669a17.618 17.618 0 01-2.073.98C16.405 19.906 14.314 20.5 12 20.5c-2.314 0-4.405-.594-5.927-1.197A17.62 17.62 0 014 18.323v-6.67zm6.309-1.092a2.35 2.35 0 01-.38.374c-.437.341-1.054.564-1.964.564-1.573 0-2.292-.337-2.657-.75-.192-.218-.331-.506-.423-.89-.091-.385-.135-.867-.135-1.472 0-1.14.243-1.847.705-2.32.477-.487 1.319-.861 2.824-1.024 1.487-.16 2.192.138 2.533.529l.008.01c.264.308.429.806.43 1.568v.031a7.203 7.203 0 01-.09 1.079c-.143.967-.406 1.754-.851 2.301zm2.504-2.497a7.174 7.174 0 01-.063-.894v-.02c.001-.77.17-1.27.438-1.578.341-.39 1.046-.69 2.533-.529 1.506.163 2.347.537 2.824 1.025.462.472.705 1.179.705 2.319 0 1.21-.174 1.926-.558 2.361-.365.414-1.084.751-2.657.751-1.21 0-1.902-.393-2.344-.938-.475-.584-.742-1.44-.878-2.497z"></path>
</svg>
<h2 class="h2-mktg color-fg-default mb-3 text-gradient-copilot mx-auto pb-3">GitHub Copilot,<br />
your AI code companion</h2>
<h3 class="f2-mktg text-gray-light-mktg text-semibold mx-auto col-7-max mt-4 mb-5">GitHub Copilot plugs directly into your editor and suggests lines of code—and entire functions. Focus on building bigger things while GitHub Copilot takes on the repetitive stuff.</h3>
<a class="link-mktg text-semibold color-fg-default py-1 f3-mktg link-emphasis-mktg" href="/features/copilot" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to Learn more about GitHub Copilot&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Learn more about GitHub Copilot;&quot;}">Learn more about GitHub Copilot <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a>
<div class="mx-auto col-9-max mt-8 mb-11 color-bg-subtle rounded-3 border text-left mb-8 home-copilot-editor box-shadow-card-mktg">
<div class="tabnav pt-2 px-2 mb-0" role="tablist">
<nav class="tabnav-tabs" aria-label="Code editor files"><button name="button" type="button" role="tab" id="fetch_tweets-js" aria-selected="true" class="tabnav-tab"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewbox="0 0 24 24" aria-hidden="true" class="octicon" height="16" width="16">
<title>JavaScript</title>
<path d="M0 0h24v24H0V0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.404-.601-.586-.78-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65l.046.067zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179l.004-.056z"></path>
</svg> <span>fetch_tweets.js</span></button> <button name="button" type="button" role="tab" id="fetch_tweets-py" aria-selected="false" class="tabnav-tab"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewbox="0 0 24 24" aria-hidden="true" class="octicon" height="16" width="16">
<title>Python</title>
<path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z"></path>
</svg> <span>fetch_tweets.py</span></button> <button name="button" type="button" role="tab" id="fetch_tweets-rb" aria-selected="false" class="tabnav-tab"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewbox="0 0 24 24" aria-hidden="true" class="octicon" height="16" width="16">
<title>Ruby</title>
<path d="M20.156.083c3.033.525 3.893 2.598 3.829 4.77L24 4.822 22.635 22.71 4.89 23.926h.016C3.433 23.864.15 23.729 0 19.139l1.645-3 2.819 6.586.503 1.172 2.805-9.144-.03.007.016-.03 9.255 2.956-1.396-5.431-.99-3.9 8.82-.569-.615-.51L16.5 2.114 20.159.073l-.003.01zM0 19.089zM5.13 5.073c3.561-3.533 8.157-5.621 9.922-3.84 1.762 1.777-.105 6.105-3.673 9.636-3.563 3.532-8.103 5.734-9.864 3.957-1.766-1.777.045-6.217 3.612-9.75l.003-.003z"></path>
</svg> <span>fetch_tweets.rb</span></button> <button name="button" type="button" role="tab" id="fetch_tweets-ts" aria-selected="false" class="tabnav-tab"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewbox="0 0 24 24" aria-hidden="true" class="octicon" height="16" width="16">
<title>TypeScript</title>
<path d="M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z"></path>
</svg> <span>fetch_tweets.ts</span></button> <button name="button" type="button" role="tab" id="fetch_tweets-go" aria-selected="false" class="tabnav-tab"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewbox="0 0 24 24" aria-hidden="true" class="octicon" height="16" width="16">
<title>Go</title>
<path d="M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z"></path>
</svg> <span>fetch_tweets.go</span></button></nav>
</div>
<div role="tabpanel" aria-labelledby="fetch_tweets-js" class="code-editor-component position-relative text-mono color-bg-default rounded-bottom-3 f4 p-3 js-type-in">
<div class="d-flex">
<div class="color-fg-subtle text-right user-select-none">
<div class="pr-2">1</div>
<div class="pr-2">2</div>
<div class="pr-2">3</div>
<div class="pr-2">4</div>
<div class="pr-2">5</div>
<div class="pr-2">6</div>
<div class="pr-2">7</div>
<div class="pr-2">8</div>
<div class="pr-2">9</div>
<div class="pr-2">10</div>
<div class="pr-2">11</div>
<div class="pr-2">12</div>
<div class="pr-2">13</div>
<div class="pr-2">14</div>
</div>
<div class="flex-1 overflow-x-auto">
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"><span class="pl-k">const</span> <span class="pl-s1">token</span> <span class="pl-c1">=</span> <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">[</span><span class="pl-s">"TWITTER_BEARER_TOKEN"</span><span class="pl-kos">]</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-letters"><span class="pl-k">const</span> <span class="pl-en">fetchTweetsFromUser</span> <span class="pl-c1">=</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-s1">screenName</span><span class="pl-kos">,</span> <span class="pl-s1">count</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">const</span> <span class="pl-s1">response</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-en">fetch</span><span class="pl-kos">(</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s">`https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">screenName</span><span class="pl-kos">}</span></span>&amp;count=<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">count</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">headers</span>: <span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">Authorization</span>: <span class="pl-s">`Bearer <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">token</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">}</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">}</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">)</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">const</span> <span class="pl-s1">json</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-s1">response</span><span class="pl-kos">.</span><span class="pl-en">json</span><span class="pl-kos">(</span><span class="pl-kos">)</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-s1">json</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent pl-kos" data-type-row-delay="0">}</span></pre>
<div class="copilot-marker position-absolute color-fg-on-emphasis color-bg-accent-emphasis p-2 rounded text-bold d-flex flex-items-center f5 js-type-row"><svg width="16" height="15" viewbox="0 0 16 15" fill="currentColor" aria-hidden="true" class="mr-1">
<path d="M5.5 8.75282C5.5 8.33863 5.83569 8.00282 6.25 8.00282C6.66415 8.00282 7 8.33861 7 8.75282V10.2489C7 10.6631 6.66431 10.9989 6.25 10.9989C5.83569 10.9989 5.5 10.6631 5.5 10.2489V8.75282Z"></path>
<path d="M10.5 8.75282C10.5 8.33863 10.1643 8.00282 9.75 8.00282C9.33551 8.00282 9 8.33881 9 8.75282V10.2489C9 10.6631 9.33569 10.9989 9.75 10.9989C10.1643 10.9989 10.5 10.6631 10.5 10.2489V8.75282Z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04443 0.0297942C6.05371 -0.0606599 7.3667 0.00708908 8 0.919809C8.6333 0.00708908 9.94629 -0.0606599 10.9556 0.0297942C12.1118 0.145761 13.0854 0.543222 13.6328 1.12708C14.5825 2.1648 14.6267 4.34144 14.1685 5.5398C14.2146 5.74464 14.2585 5.95216 14.29 6.17176C15.1366 6.39482 16 7.59408 16 8.45167V10.0717C16 10.5215 15.79 10.9314 15.4199 11.2114C13.3044 12.7835 10.6672 14.0012 8 14.0012C5.33276 14.0012 2.69556 12.7835 0.580078 11.2114C0.209961 10.9314 0 10.5215 0 10.0717V8.45167C0 7.59408 0.863428 6.39482 1.70996 6.17176C1.7416 5.95216 1.7855 5.74461 1.83154 5.5398C1.37329 4.34144 1.41748 2.1648 2.36719 1.12708C2.91455 0.543222 3.88818 0.145761 5.04443 0.0297942ZM8 12.5014C9.93994 12.5014 11.8501 11.6426 13 11.0028V6.65907C11.1445 7.37782 9.00928 7.00721 8.00146 5.34229H7.99854C6.99072 7.00721 4.85547 7.37782 3 6.65907V11.0028C4.1499 11.6426 6.06006 12.5014 8 12.5014ZM5 5.49879C6.64062 5.49879 7 4.20582 7 3.01832C7 1.91517 6.8125 1.50392 5.53125 1.50392C3.31396 1.50392 3.04688 2.25282 3.04688 4.00282C3.04688 5.10597 3.35938 5.49879 5 5.49879ZM11 5.49879C9.35938 5.49879 9 4.20582 9 3.01832C9 1.91517 9.1875 1.50392 10.4688 1.50392C12.686 1.50392 12.9531 2.25282 12.9531 4.00282C12.9531 5.10597 12.6406 5.49879 11 5.49879Z"></path>
</svg> Copilot</div>
</div>
</div>
<div class="position-absolute width-full z-1 text-center bottom-0 left-0 mb-n6 f5-mktg js-type-row"><button type="button" data-view-component="true" class="js-type-restart btn-link color-fg-default no-underline"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sync mr-2">
<path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path>
</svg>Replay</button></div>
</div>
<div role="tabpanel" aria-labelledby="fetch_tweets-py" hidden="hidden" class="code-editor-component position-relative text-mono color-bg-default rounded-bottom-3 f4 p-3 js-type-in">
<div class="d-flex">
<div class="color-fg-subtle text-right user-select-none">
<div class="pr-2">1</div>
<div class="pr-2">2</div>
<div class="pr-2">3</div>
<div class="pr-2">4</div>
<div class="pr-2">5</div>
<div class="pr-2">6</div>
<div class="pr-2">7</div>
<div class="pr-2">8</div>
<div class="pr-2">9</div>
<div class="pr-2">10</div>
<div class="pr-2">11</div>
</div>
<div class="flex-1 overflow-x-auto">
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"><span class="pl-k">import</span> <span class="pl-s1">tweepy</span>, <span class="pl-s1">os</span> <span class="pl-c"># secrets in environment variables</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-letters"><span class="pl-k">def</span> <span class="pl-en">fetch_tweets_from_user</span>(<span class="pl-s1">user_name</span>):</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c"># authentification</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">auth</span> <span class="pl-c1">=</span> <span class="pl-s1">tweepy</span>.<span class="pl-v">OAuthHandler</span>(<span class="pl-s1">os</span>.<span class="pl-s1">environ</span>[<span class="pl-s">'TWITTER_KEY'</span>], <span class="pl-s1">os</span>.<span class="pl-s1">environ</span>[<span class="pl-s">'TWITTER_SECRET'</span>])</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">auth</span>.<span class="pl-en">set_access_token</span>(<span class="pl-s1">os</span>.<span class="pl-s1">environ</span>[<span class="pl-s">'TWITTER_TOKEN'</span>], <span class="pl-s1">os</span>.<span class="pl-s1">environ</span>[<span class="pl-s">'TWITTER_TOKEN_SECRET'</span>])</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">api</span> <span class="pl-c1">=</span> <span class="pl-s1">tweepy</span>.<span class="pl-v">API</span>(<span class="pl-s1">auth</span>)</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c"># fetch tweets</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">tweets</span> <span class="pl-c1">=</span> <span class="pl-s1">api</span>.<span class="pl-en">user_timeline</span>(<span class="pl-s1">screen_name</span><span class="pl-c1">=</span><span class="pl-s1">user</span>, <span class="pl-s1">count</span><span class="pl-c1">=</span><span class="pl-c1">200</span>, <span class="pl-s1">include_rts</span><span class="pl-c1">=</span><span class="pl-c1">False</span>)</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-s1">tweets</span></span></pre>
<div class="copilot-marker position-absolute color-fg-on-emphasis color-bg-accent-emphasis p-2 rounded text-bold d-flex flex-items-center f5 js-type-row"><svg width="16" height="15" viewbox="0 0 16 15" fill="currentColor" aria-hidden="true" class="mr-1">
<path d="M5.5 8.75282C5.5 8.33863 5.83569 8.00282 6.25 8.00282C6.66415 8.00282 7 8.33861 7 8.75282V10.2489C7 10.6631 6.66431 10.9989 6.25 10.9989C5.83569 10.9989 5.5 10.6631 5.5 10.2489V8.75282Z"></path>
<path d="M10.5 8.75282C10.5 8.33863 10.1643 8.00282 9.75 8.00282C9.33551 8.00282 9 8.33881 9 8.75282V10.2489C9 10.6631 9.33569 10.9989 9.75 10.9989C10.1643 10.9989 10.5 10.6631 10.5 10.2489V8.75282Z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04443 0.0297942C6.05371 -0.0606599 7.3667 0.00708908 8 0.919809C8.6333 0.00708908 9.94629 -0.0606599 10.9556 0.0297942C12.1118 0.145761 13.0854 0.543222 13.6328 1.12708C14.5825 2.1648 14.6267 4.34144 14.1685 5.5398C14.2146 5.74464 14.2585 5.95216 14.29 6.17176C15.1366 6.39482 16 7.59408 16 8.45167V10.0717C16 10.5215 15.79 10.9314 15.4199 11.2114C13.3044 12.7835 10.6672 14.0012 8 14.0012C5.33276 14.0012 2.69556 12.7835 0.580078 11.2114C0.209961 10.9314 0 10.5215 0 10.0717V8.45167C0 7.59408 0.863428 6.39482 1.70996 6.17176C1.7416 5.95216 1.7855 5.74461 1.83154 5.5398C1.37329 4.34144 1.41748 2.1648 2.36719 1.12708C2.91455 0.543222 3.88818 0.145761 5.04443 0.0297942ZM8 12.5014C9.93994 12.5014 11.8501 11.6426 13 11.0028V6.65907C11.1445 7.37782 9.00928 7.00721 8.00146 5.34229H7.99854C6.99072 7.00721 4.85547 7.37782 3 6.65907V11.0028C4.1499 11.6426 6.06006 12.5014 8 12.5014ZM5 5.49879C6.64062 5.49879 7 4.20582 7 3.01832C7 1.91517 6.8125 1.50392 5.53125 1.50392C3.31396 1.50392 3.04688 2.25282 3.04688 4.00282C3.04688 5.10597 3.35938 5.49879 5 5.49879ZM11 5.49879C9.35938 5.49879 9 4.20582 9 3.01832C9 1.91517 9.1875 1.50392 10.4688 1.50392C12.686 1.50392 12.9531 2.25282 12.9531 4.00282C12.9531 5.10597 12.6406 5.49879 11 5.49879Z"></path>
</svg> Copilot</div>
</div>
</div>
<div class="position-absolute width-full z-1 text-center bottom-0 left-0 mb-n6 f5-mktg js-type-row"><button type="button" data-view-component="true" class="js-type-restart btn-link color-fg-default no-underline"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sync mr-2">
<path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path>
</svg>Replay</button></div>
</div>
<div role="tabpanel" aria-labelledby="fetch_tweets-rb" hidden="hidden" class="code-editor-component position-relative text-mono color-bg-default rounded-bottom-3 f4 p-3 js-type-in">
<div class="d-flex">
<div class="color-fg-subtle text-right user-select-none">
<div class="pr-2">1</div>
<div class="pr-2">2</div>
<div class="pr-2">3</div>
<div class="pr-2">4</div>
<div class="pr-2">5</div>
<div class="pr-2">6</div>
<div class="pr-2">7</div>
<div class="pr-2">8</div>
<div class="pr-2">9</div>
<div class="pr-2">10</div>
<div class="pr-2">11</div>
<div class="pr-2">12</div>
</div>
<div class="flex-1 overflow-x-auto">
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"><span class="pl-en">require</span> <span class="pl-s">'twitter'</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-letters"><span class="pl-k">def</span> <span class="pl-en">fetch_tweets_from_user</span> <span class="pl-kos">(</span><span class="pl-s1">handle</span><span class="pl-kos">)</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">twitter</span> <span class="pl-c1">=</span> <span class="pl-v">Twitter</span>::<span class="pl-c1">REST</span>::<span class="pl-v">Client</span><span class="pl-kos">.</span><span class="pl-en">new</span> <span class="pl-k">do</span> |<span class="pl-s1">config</span>|</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">config</span><span class="pl-kos">.</span><span class="pl-en">consumer_key</span> <span class="pl-c1">=</span> <span class="pl-c1">ENV</span><span class="pl-kos">[</span><span class="pl-s">'TWITTER_CONSUMER_KEY'</span><span class="pl-kos">]</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">config</span><span class="pl-kos">.</span><span class="pl-en">consumer_secret</span> <span class="pl-c1">=</span> <span class="pl-c1">ENV</span><span class="pl-kos">[</span><span class="pl-s">'TWITTER_CONSUMER_SECRET'</span><span class="pl-kos">]</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">config</span><span class="pl-kos">.</span><span class="pl-en">access_token</span> <span class="pl-c1">=</span> <span class="pl-c1">ENV</span><span class="pl-kos">[</span><span class="pl-s">'TWITTER_ACCESS_TOKEN'</span><span class="pl-kos">]</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">config</span><span class="pl-kos">.</span><span class="pl-en">access_token_secret</span> <span class="pl-c1">=</span> <span class="pl-c1">ENV</span><span class="pl-kos">[</span><span class="pl-s">'TWITTER_ACCESS_TOKEN_SECRET'</span><span class="pl-kos">]</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">end</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">tweets</span> <span class="pl-c1">=</span> <span class="pl-s1">twitter</span><span class="pl-kos">.</span><span class="pl-en">user_timeline</span><span class="pl-kos">(</span><span class="pl-s1">handle</span><span class="pl-kos">)</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">tweets</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent pl-k" data-type-row-delay="0">end</span></pre>
<div class="copilot-marker position-absolute color-fg-on-emphasis color-bg-accent-emphasis p-2 rounded text-bold d-flex flex-items-center f5 js-type-row"><svg width="16" height="15" viewbox="0 0 16 15" fill="currentColor" aria-hidden="true" class="mr-1">
<path d="M5.5 8.75282C5.5 8.33863 5.83569 8.00282 6.25 8.00282C6.66415 8.00282 7 8.33861 7 8.75282V10.2489C7 10.6631 6.66431 10.9989 6.25 10.9989C5.83569 10.9989 5.5 10.6631 5.5 10.2489V8.75282Z"></path>
<path d="M10.5 8.75282C10.5 8.33863 10.1643 8.00282 9.75 8.00282C9.33551 8.00282 9 8.33881 9 8.75282V10.2489C9 10.6631 9.33569 10.9989 9.75 10.9989C10.1643 10.9989 10.5 10.6631 10.5 10.2489V8.75282Z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04443 0.0297942C6.05371 -0.0606599 7.3667 0.00708908 8 0.919809C8.6333 0.00708908 9.94629 -0.0606599 10.9556 0.0297942C12.1118 0.145761 13.0854 0.543222 13.6328 1.12708C14.5825 2.1648 14.6267 4.34144 14.1685 5.5398C14.2146 5.74464 14.2585 5.95216 14.29 6.17176C15.1366 6.39482 16 7.59408 16 8.45167V10.0717C16 10.5215 15.79 10.9314 15.4199 11.2114C13.3044 12.7835 10.6672 14.0012 8 14.0012C5.33276 14.0012 2.69556 12.7835 0.580078 11.2114C0.209961 10.9314 0 10.5215 0 10.0717V8.45167C0 7.59408 0.863428 6.39482 1.70996 6.17176C1.7416 5.95216 1.7855 5.74461 1.83154 5.5398C1.37329 4.34144 1.41748 2.1648 2.36719 1.12708C2.91455 0.543222 3.88818 0.145761 5.04443 0.0297942ZM8 12.5014C9.93994 12.5014 11.8501 11.6426 13 11.0028V6.65907C11.1445 7.37782 9.00928 7.00721 8.00146 5.34229H7.99854C6.99072 7.00721 4.85547 7.37782 3 6.65907V11.0028C4.1499 11.6426 6.06006 12.5014 8 12.5014ZM5 5.49879C6.64062 5.49879 7 4.20582 7 3.01832C7 1.91517 6.8125 1.50392 5.53125 1.50392C3.31396 1.50392 3.04688 2.25282 3.04688 4.00282C3.04688 5.10597 3.35938 5.49879 5 5.49879ZM11 5.49879C9.35938 5.49879 9 4.20582 9 3.01832C9 1.91517 9.1875 1.50392 10.4688 1.50392C12.686 1.50392 12.9531 2.25282 12.9531 4.00282C12.9531 5.10597 12.6406 5.49879 11 5.49879Z"></path>
</svg> Copilot</div>
</div>
</div>
<div class="position-absolute width-full z-1 text-center bottom-0 left-0 mb-n6 f5-mktg js-type-row"><button type="button" data-view-component="true" class="js-type-restart btn-link color-fg-default no-underline"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sync mr-2">
<path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path>
</svg>Replay</button></div>
</div>
<div role="tabpanel" aria-labelledby="fetch_tweets-ts" hidden="hidden" class="code-editor-component position-relative text-mono color-bg-default rounded-bottom-3 f4 p-3 js-type-in">
<div class="d-flex">
<div class="color-fg-subtle text-right user-select-none">
<div class="pr-2">1</div>
<div class="pr-2">2</div>
<div class="pr-2">3</div>
<div class="pr-2">4</div>
<div class="pr-2">5</div>
<div class="pr-2">6</div>
<div class="pr-2">7</div>
<div class="pr-2">8</div>
<div class="pr-2">9</div>
<div class="pr-2">10</div>
<div class="pr-2">11</div>
<div class="pr-2">12</div>
<div class="pr-2">13</div>
<div class="pr-2">14</div>
<div class="pr-2">15</div>
<div class="pr-2">16</div>
<div class="pr-2">17</div>
<div class="pr-2">18</div>
<div class="pr-2">19</div>
<div class="pr-2">20</div>
<div class="pr-2">21</div>
<div class="pr-2">22</div>
</div>
<div class="flex-1 overflow-x-auto">
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"><span class="pl-k">const</span> <span class="pl-s1">token</span> <span class="pl-c1">=</span> <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">[</span><span class="pl-s">"TWITTER_BEARER_TOKEN"</span><span class="pl-kos">]</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-letters"><span class="pl-k">const</span> <span class="pl-en">fetchTweetsFromUser</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">userName</span>: <span class="pl-smi">string</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">const</span> <span class="pl-s1">url</span> <span class="pl-c1">=</span> <span class="pl-s">`https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">userName</span><span class="pl-kos">}</span></span>&amp;count=20`</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-en">fetch</span><span class="pl-kos">(</span><span class="pl-s1">url</span><span class="pl-kos">,</span> <span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">headers</span>: <span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s">"Authorization"</span>: <span class="pl-s">`Bearer <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">token</span><span class="pl-kos">}</span></span>`</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">}</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">}</span><span class="pl-kos">)</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-s1">res</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">res</span><span class="pl-kos">.</span><span class="pl-en">json</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-s1">tweets</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">tweets</span><span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-s1">tweet</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">id</span>: <span class="pl-s1">tweet</span><span class="pl-kos">.</span><span class="pl-c1">id</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">text</span>: <span class="pl-s1">tweet</span><span class="pl-kos">.</span><span class="pl-c1">text</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">created_at</span>: <span class="pl-s1">tweet</span><span class="pl-kos">.</span><span class="pl-c1">created_at</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">user</span>: <span class="pl-kos">{</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">id</span>: <span class="pl-s1">tweet</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">id</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">name</span>: <span class="pl-s1">tweet</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">name</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">screen_name</span>: <span class="pl-s1">tweet</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">screen_name</span><span class="pl-kos">,</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-c1">profile_image_url</span>: <span class="pl-s1">tweet</span><span class="pl-kos">.</span><span class="pl-c1">user</span><span class="pl-kos">.</span><span class="pl-c1">profile_image_url</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">}</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">)</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent pl-kos" data-type-row-delay="0">}</span></pre>
<div class="copilot-marker position-absolute color-fg-on-emphasis color-bg-accent-emphasis p-2 rounded text-bold d-flex flex-items-center f5 js-type-row"><svg width="16" height="15" viewbox="0 0 16 15" fill="currentColor" aria-hidden="true" class="mr-1">
<path d="M5.5 8.75282C5.5 8.33863 5.83569 8.00282 6.25 8.00282C6.66415 8.00282 7 8.33861 7 8.75282V10.2489C7 10.6631 6.66431 10.9989 6.25 10.9989C5.83569 10.9989 5.5 10.6631 5.5 10.2489V8.75282Z"></path>
<path d="M10.5 8.75282C10.5 8.33863 10.1643 8.00282 9.75 8.00282C9.33551 8.00282 9 8.33881 9 8.75282V10.2489C9 10.6631 9.33569 10.9989 9.75 10.9989C10.1643 10.9989 10.5 10.6631 10.5 10.2489V8.75282Z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04443 0.0297942C6.05371 -0.0606599 7.3667 0.00708908 8 0.919809C8.6333 0.00708908 9.94629 -0.0606599 10.9556 0.0297942C12.1118 0.145761 13.0854 0.543222 13.6328 1.12708C14.5825 2.1648 14.6267 4.34144 14.1685 5.5398C14.2146 5.74464 14.2585 5.95216 14.29 6.17176C15.1366 6.39482 16 7.59408 16 8.45167V10.0717C16 10.5215 15.79 10.9314 15.4199 11.2114C13.3044 12.7835 10.6672 14.0012 8 14.0012C5.33276 14.0012 2.69556 12.7835 0.580078 11.2114C0.209961 10.9314 0 10.5215 0 10.0717V8.45167C0 7.59408 0.863428 6.39482 1.70996 6.17176C1.7416 5.95216 1.7855 5.74461 1.83154 5.5398C1.37329 4.34144 1.41748 2.1648 2.36719 1.12708C2.91455 0.543222 3.88818 0.145761 5.04443 0.0297942ZM8 12.5014C9.93994 12.5014 11.8501 11.6426 13 11.0028V6.65907C11.1445 7.37782 9.00928 7.00721 8.00146 5.34229H7.99854C6.99072 7.00721 4.85547 7.37782 3 6.65907V11.0028C4.1499 11.6426 6.06006 12.5014 8 12.5014ZM5 5.49879C6.64062 5.49879 7 4.20582 7 3.01832C7 1.91517 6.8125 1.50392 5.53125 1.50392C3.31396 1.50392 3.04688 2.25282 3.04688 4.00282C3.04688 5.10597 3.35938 5.49879 5 5.49879ZM11 5.49879C9.35938 5.49879 9 4.20582 9 3.01832C9 1.91517 9.1875 1.50392 10.4688 1.50392C12.686 1.50392 12.9531 2.25282 12.9531 4.00282C12.9531 5.10597 12.6406 5.49879 11 5.49879Z"></path>
</svg> Copilot</div>
</div>
</div>
<div class="position-absolute width-full z-1 text-center bottom-0 left-0 mb-n6 f5-mktg js-type-row"><button type="button" data-view-component="true" class="js-type-restart btn-link color-fg-default no-underline"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sync mr-2">
<path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path>
</svg>Replay</button></div>
</div>
<div role="tabpanel" aria-labelledby="fetch_tweets-go" hidden="hidden" class="code-editor-component position-relative text-mono color-bg-default rounded-bottom-3 f4 p-3 js-type-in">
<div class="d-flex">
<div class="color-fg-subtle text-right user-select-none">
<div class="pr-2">1</div>
<div class="pr-2">2</div>
<div class="pr-2">3</div>
<div class="pr-2">4</div>
<div class="pr-2">5</div>
<div class="pr-2">6</div>
<div class="pr-2">7</div>
<div class="pr-2">8</div>
<div class="pr-2">9</div>
<div class="pr-2">10</div>
<div class="pr-2">11</div>
<div class="pr-2">12</div>
<div class="pr-2">13</div>
<div class="pr-2">14</div>
<div class="pr-2">15</div>
<div class="pr-2">16</div>
<div class="pr-2">17</div>
<div class="pr-2">18</div>
<div class="pr-2">19</div>
<div class="pr-2">20</div>
<div class="pr-2">21</div>
<div class="pr-2">22</div>
<div class="pr-2">23</div>
<div class="pr-2">24</div>
<div class="pr-2">25</div>
<div class="pr-2">26</div>
</div>
<div class="flex-1 overflow-x-auto">
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"><span class="pl-k">package</span> main</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"><span class="pl-k">var</span> <span class="pl-s1">apiKey</span> <span class="pl-c1">=</span> <span class="pl-s1">os</span>.<span class="pl-en">Getenv</span>(<span class="pl-s">"TWITTER_BEARER_TOKEN"</span>)</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"><span class="pl-k">type</span> <span class="pl-smi">Tweet</span> <span class="pl-c1">=</span> <span class="pl-k">struct</span>{ <span class="pl-c1">Text</span> <span class="pl-smi">string</span> }</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block"></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-letters"><span class="pl-k">func</span> <span class="pl-en">fetchTweetsFromUser</span>(<span class="pl-s1">user</span> <span class="pl-smi">string</span>) ([]<span class="pl-smi">Tweet</span>, <span class="pl-smi">error</span>) {</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">url</span> <span class="pl-c1">:=</span> <span class="pl-s">"https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name="</span> <span class="pl-c1">+</span> <span class="pl-s1">user</span> <span class="pl-c1">+</span> <span class="pl-s">"&amp;count=200"</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">req</span>, <span class="pl-s1">err</span> <span class="pl-c1">:=</span> <span class="pl-s1">http</span>.<span class="pl-en">NewRequest</span>(<span class="pl-s">"GET"</span>, <span class="pl-s1">url</span>, <span class="pl-c1">nil</span>)</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">if</span> <span class="pl-s1">err</span> <span class="pl-c1">!=</span> <span class="pl-c1">nil</span> {</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-c1">nil</span>, <span class="pl-s1">err</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> }</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">req</span>.<span class="pl-c1">Header</span>.<span class="pl-en">Set</span>(<span class="pl-s">"Authorization"</span>, <span class="pl-s">"Bearer "</span><span class="pl-c1">+</span><span class="pl-s1">apiKey</span>)</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-s1">resp</span>, <span class="pl-s1">err</span> <span class="pl-c1">:=</span> <span class="pl-s1">http</span>.<span class="pl-c1">DefaultClient</span>.<span class="pl-en">Do</span>(<span class="pl-s1">req</span>)</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">if</span> <span class="pl-s1">err</span> <span class="pl-c1">!=</span> <span class="pl-c1">nil</span> {</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-c1">nil</span>, <span class="pl-s1">err</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> }</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">defer</span> <span class="pl-s1">resp</span>.<span class="pl-c1">Body</span>.<span class="pl-en">Close</span>()</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">if</span> <span class="pl-s1">resp</span>.<span class="pl-c1">StatusCode</span> <span class="pl-c1">!=</span> <span class="pl-c1">200</span> {</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-c1">nil</span>, <span class="pl-s1">fmt</span>.<span class="pl-en">Errorf</span>(<span class="pl-s">"bad status: %d"</span>, <span class="pl-s1">resp</span>.<span class="pl-c1">StatusCode</span>)</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> }</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">var</span> <span class="pl-s1">tweets</span> []<span class="pl-smi">Tweet</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">if</span> <span class="pl-s1">err</span> <span class="pl-c1">:=</span> <span class="pl-s1">json</span>.<span class="pl-en">NewDecoder</span>(<span class="pl-s1">resp</span>.<span class="pl-c1">Body</span>).<span class="pl-en">Decode</span>(<span class="pl-c1">&</span><span class="pl-s1">tweets</span>); <span class="pl-s1">err</span> <span class="pl-c1">!=</span> <span class="pl-c1">nil</span> {</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-c1">nil</span>, <span class="pl-s1">err</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> }</span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0"> <span class="pl-k">return</span> <span class="pl-s1">tweets</span>, <span class="pl-c1">nil</span></span></pre>
<pre class="f4"><span class="code-editor-line-mktg d-inline-block js-type-row code-editor-line-suggested-mktg color-bg-accent" data-type-row-delay="0">}</span></pre>
<div class="copilot-marker position-absolute color-fg-on-emphasis color-bg-accent-emphasis p-2 rounded text-bold d-flex flex-items-center f5 js-type-row"><svg width="16" height="15" viewbox="0 0 16 15" fill="currentColor" aria-hidden="true" class="mr-1">
<path d="M5.5 8.75282C5.5 8.33863 5.83569 8.00282 6.25 8.00282C6.66415 8.00282 7 8.33861 7 8.75282V10.2489C7 10.6631 6.66431 10.9989 6.25 10.9989C5.83569 10.9989 5.5 10.6631 5.5 10.2489V8.75282Z"></path>
<path d="M10.5 8.75282C10.5 8.33863 10.1643 8.00282 9.75 8.00282C9.33551 8.00282 9 8.33881 9 8.75282V10.2489C9 10.6631 9.33569 10.9989 9.75 10.9989C10.1643 10.9989 10.5 10.6631 10.5 10.2489V8.75282Z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.04443 0.0297942C6.05371 -0.0606599 7.3667 0.00708908 8 0.919809C8.6333 0.00708908 9.94629 -0.0606599 10.9556 0.0297942C12.1118 0.145761 13.0854 0.543222 13.6328 1.12708C14.5825 2.1648 14.6267 4.34144 14.1685 5.5398C14.2146 5.74464 14.2585 5.95216 14.29 6.17176C15.1366 6.39482 16 7.59408 16 8.45167V10.0717C16 10.5215 15.79 10.9314 15.4199 11.2114C13.3044 12.7835 10.6672 14.0012 8 14.0012C5.33276 14.0012 2.69556 12.7835 0.580078 11.2114C0.209961 10.9314 0 10.5215 0 10.0717V8.45167C0 7.59408 0.863428 6.39482 1.70996 6.17176C1.7416 5.95216 1.7855 5.74461 1.83154 5.5398C1.37329 4.34144 1.41748 2.1648 2.36719 1.12708C2.91455 0.543222 3.88818 0.145761 5.04443 0.0297942ZM8 12.5014C9.93994 12.5014 11.8501 11.6426 13 11.0028V6.65907C11.1445 7.37782 9.00928 7.00721 8.00146 5.34229H7.99854C6.99072 7.00721 4.85547 7.37782 3 6.65907V11.0028C4.1499 11.6426 6.06006 12.5014 8 12.5014ZM5 5.49879C6.64062 5.49879 7 4.20582 7 3.01832C7 1.91517 6.8125 1.50392 5.53125 1.50392C3.31396 1.50392 3.04688 2.25282 3.04688 4.00282C3.04688 5.10597 3.35938 5.49879 5 5.49879ZM11 5.49879C9.35938 5.49879 9 4.20582 9 3.01832C9 1.91517 9.1875 1.50392 10.4688 1.50392C12.686 1.50392 12.9531 2.25282 12.9531 4.00282C12.9531 5.10597 12.6406 5.49879 11 5.49879Z"></path>
</svg> Copilot</div>
</div>
</div>
<div class="position-absolute width-full z-1 text-center bottom-0 left-0 mb-n6 f5-mktg js-type-row"><button type="button" data-view-component="true" class="js-type-restart btn-link color-fg-default no-underline"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sync mr-2">
<path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path>
</svg>Replay</button></div>
</div>
</div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/copilot-grid.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/copilot-grid.png" alt="" class="width-full height-auto position-absolute bottom-0 left-0 events-none z-n1" loading="lazy" /></picture></div>
</div>
<div class="overflow-hidden">
<div class="overflow-hidden js-section container-xl p-responsive pb-8 pb-md-9" id="home-automate">
<div class="home-git-log-center pt-10 pt-md-11 pb-8 pb-md-9">
<div class="col-8-max mx-0 mx-lg-auto text-left text-lg-center mb-4 mb-md-7 color-bg-default pb-3">
<h2 class="h2-mktg mb-3">Automate anything with <span class="text-gradient-purple-coral no-wrap">GitHub Actions</span></h2>
<a class="link-mktg text-semibold color-fg-default py-1 f3-mktg link-emphasis-mktg" href="/features/actions" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn more about GitHub Actions&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Learn more about GitHub Actions;ref_loc:automate launchpad&quot;}">Learn more about GitHub Actions <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="river-mktg js-build-in-trigger d-flex flex-column gutter gutter-spacious flex-md-items-center my-3 my-sm-7 my-md-8 position-relative flex-md-row-reverse pb-4 pb-md-7" data-build-in-stagger="100">
<div class="col-12 py-3 js-build-in-item col-sm-10 col-md-6 text-left col-lg-5 build-in-slideX-left pl-md-4 f2-mktg text-semibold color-fg-muted"><em>Set up CI/CD, enhance your DevOps, and script your entire workflow with GitHub Actions.</em> Kick off automated workflows with GitHub events like push, issue creation, merge, and release.</div>
<div class="col-12 py-3 col-md-6 col-lg-7 position-relative js-build-in-item build-in-scale-up color-bg-default rounded-2 box-shadow-active-border-mktg position-relative overflow-hidden c43"><img src="https://github.githubassets.com/images/modules/site/home/actions-autocomplete.png" class="width-full" alt="GitHub Actions web editor editing workflow file showcasing autocomplete" loading="lazy" /> <video loop="" muted="" playsinline="" preload="none" class="width-full looping-mktg js-viewport-aware-video" data-threshold="0" poster="https://github.githubassets.com/images/modules/site/home/actions-autocomplete-poster.png"><source type="video/mp4; codecs=hevc,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/actions-autocomplete.hevc.mp4" /> <source type="video/mp4; codecs=avc1.4D401E,mp4a.40.2" src="https://github.githubassets.com/images/modules/site/home/actions-autocomplete.h264.mp4" /></video></div>
</div>
<div class="river-mktg js-build-in-trigger d-flex flex-column gutter gutter-spacious flex-md-items-center my-3 my-sm-7 my-md-8 position-relative flex-md-row pb-4 pb-md-7" data-build-in-stagger="100">
<div class="col-12 py-3 js-build-in-item col-sm-10 col-md-6 text-left col-lg-5 build-in-slideX-right pr-md-4 mb-3">
<h4 class="h3-mktg mb-3 lh-condensed-ultra text-gradient-purple-coral">11,000+<br />
Actions</h4>
<h3 class="f2-mktg color-fg-muted text-semibold mb-4 col-5-max">Write your own, or import Actions from the open source community, all within our world-class editor. Feeling stuck? Browse the Actions developer docs as you code.</h3>
<a class="link-mktg text-semibold color-fg-default py-1 f4-mktg link-emphasis-mktg" href="/marketplace/actions" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to Actions Marketplace&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Explore the Actions Marketplace;ref_loc:automate launchpad&quot;}">Explore the Actions Marketplace <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="col-12 py-3 col-md-6 col-lg-7 position-relative js-build-in-item home-workflow-comp position-relative rounded-2 box-shadow-active-border-mktg overflow-hidden">
<div class="home-workflow-sidebar height-full position-absolute top-0 right-0 bottom-0 border-left c45">
<div class="position-absolute right-0 bottom-0 left-0 z-1 overflow-hidden c44"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/actions-editor-actions.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/actions-editor-actions.png" class="home-workflow-actions width-full" alt="The Actions Marketplace is available inline alongside the GitHub Actions workflow editor" loading="lazy" decoding="async" /></picture></div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/actions-editor-sidebar.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/actions-editor-sidebar.png" class="height-full" alt="The Actions Marketplace is available inline alongside the GitHub Actions workflow editor" loading="lazy" decoding="async" /></picture></div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/actions-editor.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/actions-editor.png" class="width-full height-auto" alt="The GitHub Actions workflow editor" width="706" height="452" loading="lazy" decoding="async" /></picture></div>
</div>
<div class="d-flex flex-column gutter gutter-spacious flex-lg-items-center my-7 my-md-8 pb-7">
<div class="col-6-max text-left text-lg-center mx-lg-auto pt-3 pb-5 pb-md-6 color-bg-default">
<h3 class="f2-mktg color-fg-muted text-semibold mb-5">You can have it all. <span class="color-fg-default">Run actions in any language or operating system, on Linux, macOS, Windows, ARM, and containers. Or all at once with matrix builds.</span></h3>
<ul class="list-style-none d-flex flex-items-center flex-justify-start flex-lg-justify-center">
<li class="mr-1 px-1"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-linux.svg" alt="Linux" loading="lazy" /></li>
<li class="mr-1 px-1"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-apple.svg" alt="macOS" loading="lazy" /></li>
<li class="mr-1 px-1"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-windows.svg" alt="Windows" loading="lazy" /></li>
<li class="px-1"><img src="https://github.githubassets.com/images/modules/site/home/logos/platform-arm.svg" alt="ARM" loading="lazy" /></li>
</ul>
</div>
<div class="col-12 col-lg-7 mx-lg-auto position-relative z-2 c50">
<div class="js-build-in home-matrix-comp d-flex position-absolute top-6 top-lg-3 bottom-0 flex-items-center home-matrix-string d-flex gutter-condensed flex-items-start flex-justify-center mx-3 mx-lg-0 width-full position-relative" data-build-margin-top="0" data-build-margin-bottom="0">
<div class="d-none d-lg-block col-4 flex-auto home-matrix-build mt-3 float-right color-bg-default width-full rounded-2 position-relative box-shadow-card-border-mktg">
<div class="home-matrix-connector home-matrix-connector--right home-matrix-connector-bg"></div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/matrix-workflow-build.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-build.png" class="width-full" alt="Actions build workflow" loading="lazy" /></picture></div>
<div class="col-6 col-lg-4 flex-auto home-matrix-test mx-auto color-bg-default width-full rounded-2 position-relative z-1 c47">
<div class="home-matrix-tab-container position-absolute c46"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/matrix-workflow-test-tab.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-test-tab.png" class="width-full position-relative z-1" alt="Actions build workflow" loading="lazy" /></picture>
<div class="home-matrix-tab position-absolute top-0 overflow-hidden width-full"></div>
</div>
<div class="home-matrix-connector d-none d-lg-block home-matrix-connector-bg"></div>
<div class="home-matrix-connector home-matrix-connector--right home-matrix-connector-bg"></div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/matrix-workflow-test.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-test.png" class="width-full" alt="Actions build workflow" loading="lazy" /></picture></div>
<div class="col-6 col-lg-4 flex-auto home-matrix-publish float-lg-left mx-auto color-bg-default width-full rounded-2 position-relative box-shadow-card-border-mktg c47">
<div class="home-matrix-tab-container position-absolute c48"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/matrix-workflow-publish-tab.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-publish-tab.png" class="width-full position-relative z-1" alt="Actions build workflow" loading="lazy" /></picture>
<div class="home-matrix-tab position-absolute top-0 overflow-hidden width-full"></div>
</div>
<div class="home-matrix-connector home-matrix-connector-bg"></div>
<div class="position-absolute d-flex flex-column flex-justify-around c49"><img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-spinner.svg" class="home-matrix-spinner-1" loading="lazy" alt="" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-spinner.svg" class="home-matrix-spinner-2" loading="lazy" alt="" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-spinner.svg" class="home-matrix-spinner-3" loading="lazy" alt="" /></div>
<div class="position-absolute d-flex flex-column flex-justify-around c49"><img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-success.svg" class="home-matrix-success-1" loading="lazy" alt="" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-success.svg" class="home-matrix-success-2" loading="lazy" alt="" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-success.svg" class="home-matrix-success-3" loading="lazy" alt="" /></div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/matrix-workflow-publish.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-publish.png" class="width-full" alt="Actions publish workflow" loading="lazy" /></picture></div>
</div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/matrix-workflow-canvas.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/matrix-workflow-canvas.png" class="width-full height-auto rounded-2 box-shadow-default-border-mktg" alt="Actions workflow canvas" loading="lazy" decoding="async" width="1412" height="844" /></picture></div>
<div class="col-6-max text-left text-lg-center mx-lg-auto d-flex flex-sm-row-reverse flex-lg-column flex-items-center mt-5 mt-lg-0">
<div class="d-none d-sm-block flex-shrink-0 color-bg-default circle position-relative mt-lg-n7 mx-auto js-build-in c51" data-build-margin-top="0" data-build-margin-bottom="0">
<div class="position-absolute text-left top-0 right-0 bottom-0 left-0 home-actions-success circle z-1"><img src="https://github.githubassets.com/images/modules/site/home/icons/actions-check.svg" class="home-actions-success-check" alt="Large representation of the indicator that a workflow is successfully completed" loading="lazy" /></div>
<img src="https://github.githubassets.com/images/modules/site/home/actions-spinner.svg" class="width-full home-actions-spinner" alt="Large representation of the indicator that a workflow is running" loading="lazy" /></div>
<h3 class="col-5-max f2-mktg color-fg-muted text-semibold color-bg-default pt-lg-4 pr-4 pr-lg-0 pb-lg-3"><span class="color-fg-default">With 70 million jobs run per month you’re in good company with Actions, the number one CI service on the world’s largest developer platform.</span></h3>
</div>
</div>
</div>
<div class="js-build-in-trigger d-flex flex-column flex-lg-row-reverse gutter flex-lg-justify-end flex-lg-items-center pt-5 pb-8 pb-md-9">
<div class="col-12 col-lg-5 mb-4 mb-5 mb-md-6">
<h3 class="js-build-in-item build-in-slideX-left f2-mktg color-fg-muted text-semibold mb-4 col-5-max">Speaking of automation, <span class="color-fg-default">Dependabot keeps your projects up to date</span> with automated pull requests that update all your dependencies. Just review and merge to keep your software secure.</h3>
<a class="link-mktg text-semibold color-fg-default py-1 f4-mktg link-emphasis-mktg" href="https://docs.github.com/github/managing-security-vulnerabilities/configuring-dependabot-security-updates" data-analytics-event="{&quot;category&quot;:&quot;Homepage Automation section&quot;,&quot;action&quot;:&quot;click&quot;,&quot;label&quot;:&quot;text:Learn more about Dependabot;ref_loc:automate launchpad;&quot;}">Learn more about Dependabot <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="col-12 col-lg-7 js-build-in-item home-dependabot-comp position-relative"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/dependabot-pr.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/dependabot-pr.png" class="width-full home-dependabot-pr rounded-2 box-shadow-active-border-mktg" alt="Automated pull request that updates a dependency in your repository" loading="lazy" /></picture>
<div class="home-dependabot-merge mx-4 position-absolute right-0 bottom-0 left-0 rounded-2 box-shadow-default-border-mktg z-n1"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/dependabot-merge.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/dependabot-merge.png" class="opacity-4 width-full" alt="Merge pull request on GitHub" loading="lazy" /></picture></div>
</div>
</div>
</div>
<div class="position-relative z-1 mx-auto box-shadow-default-mktg wide-block overflow-hidden js-section container-xl p-responsive d-flex flex-column gutter gutter-spacious position-relative home-git-log-dark col-12 offset-md-1 pt-10 d-flex flex-column gutter gutter-spacious c53" id="home-secure" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark">
<div class="home-branch-container position-relative f6 text-mono text-gray-light-mktg z-1">
<div class="d-flex flex-items-center c52"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="20" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon flex-shrink-0 mr-3 d-none d-md-block">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg></div>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" preserveaspectratio="none" viewbox="0 0 110 142" aria-hidden="true" class="d-none d-md-block position-relative home-branch offset-n1">
<path d="m1-8c0 75 108 75 108 150" stroke-width="2" vector-effect="non-scaling-stroke"></path>
</svg></div>
<div class="home-git-log-dark col-11 offset-1 pb-5 pb-md-6 col-12 col-md-10">
<div class="mb-5 mb-md-6 mt-n3 d-flex flex-items-center position-relative z-1"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="20" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg></div>
<h2 class="h2-mktg color-fg-default mt-n8 mt-md-n9 mb-3">Find and fix vulnerabilities<br />
<span class="text-gradient-coral-yellow-dark pb-1">before you merge</span></h2>
<a class="link-mktg text-semibold color-fg-default py-1 f3-mktg link-emphasis-mktg" href="/features/security" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn more about advanced security&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Learn more about advanced security;ref_loc:secure launchpad&quot;}">Learn more about advanced security <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="col-12 offset-1">
<ul class="home-git-log-dark d-flex gutter gutter-spacious flex-column list-style-none">
<li class="col-11 col-sm-10 col-lg-12">
<div class="js-build-in-trigger d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious py-5 py-md-6">
<div class="col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="js-build-in-item build-in-slideX-left f2-mktg text-gray-light-mktg text-semibold mb-5 mb-lg-0 col-5-max"><span class="color-fg-default">Secure your code as you write it.</span> CodeQL’s code scanning automatically reviews every change to your codebase and identifies known vulnerabilities before they ever reach production.</h3>
</div>
<div class="col-12 col-lg-5 js-build-in-item home-codeql-comp position-relative pt-8 pt-md-9">
<div class="home-codeql-step-3 rounded-2 position-absolute box-shadow-active-border-light-mktg"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/codeql-step-3.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/codeql-step-3.png" alt="Step 3" class="width-full" loading="lazy" /></picture></div>
<div class="home-codeql-step-2 rounded-2 position-absolute box-shadow-active-border-light-mktg"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/codeql-step-2.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/codeql-step-2.png" alt="Step 2" class="width-full" loading="lazy" /></picture></div>
<div class="home-codeql-step-1 rounded-2 position-relative z-1"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/codeql-step-1.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/codeql-step-1.png" alt="Step 1" class="width-full" loading="lazy" /></picture></div>
<picture><source srcset="https://github.githubassets.com/images/modules/site/home/codeql-description.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/codeql-description.png" alt="Code injection alert" class="home-codeql-description width-full" loading="lazy" decoding="async" /></picture></div>
</div>
</li>
<li class="col-12 d-flex flex-items-center position-relative f6 text-mono text-gray-light-mktg py-2" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="29" width="28" class="home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m0 0h28v29h-28z" fill="#041027"></path>
<g fill="#ffd33d">
<path d="m15 19.5a1 1 0 1 1 -2 0 1 1 0 0 1 2 0zm-.25-8.25a.75.75 0 0 0 -1.5 0v4.5a.75.75 0 0 0 1.5 0z"></path>
<path clip-rule="evenodd" d="m11.836 5.244c.963-1.665 3.366-1.665 4.329 0l8.966 15.504c.964 1.667-.239 3.752-2.164 3.752h-17.933c-1.925 0-3.128-2.085-2.164-3.752zm3.03.751a1 1 0 0 0 -1.731 0l-8.967 15.504a1 1 0 0 0 .866 1.501h17.933a1 1 0 0 0 .865-1.5l-8.966-15.506z" fill-rule="evenodd"></path>
</g>
</svg> <span class="text-truncate color-fg-attention unselectable">Vulnerabilities found</span></li>
<li class="col-12 d-flex flex-items-center position-relative f6 text-mono text-gray-light-mktg py-2 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="22" width="28" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m2.5 10a1 1 0 1 0 0 2zm23 2a1 1 0 1 0 0-2zm-23 0h23v-2h-23z" fill="#465061"></path>
<circle cx="14" cy="11" fill="#041027" r="5" stroke="#465061" stroke-width="2"></circle>
</svg> <img src="https://avatars.githubusercontent.com/jasonetco?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 opacity-4 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@jasonetco" loading="lazy" /> <span class="opacity-4 text-truncate">Fixed deserialized data security vulnerability</span></li>
<li class="col-11 col-sm-10 col-lg-12">
<div class="js-build-in-trigger d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious py-7 py-md-8">
<div class="col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="js-build-in-item build-in-slideX-left f2-mktg text-gray-light-mktg text-semibold mb-5 mb-lg-0 col-5-max"><span class="color-fg-default">Keep your secrets.</span> We automatically scan repositories for OAuth tokens, API keys, personal tokens, and more. If we find one, we’ll notify you and the partner that issued it to invalidate the secret.</h3>
</div>
<div class="col-12 col-lg-5 js-build-in-item home-secret-comp"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/secret-alert.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/secret-alert.png" class="width-full rounded-2 home-secret-alert position-relative z-1" alt="An alert of found secret committed to the repository" loading="lazy" /></picture> <picture><source srcset="https://github.githubassets.com/images/modules/site/home/secret-list.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/secret-list.png" class="width-full home-secret-list" alt="List of exposed secrets found in the repository" loading="lazy" /></picture></div>
</div>
</li>
<li class="col-12 d-flex flex-items-center position-relative f6 text-mono text-gray-light-mktg py-2" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="29" width="28" class="home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m0 0h28v29h-28z" fill="#041027"></path>
<g fill="#ffd33d">
<path d="m15 19.5a1 1 0 1 1 -2 0 1 1 0 0 1 2 0zm-.25-8.25a.75.75 0 0 0 -1.5 0v4.5a.75.75 0 0 0 1.5 0z"></path>
<path clip-rule="evenodd" d="m11.836 5.244c.963-1.665 3.366-1.665 4.329 0l8.966 15.504c.964 1.667-.239 3.752-2.164 3.752h-17.933c-1.925 0-3.128-2.085-2.164-3.752zm3.03.751a1 1 0 0 0 -1.731 0l-8.967 15.504a1 1 0 0 0 .866 1.501h17.933a1 1 0 0 0 .865-1.5l-8.966-15.506z" fill-rule="evenodd"></path>
</g>
</svg> <span class="text-truncate color-fg-attention unselectable">OAuth token found</span></li>
<li class="col-12 d-flex flex-items-center position-relative f6 text-mono text-gray-light-mktg pt-2 unselectable" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="22" width="28" class="home-git-icon home-git-item flex-shrink-0 mr-3 position-relative z-1">
<path d="m2.5 10a1 1 0 1 0 0 2zm23 2a1 1 0 1 0 0-2zm-23 0h23v-2h-23z" fill="#465061"></path>
<circle cx="14" cy="11" fill="#041027" r="5" stroke="#465061" stroke-width="2"></circle>
</svg> <img src="https://avatars.githubusercontent.com/jasonetco?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 opacity-4 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@jasonetco" loading="lazy" /> <span class="opacity-4 text-truncate">Replaced OAuth token with a key vault value</span></li>
</ul>
</div>
<div class="home-branch-container position-relative f6 text-mono text-gray-light-mktg z-1"><svg xmlns="http://www.w3.org/2000/svg" fill="none" preserveaspectratio="none" viewbox="0 0 110 142" aria-hidden="true" class="d-none d-md-block position-relative home-branch offset-n1 c25">
<path d="m1-8c0 75 108 75 108 150" stroke-width="2" vector-effect="non-scaling-stroke"></path>
</svg>
<div class="d-flex flex-items-center c52"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="20" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon flex-shrink-0 mr-3 d-none d-md-block">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg></div>
</div>
<div class="offset-1 col-11 col-sm-10 col-lg-12 home-git-log-dark home-security-point-3 d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious pt-8 pt-md-0 mb-n12 mb-md-0 col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left d-block d-md-none mr-n6 position-relative z-2">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="js-build-in build-in-slideX-left f2-mktg text-gray-light-mktg text-semibold mt-md-n5 mb-5 mb-md-n11 col-5-max"><span class="color-fg-default">Found a vulnerability?</span> Our security advisory remediation tools help developers identify and disclose them responsibly so maintainers can patch them in dedicated, private workspaces.</h3>
</div>
<div class="col-12 offset-1 ml-md-0 events-none"><img src="https://github.githubassets.com/images/modules/site/home/security-alert-fan.svg" class="home-security-alert-fan mb-7 mb-md-8 position-relative z-1 unselectable" alt="Distributed security alerts" loading="lazy" decoding="async" /></div>
</div>
<div class="container-xl p-responsive mx-auto js-section d-flex flex-column gutter gutter-spacious position-relative col-12 d-flex flex-column gutter gutter-spacious" id="home-community">
<div class="home-git-log-light col-10 offset-1 pt-10 pt-md-11 pb-lg-6 col-5-max">
<h2 class="h2-mktg overflow-visible">The home for all developers — <span class="text-gradient-blue-purple">including you</span></h2>
</div>
<div class="col-12 offset-1 position-relative">
<ul class="home-git-log-light d-flex gutter gutter-spacious flex-column list-style-none pb-md-12 mb-12">
<li class="col-11 col-sm-10 col-lg-12">
<div class="js-build-in-trigger d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious pb-9 pb-md-10 mt-6 mt-lg-n6">
<div class="col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="24" viewbox="0 0 28 24" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<path clip-rule="evenodd" d="m7.5 6.75c0-.0663.02634-.12989.07322-.17678.04689-.04688.11048-.07322.17678-.07322h8.5c.0663 0 .1299.02634.1768.07322.0469.04689.0732.11048.0732.17678v5.5c0 .0663-.0263.1299-.0732.1768s-.1105.0732-.1768.0732h-3.5c-.1989.0002-.3895.0793-.53.22l-2.72 2.72v-2.19c0-.1989-.07902-.3897-.21967-.5303-.14065-.1407-.33142-.2197-.53033-.2197h-1c-.0663 0-.12989-.0263-.17678-.0732-.04688-.0469-.07322-.1105-.07322-.1768zm.25-1.75c-.46413 0-.90925.18437-1.23744.51256s-.51256.77331-.51256 1.23744v5.5c0 .966.784 1.75 1.75 1.75h.25v1.543c.0001.2881.08561.5697.24571.8092s.38762.4262.65379.5364.55904.1391.84161.0829c.28259-.0562.54209-.1948.74589-.3985l2.574-2.573h3.189c.4641 0 .9092-.1844 1.2374-.5126.3282-.3281.5126-.7733.5126-1.2374v-5.5c0-.46413-.1844-.90925-.5126-1.23744s-.7733-.51256-1.2374-.51256zm12.75 3.75c0-.0663-.0263-.12989-.0732-.17678-.0469-.04688-.1105-.07322-.1768-.07322h-.5c-.1989 0-.3897-.07902-.5303-.21967-.1407-.14065-.2197-.33142-.2197-.53033s.079-.38968.2197-.53033c.1406-.14065.3314-.21967.5303-.21967h.5c.966 0 1.75.784 1.75 1.75v5.5c0 .4641-.1844.9092-.5126 1.2374s-.7733.5126-1.2374.5126h-.25v1.543c-.0001.2881-.0856.5697-.2457.8092s-.3876.4262-.6538.5364-.559.1391-.8416.0829-.5421-.1948-.7459-.3985l-2.293-2.293c-.0737-.0687-.1328-.1515-.1738-.2435s-.063-.1913-.0648-.292.0168-.2007.0545-.2941.0938-.1782.1651-.2494c.0712-.0713.156-.1274.2494-.1651s.1934-.0563.2941-.0545.2.0238.292.0648.1748.1001.2435.1738l2.22 2.22v-2.19c0-.1989.079-.3897.2197-.5303.1406-.1407.3314-.2197.5303-.2197h1c.0663 0 .1299-.0263.1768-.0732s.0732-.1105.0732-.1768z" fill="#dadfe9" fill-rule="evenodd"></path>
</svg>
<h3 class="js-build-in-item build-in-slideX-left f2-mktg color-fg-muted text-semibold mb-4 col-5-max"><span class="color-fg-default">GitHub Discussions is dedicated space for your community to come together, ask and answer questions, and have open-ended conversations.</span></h3>
<a class="link-mktg text-semibold color-fg-default py-1 f3-mktg link-emphasis-mktg" href="/features/discussions" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn how to get started with Discussions&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Learn how to get started with Discussions;ref_loc:community launchpad&quot;}">Learn how to get started with Discussions <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="col-12 col-lg-5 offset-lg-1 js-build-in-item home-discussions-comp position-relative">
<div class="rounded-2 box-shadow-default-border-mktg position-relative z-1 overflow-hidden home-discussions-1"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/community-discussions-1.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/community-discussions-1.png" class="opacity-4 width-full height-auto" alt="Technical question from the Gatsby community" loading="lazy" width="808" height="480" /></picture></div>
<div class="rounded-2 box-shadow-active-mktg position-relative z-1 float-right home-discussions-2"><img src="https://github.githubassets.com/images/modules/site/home/discussions-answered-check.svg" class="home-discussions-check-0 js-build-in-item position-absolute z-1" alt="Answered checkmark" loading="lazy" /> <img src="https://github.githubassets.com/images/modules/site/home/discussions-check.svg" class="home-discussions-check-1 js-build-in-item position-absolute z-1" alt="Floating checkmark" loading="lazy" /> <img src="https://github.githubassets.com/images/modules/site/home/discussions-check.svg" class="home-discussions-check-2 js-build-in-item position-absolute z-1" alt="Floating checkmark" loading="lazy" /> <img src="https://github.githubassets.com/images/modules/site/home/discussions-check.svg" class="home-discussions-check-3 js-build-in-item position-absolute z-1" alt="Floating checkmark" loading="lazy" />
<div class="rounded-2 float-right home-discussions-answer overflow-hidden"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/community-discussions-2.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/community-discussions-2.png" class="width-full height-auto c54" alt="Answer to the technical question from the Gatsby community" loading="lazy" width="768" height="792" decoding="async" /></picture></div>
</div>
</div>
</div>
</li>
<li class="col-11 col-sm-10 col-lg-12">
<div class="js-build-in-trigger d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious py-9">
<div class="col-12 col-lg-5"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="24" viewbox="0 0 28 24" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<path clip-rule="evenodd" d="m7.5 12c0-1.7239.68482-3.37721 1.90381-4.59619 1.21899-1.21899 2.87229-1.90381 4.59619-1.90381s3.3772.68482 4.5962 1.90381c1.219 1.21898 1.9038 2.87229 1.9038 4.59619s-.6848 3.3772-1.9038 4.5962-2.8723 1.9038-4.5962 1.9038-3.3772-.6848-4.59619-1.9038-1.90381-2.8723-1.90381-4.5962zm6.5-8c-2.1217 0-4.15656.84285-5.65685 2.34315-1.5003 1.50029-2.34315 3.53512-2.34315 5.65685 0 2.1217.84285 4.1566 2.34315 5.6569 1.50029 1.5002 3.53515 2.3431 5.65685 2.3431s4.1566-.8429 5.6569-2.3431c1.5002-1.5003 2.3431-3.5352 2.3431-5.6569 0-2.12173-.8429-4.15656-2.3431-5.65685-1.5003-1.5003-3.5352-2.34315-5.6569-2.34315zm-3 8c.2652 0 .5196-.1054.7071-.2929s.2929-.4419.2929-.7071-.1054-.5196-.2929-.7071-.4419-.2929-.7071-.2929-.5196.1054-.7071.2929-.2929.4419-.2929.7071.1054.5196.2929.7071.4419.2929.7071.2929zm7-1c0 .2652-.1054.5196-.2929.7071s-.4419.2929-.7071.2929-.5196-.1054-.7071-.2929-.2929-.4419-.2929-.7071.1054-.5196.2929-.7071.4419-.2929.7071-.2929.5196.1054.7071.2929.2929.4419.2929.7071zm-6.68 2.636c.1613-.113.3606-.1579.5549-.1252.1942.0327.3677.1406.4831.3002l.007.009c.1028.118.2205.2221.35.31.264.178.683.37 1.285.37s1.02-.192 1.285-.371c.1295-.0879.2472-.192.35-.31l.007-.008c.1154-.1621.2904-.2716.4865-.3046.1962-.033.3975.0132.5595.1286s.2716.2904.3046.4865c.033.1962-.0132.3975-.1286.5595l-.614-.431c.614.43.614.431.613.431v.001l-.001.002-.002.003-.005.007-.014.019c-.0562.0753-.1177.1464-.184.213-.1607.1664-.3383.3155-.53.445-.6298.4184-1.3709.6376-2.127.629-.946 0-1.652-.308-2.126-.63-.2508-.1697-.4772-.3729-.673-.604-.0143-.0174-.0283-.0351-.042-.053l-.014-.02-.005-.006-.002-.003v-.002h-.001l.613-.432-.614.43c-.114-.1628-.1588-.3641-.1245-.5599.0343-.1957.1449-.3698.3075-.4841z" fill="#dadfe9" fill-rule="evenodd"></path>
</svg>
<h3 class="js-build-in-item build-in-slideX-left f2-mktg color-fg-muted text-semibold mb-5 col-5-max"><span class="color-fg-default">Amplify your voice in your own personal README on your profile.</span> Tell the story of your work through your repositories, contributions, and technologies of choice.</h3>
</div>
<div class="col-12 col-lg-5 offset-lg-1 js-build-in-item home-readme-comp">
<div class="rounded-2 box-shadow-default-border-mktg position-relative z-1 overflow-hidden home-readme-1"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/community-readme-1.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/community-readme-1.png" class="width-full height-auto opacity-4" alt="GitHub profile README for @M0nica" loading="lazy" width="766" height="748" /></picture></div>
<div class="rounded-2 box-shadow-active-border-mktg position-relative z-1 overflow-hidden float-right home-readme-2"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/community-readme-2.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/community-readme-2.png" class="width-full height-auto" alt="GitHub profile README for @ethomson" loading="lazy" width="766" height="730" /></picture></div>
</div>
</div>
</li>
<li class="col-12 d-flex flex-items-center position-relative f5-mktg color-fg-subtle py-2 unselectable" aria-hidden="true"><img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" class="home-git-item color-bg-default flex-shrink-0 mr-3 position-relative z-1" height="22" width="28" alt="" loading="lazy" decoding="async" /> <img src="https://avatars.githubusercontent.com/sophshep?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@sophshep" loading="lazy" /> <span class="text-truncate"><strong class="text-semibold color-fg-default">sophshep</strong> started sponsoring you for <strong class="text-semibold color-fg-default">$10/month</strong> <span title="Label: 2x" data-view-component="true" class="Label">2x</span> 3 days ago</span></li>
<li class="col-12 d-flex flex-items-center position-relative f5-mktg color-fg-subtle py-2 unselectable" aria-hidden="true"><img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" class="home-git-item color-bg-default flex-shrink-0 mr-3 position-relative z-1" height="22" width="28" alt="" loading="lazy" decoding="async" /> <img src="https://avatars.githubusercontent.com/joshaber?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@joshaber" loading="lazy" /> <span class="text-truncate"><strong class="text-semibold color-fg-default">joshaber</strong> started sponsoring you for <strong class="text-semibold color-fg-default">$10/month</strong> <span title="Label: 5x" data-view-component="true" class="Label">5x</span> 2 days ago</span></li>
<li class="col-12 d-flex flex-items-center position-relative f5-mktg color-fg-subtle py-2 unselectable" aria-hidden="true"><img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" class="home-git-item color-bg-default flex-shrink-0 mr-3 position-relative z-1" height="22" width="28" alt="" loading="lazy" decoding="async" /> <img src="https://avatars.githubusercontent.com/pmarsceill?s=64&amp;v=4" class="d-none d-sm-block flex-shrink-0 avatar avatar-4 mr-3 circle color-bg-subtle" alt="@pmarsceill" loading="lazy" /> <span class="color-fg-muted text-truncate"><strong class="text-semibold color-fg-default">pmarsceill</strong> started sponsoring you for <strong class="text-semibold color-fg-default">$25/month</strong> 2 days ago</span></li>
<li class="col-11 col-sm-10 col-lg-12 position-relative z-1">
<div class="js-build-in-trigger d-flex flex-column flex-lg-row flex-items-center gutter gutter-spacious py-9 py-md-10">
<div class="js-build-in-item build-in-slideX-left col-12 col-lg-5 mb-6"><svg xmlns="http://www.w3.org/2000/svg" fill="none" height="28" viewbox="0 0 28 20" width="28" aria-hidden="true" class="home-git-icon home-git-item float-left mr-n6 position-relative z-1">
<circle cx="14" cy="10" fill="#fff" r="5" stroke="#d0d6df" stroke-width="2"></circle>
</svg>
<h3 class="f2-mktg color-fg-muted text-semibold mb-5 col-5-max">That open source code you wrote for yourself might just help someone else. <span class="color-fg-default">Get paid for building what matters to you with GitHub Sponsors.</span></h3>
<h4 class="f4-mktg text-semibold color-fg-muted mb-1">Support the projects you depend on, too.</h4>
<h3 class="h5-mktg mb-5 text-gradient-blue-purple">100% to developers, zero fees</h3>
<a class="link-mktg text-semibold color-fg-default py-1 f4-mktg link-emphasis-mktg" href="/sponsors" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to learn more about Sponsors&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Learn more about Sponsors;ref_loc:community launchpad&quot;}">Learn more about Sponsors <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none">
<path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path>
<path class="octicon-chevrow-stem" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path>
</svg></a></div>
<div class="col-12 col-lg-5 offset-lg-1 js-build-in-item home-sponsors-comp">
<div class="rounded-2 box-shadow-default-border-mktg position-relative z-1 home-sponsors-1"><img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" width="72" height="72" class="home-sponsors-heart-1 js-build-in-item position-absolute z-1" alt="Floating heart" loading="lazy" /> <img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" width="72" height="72" class="home-sponsors-heart-2 js-build-in-item position-absolute z-1" alt="Floating heart" loading="lazy" /> <img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" width="72" height="72" class="home-sponsors-heart-3 js-build-in-item position-absolute z-1" alt="Floating heart" loading="lazy" /> <picture><source srcset="https://github.githubassets.com/images/modules/site/home/community-sponsor-1.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/community-sponsor-1.png" class="width-full height-auto opacity-4" alt="GitHub profile card for the Homebrew organization" loading="lazy" width="768" height="484" /></picture></div>
<div class="rounded-2 box-shadow-active-border-mktg position-relative z-1 float-right home-sponsors-2"><img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" width="72" height="72" class="home-sponsors-heart-1 js-build-in-item position-absolute z-1" alt="Floating heart" loading="lazy" /> <img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" width="72" height="72" class="home-sponsors-heart-2 js-build-in-item position-absolute z-1" alt="Floating heart" loading="lazy" /> <img src="https://github.githubassets.com/images/modules/site/home/icons/heart.svg" width="72" height="72" class="home-sponsors-heart-3 js-build-in-item position-absolute z-1" alt="Floating heart" loading="lazy" /> <picture><source srcset="https://github.githubassets.com/images/modules/site/home/community-sponsor-2.webp" type="image/webp" /> <img src="https://github.githubassets.com/images/modules/site/home/community-sponsor-2.png" class="width-full height-auto" alt="GitHub profile card for @prophen" loading="lazy" width="768" height="524" /></picture></div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="bg-gray-dark-mktg pb-11 pb-md-12 position-relative" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><svg xmlns="http://www.w3.org/2000/svg" fill="none" preserveaspectratio="none" viewbox="0 0 1680 40" aria-hidden="true" class="position-absolute top-0 width-full mt-n1 c55">
<path d="M0 40h1680V30S1340 0 840 0 0 30 0 30z" fill="#fff"></path>
</svg>
<div class="container-xl p-responsive"><picture><source srcset="https://github.githubassets.com/images/modules/site/home/footer-illustration.webp" media="(min-width: 700px)" type="image/webp" /> <source srcset="https://github.githubassets.com/images/modules/site/home/footer-illustration-894.webp" type="image/webp" /> <source srcset="https://github.githubassets.com/images/modules/site/home/footer-illustration.svg" media="(min-width: 700px)" type="image/svg" /> <source srcset="https://github.githubassets.com/images/modules/site/home/footer-illustration-894.svg" type="image/svg" /> <img src="https://github.githubassets.com/images/modules/site/home/footer-illustration.svg" alt="Illustration of the evolution of development by octocats" width="2900" height="1494" class="home-footer-illustration height-auto position-relative z-1 width-full d-block events-none" loading="lazy" decoding="async" /></picture>
<div class="d-flex flex-items-center flex-column flex-lg-row gutter gutter-spacious">
<div class="col-12 col-md-10 col-lg-6 mx-auto mx-lg-0 text-center text-lg-left mb-5 mb-md-6">
<h2 class="h1-mktg color-fg-default mb-2 mb-sm-3">Make your contribution</h2>
<p class="f2-mktg text-gray-light-mktg mr-lg-n4 mb-4 text-normal">Small experiments, inspired inventions, and the software everyone depends on—the code you write on GitHub can reach one codebase or millions.</p>
<a class="btn-mktg mr-2 mb-2 width-full width-sm-auto btn-signup-mktg" data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Sign up for GitHub;ref_loc:footer launchpad;&quot;}" href="/signup?ref_cta=Sign+up+for+GitHub&amp;ref_loc=footer+launchpad&amp;ref_page=%2F">Sign up for GitHub</a> <a class="btn-mktg mr-2 mb-2 width-full width-sm-auto btn-muted-mktg" data-analytics-event="{&quot;category&quot;:&quot;Contact Sales&quot;,&quot;action&quot;:&quot;click to Contact Sales&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:Contact Sales;ref_loc:footer launchpad&quot;}" href="https://github.com/enterprise/contact?ref_page=/&amp;ref_cta=Contact%20Sales&amp;ref_loc=footer%20launchpad">Contact Sales</a></div>
<div class="col-12 col-lg-6 offset-lg-n2 offset-n1 ml-lg-0 home-featured-repos position-relative">
<div class="width-full flex-shrink-0 offset-1 offset-lg-3 d-flex flex-justify-center gutter-condensed gutter-lg py-2 py-lg-3">
<div class="col-3"><a href="/tensorflow/tensorflow" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:tensorflow/tensorflow;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/tensorflow?s=64&amp;v=4" alt="Tensorflow" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">tensorflow/<span class="color-fg-default">tensorflow</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">An Open Source Machine Learning Framework for Everyone</p>
</a></div>
<div class="col-3"><a href="gatsbyjs/gatsby" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:gatsbyjs/gatsby;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/gatsbyjs?s=64&amp;v=4" alt="Gatsby" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">gatsbyjs/<span class="color-fg-default">gatsby</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">Build blazing fast, modern apps and websites with React</p>
</a></div>
<div class="col-3"><a href="home-assistant/core" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:home-assistant/core;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/home-assistant?s=64&amp;v=4" alt="Home Assistant" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">home-assistant/<span class="color-fg-default">core</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">🏡 Open source home automation that puts local control and privacy first</p>
</a></div>
</div>
<div class="width-full offset-lg-2 d-flex flex-justify-center gutter-condensed gutter-lg py-2 py-lg-3">
<div class="col-3"><a href="/rust-lang/rust" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:rust-lang/rust;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/rust-lang?s=64&amp;v=4" alt="The Rust Programming Language" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">rust-lang/<span class="color-fg-default">rust</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">Empowering everyone to build reliable and efficient software.</p>
</a></div>
<div class="col-3"><a href="/flutter/flutter" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:flutter/flutter;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/flutter?s=64&amp;v=4" alt="Flutter" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">flutter/<span class="color-fg-default">flutter</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">Flutter makes it easy and fast to build beautiful apps for mobile and beyond.</p>
</a></div>
<div class="col-3"><a href="/kubernetes/kubernetes" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:kubernetes/kubernetes;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/kubernetes?s=64&amp;v=4" alt="Kubernetes" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">kubernetes/<span class="color-fg-default">kubernetes</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">Production-Grade Container Scheduling and Management</p>
</a></div>
</div>
<div class="width-full offset-1 d-flex flex-justify-center gutter-condensed gutter-lg py-2 py-lg-3">
<div class="col-3"><a href="/apple/swift" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:apple/swift;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/apple?s=64&amp;v=4" alt="Kubernetes" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">apple/<span class="color-fg-default">swift</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">The Swift Programming Language</p>
</a></div>
<div class="col-3"><a href="/ansible/ansible" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:ansible/ansible;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/ansible?s=64&amp;v=4" alt="Ansible" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">ansible/<span class="color-fg-default">ansible</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">Ansible is a radically simple IT automation platform.</p>
</a></div>
<div class="col-3"><a href="/hashicorp/terraform" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:hashicorp/terraform;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/hashicorp?s=64&amp;v=4" alt="Hashicorp" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">hashicorp/<span class="color-fg-default">terraform</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">Terraform enables you to safely and predictably create, change, and improve infrastructure.</p>
</a></div>
</div>
<div class="width-full offset-lg-n1 d-flex flex-justify-center gutter-condensed gutter-lg py-2 py-lg-3">
<div class="col-3"><a href="/ohmyzsh/ohmyzsh" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:ohmyzsh/ohmyzsh;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/ohmyzsh?s=64&amp;v=4" alt="Oh my zsh" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">ohmyzsh/<span class="color-fg-default">ohmyzsh</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">🙃 A delightful community-driven framework for managing your zsh configuration.</p>
</a></div>
<div class="col-3"><a href="/facebook/react" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:facebook/react;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/facebook?s=64&amp;v=4" alt="Facebook" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">facebook/<span class="color-fg-default">react</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">A declarative, efficient, and flexible JavaScript library for building user interfaces.</p>
</a></div>
<div class="col-3"><a href="/npm/cli" class="home-repo-card js-home-repo-card d-block p-3 rounded-2 box-shadow-card-border-light-mktg text-gray-light-mktg no-underline" data-analytics-event="{&quot;category&quot;:&quot;Home&quot;,&quot;action&quot;:&quot;click to go to repository&quot;,&quot;label&quot;:&quot;ref_page:/;ref_cta:npm/cli;ref_loc:footer launchpad;&quot;}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/npm?s=64&amp;v=4" alt="npm" class="color-bg-default avatar avatar-5 rounded-2 mr-2" loading="lazy" decoding="async" />
<p class="f5-mktg text-semibold">npm/<span class="color-fg-default">cli</span></p>
</div>
<p class="f6-mktg mb-0 line-clamp-2 c56">The package manager for JavaScript</p>
</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
<footer class="footer pt-6 position-relative">
<div class="container-xl p-responsive d-flex flex-wrap py-5 mb-5">
<div class="col-12 col-lg-4 mb-5"><a href="/" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to home&quot;,&quot;label&quot;:&quot;text:home&quot;}" class="color-fg-default d-inline-block" aria-label="Go to GitHub homepage"><svg height="30" aria-hidden="true" viewbox="0 0 45 16" version="1.1" width="84" data-view-component="true" class="octicon octicon-logo-github footer-logo-mktg width-auto d-block">
<path fill-rule="evenodd" d="M18.53 12.03h-.02c.009 0 .015.01.024.011h.006l-.01-.01zm.004.011c-.093.001-.327.05-.574.05-.78 0-1.05-.36-1.05-.83V8.13h1.59c.09 0 .16-.08.16-.19v-1.7c0-.09-.08-.17-.16-.17h-1.59V3.96c0-.08-.05-.13-.14-.13h-2.16c-.09 0-.14.05-.14.13v2.17s-1.09.27-1.16.28c-.08.02-.13.09-.13.17v1.36c0 .11.08.19.17.19h1.11v3.28c0 2.44 1.7 2.69 2.86 2.69.53 0 1.17-.17 1.27-.22.06-.02.09-.09.09-.16v-1.5a.177.177 0 00-.146-.18zM42.23 9.84c0-1.81-.73-2.05-1.5-1.97-.6.04-1.08.34-1.08.34v3.52s.49.34 1.22.36c1.03.03 1.36-.34 1.36-2.25zm2.43-.16c0 3.43-1.11 4.41-3.05 4.41-1.64 0-2.52-.83-2.52-.83s-.04.46-.09.52c-.03.06-.08.08-.14.08h-1.48c-.1 0-.19-.08-.19-.17l.02-11.11c0-.09.08-.17.17-.17h2.13c.09 0 .17.08.17.17v3.77s.82-.53 2.02-.53l-.01-.02c1.2 0 2.97.45 2.97 3.88zm-8.72-3.61h-2.1c-.11 0-.17.08-.17.19v5.44s-.55.39-1.3.39-.97-.34-.97-1.09V6.25c0-.09-.08-.17-.17-.17h-2.14c-.09 0-.17.08-.17.17v5.11c0 2.2 1.23 2.75 2.92 2.75 1.39 0 2.52-.77 2.52-.77s.05.39.08.45c.02.05.09.09.16.09h1.34c.11 0 .17-.08.17-.17l.02-7.47c0-.09-.08-.17-.19-.17zm-23.7-.01h-2.13c-.09 0-.17.09-.17.2v7.34c0 .2.13.27.3.27h1.92c.2 0 .25-.09.25-.27V6.23c0-.09-.08-.17-.17-.17zm-1.05-3.38c-.77 0-1.38.61-1.38 1.38 0 .77.61 1.38 1.38 1.38.75 0 1.36-.61 1.36-1.38 0-.77-.61-1.38-1.36-1.38zm16.49-.25h-2.11c-.09 0-.17.08-.17.17v4.09h-3.31V2.6c0-.09-.08-.17-.17-.17h-2.13c-.09 0-.17.08-.17.17v11.11c0 .09.09.17.17.17h2.13c.09 0 .17-.08.17-.17V8.96h3.31l-.02 4.75c0 .09.08.17.17.17h2.13c.09 0 .17-.08.17-.17V2.6c0-.09-.08-.17-.17-.17zM8.81 7.35v5.74c0 .04-.01.11-.06.13 0 0-1.25.89-3.31.89-2.49 0-5.44-.78-5.44-5.92S2.58 1.99 5.1 2c2.18 0 3.06.49 3.2.58.04.05.06.09.06.14L7.94 4.5c0 .09-.09.2-.2.17-.36-.11-.9-.33-2.17-.33-1.47 0-3.05.42-3.05 3.73s1.5 3.7 2.58 3.7c.92 0 1.25-.11 1.25-.11v-2.3H4.88c-.11 0-.19-.08-.19-.17V7.35c0-.09.08-.17.19-.17h3.74c.11 0 .19.08.19.17z"></path>
</svg></a></div>
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-lg-0 pl-lg-4">
<h2 class="h5 mb-3 text-mono color-fg-muted text-normal">Product</h2>
<ul class="list-style-none color-fg-muted f5">
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to features&quot;,&quot;label&quot;:&quot;text:features&quot;}" href="/features">Features</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="/security">Security</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to team&quot;,&quot;label&quot;:&quot;text:team&quot;}" href="/team">Team</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to enterprise&quot;,&quot;label&quot;:&quot;text:enterprise&quot;}" href="/enterprise">Enterprise</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to customer stories&quot;,&quot;label&quot;:&quot;text:customer stories&quot;}" href="/customer-stories?type=enterprise">Customer stories</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to the readme project&quot;,&quot;label&quot;:&quot;text:the readme project&quot;}" href="/readme">The ReadME Project</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to pricing&quot;,&quot;label&quot;:&quot;text:pricing&quot;}" href="/pricing">Pricing</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to resources&quot;,&quot;label&quot;:&quot;text:resources&quot;}" href="https://resources.github.com">Resources</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to roadmap&quot;,&quot;label&quot;:&quot;text:roadmap&quot;}" href="https://github.com/github/roadmap">Roadmap</a></li>
</ul>
</div>
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-md-0 pl-md-4">
<h2 class="h5 mb-3 text-mono color-fg-muted text-normal">Platform</h2>
<ul class="list-style-none f5">
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to api&quot;,&quot;label&quot;:&quot;text:api&quot;}" href="https://docs.github.com">Developer API</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to partner&quot;,&quot;label&quot;:&quot;text:partner&quot;}" href="https://partner.github.com">Partners</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to electron&quot;,&quot;label&quot;:&quot;text:electron&quot;}" href="https://www.electronjs.org">Electron</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to desktop&quot;,&quot;label&quot;:&quot;text:desktop&quot;}" href="https://desktop.github.com/">GitHub Desktop</a></li>
</ul>
</div>
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-md-0 pl-md-4">
<h2 class="h5 mb-3 text-mono color-fg-muted text-normal">Support</h2>
<ul class="list-style-none f5">
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to help&quot;,&quot;label&quot;:&quot;text:Docs&quot;}" href="https://docs.github.com">Docs</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community">Community Forum</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to professional services&quot;,&quot;label&quot;:&quot;text:professional services&quot;}" href="https://services.github.com/">Professional Services</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to skills&quot;,&quot;label&quot;:&quot;text:skills&quot;}" href="https://skills.github.com/">Skills</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/">Status</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer">Contact GitHub</a></li>
</ul>
</div>
<div class="col-6 col-sm-3 col-lg-2 mb-6 mb-md-2 pr-3 pr-md-0 pl-md-4">
<h2 class="h5 mb-3 text-mono color-fg-muted text-normal">Company</h2>
<ul class="list-style-none f5">
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to about&quot;,&quot;label&quot;:&quot;text:about&quot;}" href="https://github.com/about">About</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to blog&quot;,&quot;label&quot;:&quot;text:blog&quot;}" href="https://github.blog">Blog</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to careers&quot;,&quot;label&quot;:&quot;text:careers&quot;}" href="/about/careers">Careers</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to press&quot;,&quot;label&quot;:&quot;text:press&quot;}" href="/about/press">Press</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to diversity&quot;,&quot;label&quot;:&quot;text:Inclusion&quot;}" href="/about/diversity">Inclusion</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to social impact&quot;,&quot;label&quot;:&quot;text:social impact&quot;}" href="https://socialimpact.github.com/">Social Impact</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to shop&quot;,&quot;label&quot;:&quot;text:shop&quot;}" href="https://shop.github.com">Shop</a></li>
</ul>
</div>
</div>
<div class="color-bg-subtle container-xl p-responsive f6 py-4 d-sm-flex flex-justify-between flex-row-reverse flex-items-center">
<ul class="list-style-none d-flex flex-items-center mb-3 mb-sm-0 lh-condensed-ultra">
<li class="mr-3"><a href="https://twitter.com/github" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Twitter&quot;,&quot;label&quot;:&quot;text:twitter&quot;}" class="color-fg-subtle"><img src="https://github.githubassets.com/images/modules/site/icons/footer/twitter.svg" height="18" width="22" class="d-block" loading="lazy" decoding="async" alt="Twitter icon" /> <span class="sr-only">GitHub on Twitter</span></a></li>
<li class="mr-3"><a href="https://www.facebook.com/GitHub" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Facebook&quot;,&quot;label&quot;:&quot;text:facebook&quot;}" class="color-fg-subtle"><img src="https://github.githubassets.com/images/modules/site/icons/footer/facebook.svg" width="18" height="18" class="d-block" loading="lazy" decoding="async" alt="Facebook icon" /> <span class="sr-only">GitHub on Facebook</span></a></li>
<li class="mr-3 flex-self-start"><a href="https://www.linkedin.com/company/github" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Linkedin&quot;,&quot;label&quot;:&quot;text:linkedin&quot;}" class="color-fg-subtle"><img src="https://github.githubassets.com/images/modules/site/icons/footer/linkedin.svg" width="19" height="18" class="d-block" loading="lazy" decoding="async" alt="Linkedin icon" /> <span class="sr-only">GitHub on LinkedIn</span></a></li>
<li class="mr-3"><a href="https://www.youtube.com/github" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to YouTube&quot;,&quot;label&quot;:&quot;text:youtube&quot;}" class="color-fg-subtle"><img src="https://github.githubassets.com/images/modules/site/icons/footer/youtube.svg" width="23" height="16" class="d-block" loading="lazy" decoding="async" alt="YouTube icon" /> <span class="sr-only">GitHub on YouTube</span></a></li>
<li class="mr-3"><a href="https://www.twitch.tv/github" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Twitch&quot;,&quot;label&quot;:&quot;text:twitch&quot;}" class="color-fg-subtle"><img src="https://github.githubassets.com/images/modules/site/icons/footer/twitch.svg" width="18" height="18" class="d-block" loading="lazy" decoding="async" alt="Twitch icon" /> <span class="sr-only">GitHub on Twitch</span></a></li>
<li class="mr-3"><a href="https://www.tiktok.com/@github" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to tiktok&quot;,&quot;label&quot;:&quot;text:tiktok&quot;}" class="color-fg-subtle"><img src="https://github.githubassets.com/images/modules/site/icons/footer/tiktok.svg" width="18" height="18" class="d-block" loading="lazy" decoding="async" alt="TikTok icon" /> <span class="sr-only">GitHub on TikTok</span></a></li>
<li><a href="https://github.com/github" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to github's org&quot;,&quot;label&quot;:&quot;text:github&quot;}" class="color-fg-subtle"><img src="https://github.githubassets.com/images/modules/site/icons/footer/github-mark.svg" width="20" height="20" class="d-block" loading="lazy" decoding="async" alt="GitHub mark" /> <span class="sr-only">GitHub’s organization on GitHub</span></a></li>
</ul>
<ul class="list-style-none d-flex flex-wrap color-fg-muted">
<li class="mr-3">© 2022 GitHub, Inc.</li>
<li class="mr-3"><a href="https://docs.github.com/en/github/site-policy/github-terms-of-service" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" class="Link--secondary">Terms</a></li>
<li class="mr-3"><a href="https://docs.github.com/en/github/site-policy/github-privacy-statement" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" class="Link--secondary">Privacy</a> (<a href="https://github.com/github/site-policy/pull/582" class="Link--secondary">Updated 08/2022</a>)</li>
<li class="mr-3"><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to site map&quot;,&quot;label&quot;:&quot;text:site map&quot;}" href="/site-map">Site Map</a></li>
<li><a class="Link--secondary" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Git Guides&quot;,&quot;label&quot;:&quot;text:What is Git?&quot;}" href="/git-guides">What is Git?</a></li>
</ul>
</div>
</footer>
<div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden=""><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
</svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg></button> You can’t perform that action at this time.</div>
<div class="js-stale-session-flash flash flash-warn flash-banner" hidden=""><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
</svg> <span class="js-stale-session-flash-signed-in" hidden="">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden="">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span></div>
<template id="site-details-dialog">
<details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open="">
<summary role="button" aria-label="Close dialog"></summary>
<button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog=""><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</svg></button>
<div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
</details>
</template>
<div class="Popover js-hovercard-content position-absolute Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large c57" tabindex="0"></div>
<template id="snippet-clipboard-copy-button">
<div class="zeroclipboard-container position-absolute right-0 top-0"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
</svg> </div>
</template>
</body>
</html>

Warnings Errors and Accessibility

line 202 column 7 - Warning: missing </span> before <div>
line 201 column 209 - Warning: missing </span> before <div>
line 201 column 11 - Warning: missing </button> before <div>
line 202 column 82 - Warning: inserting implicit <button>
line 202 column 82 - Warning: inserting implicit <span>
line 203 column 61 - Warning: inserting implicit <button>
line 203 column 61 - Warning: inserting implicit <span>
line 204 column 61 - Warning: inserting implicit <button>
line 204 column 61 - Warning: inserting implicit <span>
line 204 column 67 - Warning: discarding unexpected </span>
line 205 column 5 - Warning: discarding unexpected </span>
line 206 column 1 - Warning: discarding unexpected </button>
line 541 column 43 - Warning: discarding unexpected </option>
line 541 column 52 - Error: discarding unexpected </form>
line 543 column 9 - Info: value for attribute "data-hotkey" missing quote marks
line 542 column 7 - Warning: missing </label> before <div>
line 567 column 122 - Warning: inserting implicit <label>
line 567 column 122 - Warning: missing </label> before <ul>
line 573 column 1 - Warning: inserting implicit <label>
line 574 column 91 - Warning: inserting implicit <label>
line 588 column 146 - Warning: inserting implicit <label>
line 592 column 1 - Warning: inserting implicit <label>
line 601 column 156 - Warning: inserting implicit <label>
line 612 column 1 - Warning: inserting implicit <label>
line 620 column 1 - Warning: inserting implicit <label>
line 621 column 91 - Warning: inserting implicit <label>
line 635 column 146 - Warning: inserting implicit <label>
line 639 column 1 - Warning: inserting implicit <label>
line 648 column 156 - Warning: inserting implicit <label>
line 658 column 1 - Warning: inserting implicit <label>
line 659 column 91 - Warning: inserting implicit <label>
line 673 column 146 - Warning: inserting implicit <label>
line 677 column 1 - Warning: inserting implicit <label>
line 686 column 156 - Warning: inserting implicit <label>
line 696 column 1 - Warning: inserting implicit <label>
line 697 column 91 - Warning: inserting implicit <label>
line 711 column 146 - Warning: inserting implicit <label>
line 715 column 1 - Warning: inserting implicit <label>
line 724 column 156 - Warning: inserting implicit <label>
line 735 column 7 - Error: discarding unexpected </label>
line 799 column 3 - Error: <include-fragment> is not recognized! Did you mean to enable the custom-tags option?
line 799 column 3 - Error: discarding unexpected <include-fragment>
line 799 column 128 - Error: discarding unexpected </include-fragment>

Accessibility Checks:

<HTMLYSE> found 317 warnings and 31 errors! Not all warnings/errors were shown.