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&ref_loc=header+logged+out&ref_page=%2F&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="{"event_type":"authentication.click","payload":{"location_in_page":"site header","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/","user_id":null}}" data-hydro-click-hmac="520d87e8f83281e6946b192f0f840552721c7fcba9b9c36d802e898a816314e2">Sign 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Actions","label":"ref_page:/;ref_cta:Actions;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Packages","label":"ref_page:/;ref_cta:Packages;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Security","label":"ref_page:/;ref_cta:Security;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Codespaces","label":"ref_page:/;ref_cta:Codespaces;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Copilot","label":"ref_page:/;ref_cta:Copilot;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Code review","label":"ref_page:/;ref_cta:Code review;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Issues","label":"ref_page:/;ref_cta:Issues;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Discussions","label":"ref_page:/;ref_cta:Discussions;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to All features","label":"ref_page:/;ref_cta:All features;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Documentation","label":"ref_page:/;ref_cta:Documentation;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to GitHub Skills","label":"ref_page:/;ref_cta:GitHub Skills;"}" 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="{"category":"Header dropdown (logged out), Product","action":"click to go to Blog","label":"ref_page:/;ref_cta:Blog;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Enterprise","label":"ref_page:/;ref_cta:Enterprise;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Teams","label":"ref_page:/;ref_cta:Teams;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Compare all","label":"ref_page:/;ref_cta:Compare all;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to CI/CD &amp; Automation","label":"ref_page:/;ref_cta:CI/CD &amp; Automation;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to DevOps","label":"ref_page:/;ref_cta:DevOps;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to DevSecOps","label":"ref_page:/;ref_cta:DevSecOps;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Customer Stories","label":"ref_page:/;ref_cta:Customer Stories;"}" 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="{"category":"Header dropdown (logged out), Solutions","action":"click to go to Resources","label":"ref_page:/;ref_cta:Resources;"}" 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="{"category":"Header dropdown (logged out), Open Source","action":"click to go to GitHub Sponsors","label":"ref_page:/;ref_cta:GitHub Sponsors;"}" 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="{"category":"Header dropdown (logged out), Open Source","action":"click to go to The ReadME Project","label":"ref_page:/;ref_cta:The ReadME Project;"}" 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="{"category":"Header dropdown (logged out), Open Source","action":"click to go to Topics","label":"ref_page:/;ref_cta:Topics;"}" 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="{"category":"Header dropdown (logged out), Open Source","action":"click to go to Trending","label":"ref_page:/;ref_cta:Trending;"}" 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="{"category":"Header dropdown (logged out), Open Source","action":"click to go to Collections","label":"ref_page:/;ref_cta:Collections;"}" 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="{"category":"Header menu top item (logged out)","action":"click to go to Pricing","label":"ref_page:/;ref_cta:Pricing;"}" 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="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/","user_id":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&ref_loc=header+logged+out&ref_page=%2F&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="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/","user_id":null}}" data-hydro-click-hmac="cd4f672ed9a2fa51ea92c28de162e81edb2d11a2aad6884ec89a6d60b21b1cfb" data-analytics-event="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/;ref_cta:Sign up;ref_loc:header logged out"}">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="{"category":"Register","action":"click to register for Universe 2022","label":"ref_page:/;ref_cta:Register for GitHub Universe 2022;ref_loc:hero"}" 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 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="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/;ref_cta:Sign up for GitHub;ref_loc:hero launchpad"}" 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="{"category":"start_a_free_trial","action":"click_to_set_up_enterprise_trial","label":"ref_page:/;ref_cta:start_a_free_trial;ref_loc:billboard_launchpad"}" href="/organizations/enterprise_plan?ref_cta=Start%2520a%2520free%2520trial&ref_loc=billboard&ref_page=%2F" data-test-selector="start-trial-button">Start a free trial</a> <a class="btn-mktg btn-subtle-mktg" data-analytics-event="{"category":"Contact Sales","action":"click to Contact Sales","label":"ref_page:/;ref_cta:Contact Sales;ref_loc:billboard launchpad;"}" href="https://github.com/enterprise/contact?ref_page=/&ref_cta=Contact%20Sales&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="{"category":"Homepage","action":"click item to scroll to Code","label":"ref_page:/;ref_cta:Code;"}">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="{"category":"Homepage","action":"click item to scroll to Collaborate","label":"ref_page:/;ref_cta:Collaborate;"}">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="{"category":"Homepage","action":"click item to scroll to Develop","label":"ref_page:/;ref_cta:Develop;"}">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="{"category":"Homepage","action":"click item to scroll to Automate","label":"ref_page:/;ref_cta:Automate;"}">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="{"category":"Homepage","action":"click item to scroll to Secure","label":"ref_page:/;ref_cta:Secure;"}">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="{"category":"Homepage","action":"click item to scroll to Community","label":"ref_page:/;ref_cta:Community;"}">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="{"category":"Homepage","action":"click to Sign up","label":"ref_page:/;ref_cta:Sign up;ref_loc:Homepage;"}" href="/join?ref_cta=Sign+up&ref_loc=homepage+sticky+nav&ref_page=%2F&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="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/;ref_cta:Sign up for GitHub;ref_loc:code launchpad"}">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&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">  </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> </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&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&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="{"category":"npm","action":"click to npm site","label":"ref_page:/;ref_cta:npm;ref_loc:code launchpad"}" 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> added 109 packages from 64 contributors and audited 109 packages in 3.491s</span></div>
<div class="js-type-row"><span> </span></div>
<div class="js-type-row"><span>9 packages are looking for funding</span></div>
<div class="js-type-row"><span> run `npm fund` for details</span></div>
<div class="js-type-row"><span> </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&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&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&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&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="{"category":"Homepage Collaborate section","action":"click","label":"text:Create a new organization for free;ref_loc:home launchpad"}">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 board, <span class="text-gradient-pink-blue">with 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="{"category":"Explore GitHub Issues &amp; Projects","action":"click to Explore GitHub Issues &amp; Projects","label":"ref_page:/;ref_cta:Explore GitHub Issues &amp; Projects;ref_loc:Homepage Projects section;"}">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&format=webpll 2280w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=1824&format=webpll 1824w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=1368&format=webpll 1368w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=1140&format=webpll 1140w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=912&format=webpll 912w,https://github.githubassets.com/images/modules/site/issues/layout-board.png?width=456&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&format=webpll 2280w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=1824&format=webpll 1824w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=1368&format=webpll 1368w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=1140&format=webpll 1140w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=912&format=webpll 912w,https://github.githubassets.com/images/modules/site/issues/layout-table.png?width=456&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&format=webpll 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=960&format=webpll 960w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=720&format=webpll 720w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=600&format=webpll 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=480&format=webpll 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-3.png?width=240&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&format=webpll 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=960&format=webpll 960w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=720&format=webpll 720w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=600&format=webpll 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=480&format=webpll 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-2.png?width=240&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&format=webpll 1200w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=960&format=webpll 960w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=720&format=webpll 720w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=600&format=webpll 600w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=480&format=webpll 480w,https://github.githubassets.com/images/modules/site/home/issues-stack-1.png?width=240&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="{"category":"Home","action":"click to learn about GitHub Mobile","label":"ref_page:/;ref_cta:GitHub Mobile;ref_loc:collaboration launchpad;"}" 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="{"category":"Home","action":"click to get GitHub Mobile on Apple App Store","label":"ref_page:/;ref_cta:apple icon;ref_loc:develop launchpad;"}"><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="{"category":"Home","action":"click to get GitHub Mobile on Google Play Store","label":"ref_page:/;ref_cta:google icon;ref_loc:develop launchpad;"}"><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> </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> </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> </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="{"category":"Home","action":"click to learn about GitHub Desktop","label":"ref_page:/;ref_cta:npm;ref_loc:code launchpad"}" href="https://desktop.github.com/">GitHub Desktop</a> or stay in the command line with <a class="color-fg-accent" data-analytics-event="{"category":"Home","action":"click to learn about GitHub CLI","label":"ref_page:/;ref_cta:npm;ref_loc:code launchpad"}" 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="{"category":"Home","action":"click to learn more about Codespaces","label":"ref_page:/;ref_cta:Learn more about GitHub Codespaces;ref_loc:codespaces launchpad"}">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="{"category":"Home","action":"click to Learn more about GitHub Copilot","label":"ref_page:/;ref_cta:Learn more about GitHub Copilot;"}">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">=></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>&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">=></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>&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">=></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">=></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">=></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">"&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="{"category":"Home","action":"click to learn more about GitHub Actions","label":"ref_page:/;ref_cta:Learn more about GitHub Actions;ref_loc:automate launchpad"}">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="{"category":"Home","action":"click to go to Actions Marketplace","label":"ref_page:/;ref_cta:Explore the Actions Marketplace;ref_loc:automate launchpad"}">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="{"category":"Homepage Automation section","action":"click","label":"text:Learn more about Dependabot;ref_loc:automate launchpad;"}">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="{"category":"Home","action":"click to learn more about advanced security","label":"ref_page:/;ref_cta:Learn more about advanced security;ref_loc:secure launchpad"}">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&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&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="{"category":"Home","action":"click to learn how to get started with Discussions","label":"ref_page:/;ref_cta:Learn how to get started with Discussions;ref_loc:community launchpad"}">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&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&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&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="{"category":"Home","action":"click to learn more about Sponsors","label":"ref_page:/;ref_cta:Learn more about Sponsors;ref_loc:community launchpad"}">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="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/;ref_cta:Sign up for GitHub;ref_loc:footer launchpad;"}" href="/signup?ref_cta=Sign+up+for+GitHub&ref_loc=footer+launchpad&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="{"category":"Contact Sales","action":"click to Contact Sales","label":"ref_page:/;ref_cta:Contact Sales;ref_loc:footer launchpad"}" href="https://github.com/enterprise/contact?ref_page=/&ref_cta=Contact%20Sales&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:tensorflow/tensorflow;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/tensorflow?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:gatsbyjs/gatsby;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/gatsbyjs?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:home-assistant/core;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/home-assistant?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:rust-lang/rust;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/rust-lang?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:flutter/flutter;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/flutter?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:kubernetes/kubernetes;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/kubernetes?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:apple/swift;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/apple?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:ansible/ansible;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/ansible?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:hashicorp/terraform;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/hashicorp?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:ohmyzsh/ohmyzsh;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/ohmyzsh?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:facebook/react;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/facebook?s=64&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="{"category":"Home","action":"click to go to repository","label":"ref_page:/;ref_cta:npm/cli;ref_loc:footer launchpad;"}">
<div class="d-flex flex-items-center mb-2"><img src="https://avatars.githubusercontent.com/npm?s=64&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="{"category":"Footer","action":"go to home","label":"text:home"}" 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="{"category":"Footer","action":"go to features","label":"text:features"}" href="/features">Features</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="/security">Security</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to team","label":"text:team"}" href="/team">Team</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to enterprise","label":"text:enterprise"}" href="/enterprise">Enterprise</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to customer stories","label":"text:customer stories"}" href="/customer-stories?type=enterprise">Customer stories</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to the readme project","label":"text:the readme project"}" href="/readme">The ReadME Project</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to pricing","label":"text:pricing"}" href="/pricing">Pricing</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to resources","label":"text:resources"}" href="https://resources.github.com">Resources</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to roadmap","label":"text:roadmap"}" 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="{"category":"Footer","action":"go to api","label":"text:api"}" href="https://docs.github.com">Developer API</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to partner","label":"text:partner"}" href="https://partner.github.com">Partners</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to electron","label":"text:electron"}" href="https://www.electronjs.org">Electron</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to desktop","label":"text:desktop"}" 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="{"category":"Footer","action":"go to help","label":"text:Docs"}" href="https://docs.github.com">Docs</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to community","label":"text:community"}" href="https://github.community">Community Forum</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to professional services","label":"text:professional services"}" href="https://services.github.com/">Professional Services</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to skills","label":"text:skills"}" href="https://skills.github.com/">Skills</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://www.githubstatus.com/">Status</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" 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="{"category":"Footer","action":"go to about","label":"text:about"}" href="https://github.com/about">About</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to blog","label":"text:blog"}" href="https://github.blog">Blog</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to careers","label":"text:careers"}" href="/about/careers">Careers</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to press","label":"text:press"}" href="/about/press">Press</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to diversity","label":"text:Inclusion"}" href="/about/diversity">Inclusion</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to social impact","label":"text:social impact"}" href="https://socialimpact.github.com/">Social Impact</a></li>
<li class="lh-condensed mb-3"><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to shop","label":"text:shop"}" 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="{"category":"Footer","action":"go to Twitter","label":"text:twitter"}" 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="{"category":"Footer","action":"go to Facebook","label":"text:facebook"}" 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="{"category":"Footer","action":"go to Linkedin","label":"text:linkedin"}" 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="{"category":"Footer","action":"go to YouTube","label":"text:youtube"}" 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="{"category":"Footer","action":"go to Twitch","label":"text:twitch"}" 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="{"category":"Footer","action":"go to tiktok","label":"text:tiktok"}" 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="{"category":"Footer","action":"go to github's org","label":"text:github"}" 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="{"category":"Footer","action":"go to terms","label":"text:terms"}" 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="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" 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="{"category":"Footer","action":"go to site map","label":"text:site map"}" href="/site-map">Site Map</a></li>
<li><a class="Link--secondary" data-analytics-event="{"category":"Footer","action":"go to Git Guides","label":"text:What is Git?"}" 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>