CINXE.COM
Join GitHub · GitHub
<!DOCTYPE html> <html lang="en" class="height-full" data-a11y-animated-images="system" data-a11y-link-underlines="true"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2Fsolutions%2Fci-cd&source=header","20240314064017","https://web.archive.org/","web","/_static/", "1710398417"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://web.archive.org/web/20240314064017/https://github.githubassets.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20240314064017/https://avatars.githubusercontent.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20240314064017/https://github-cloud.s3.amazonaws.com/"> <link rel="dns-prefetch" href="https://web.archive.org/web/20240314064017/https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://web.archive.org/web/20240314064017/https://github.githubassets.com/" crossorigin> <link rel="preconnect" href="https://web.archive.org/web/20240314064017/https://avatars.githubusercontent.com/"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/light-0eace2597ca3.css"/><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/dark-a167e256da9c.css"/><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-0eace2597ca3.css"/><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-a167e256da9c.css"/><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-d11f2cf8009b.css"/><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-ea7373db06c8.css"/><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-afa99dcf40f7.css"/><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-af6c685139ba.css"/><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-578cdbc8a5a9.css"/><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-5cb699a7e247.css"/><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-9b32204967c6.css"/> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/primer-primitives-2ef2a46b27ee.css"/> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/primer-711f412bb361.css"/> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/global-2a4ebb67d284.css"/> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/github-f4d857cbc96a.css"/> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/site-dfc0853a912d.css"/> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://web.archive.org/web/20240314064017cs_/https://github.githubassets.com/assets/signup-e12d0499e5e5.css"/> <script type="application/json" id="client-env">{"locale":"en","featureFlags":["code_vulnerability_scanning","copilot_conversational_ux_history_refs","copilot_smell_icebreaker_ux","copilot_implicit_context","failbot_handle_non_errors","geojson_azure_maps","image_metric_tracking","marketing_forms_api_integration_contact_request","marketing_pages_search_explore_provider","turbo_experiment_risky","sample_network_conn_type","no_character_key_shortcuts_in_inputs","react_start_transition_for_navigations","report_hydro_web_vitals","custom_inp","remove_child_patch"]}</script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/wp-runtime-31a31e78a2c9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_dompurify_dist_purify_js-6890e890956f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_stacktrace-parser_dist_stack-trace-parser_esm_js-node_modules_github_bro-a4c183-79f9611c275b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-1cd1925b631e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-479802999bcc.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/environment-27057bd9ed0b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-9f960d9b217c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_focus-zone_js-086f7a27bac0.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-c76945c5961a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_combobox-nav_dist_index_js-node_modules_github_markdown-toolbar-e-820fc0-bc8f02b96749.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_auto-complete-element-81d69b-df0506cead4e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-8a621df59e80.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b7d8f4-654130b7cde5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-3959a9-fb6385ae7d9d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/github-elements-5c1092694681.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/element-registry-e843a6ef4fd5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_alive-client_dist-bf5aa2-1b562c29ab8e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-5b376145beff.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_morphdom_dist_morphdom-esm_js-5bff297a06de.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-c91f4ad18b62.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_scroll-anchoring_dist_scro-52dc4b-4fecca2d00e4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-72c9fbde5ad4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_dimensions_js-node_modules_github_jtml_lib_index_js-95b84ee6bc34.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_github_paste-markdown_dist_index_esm_js-node_modules_github_quote-select-cbac5f-c7885f4526c5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/app_assets_modules_github_updatable-content_ts-ee3fc84d7fb0.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_onfocus_ts-app_ass-421cec-9de4213015af.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-94209c43e6af.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-467754-f9bd433e9591.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-9285faa0e011.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/app_assets_modules_github_blob-anchor_ts-app_assets_modules_github_filter-sort_ts-app_assets_-c96432-da3733f430b8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/behaviors-b74cf7d465fa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-d0256ebff5cd.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/notifications-global-352d84c6cc82.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/signup-redesign-315451c451e2.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/signup-529c28197b91.js"></script> <title>Join GitHub · GitHub</title> <meta name="route-pattern" content="/signup(.:format)" data-turbo-transient> <meta name="route-controller" content="signups" data-turbo-transient> <meta name="route-action" content="new" data-turbo-transient> <meta name="current-catalog-service-hash" content="507e874288c76f570a246d72cfafc881216cd6973006f4c917f50398aef5ca3d"> <meta name="request-id" content="B7DE:1523:102820:15F30F:65F29BD1" data-pjax-transient="true"/><meta name="html-safe-nonce" content="71c2c7a43562fb05df861a1bee0df15ee3b75d1417f28b3ff526dfa604b77091" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS9zb2x1dGlvbnMvY2ktY2QvIiwicmVxdWVzdF9pZCI6IkI3REU6MTUyMzoxMDI4MjA6MTVGMzBGOjY1RjI5QkQxIiwidmlzaXRvcl9pZCI6IjM1NTAyNzQ0MDI5OTk1MDM4NjgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="50814f43a7cf3df96195b3d0f7d09b8c5c8cb03c930ad86f6048f9f5cf42e24b" data-pjax-transient="true"/> <meta name="github-keyboard-shortcuts" content="copilot" data-turbo-transient="true"/> <meta name="selected-link" value="/signup" data-turbo-transient> <link rel="assets" href="https://github.githubassets.com/"> <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 people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects."> <link rel="search" type="application/opensearchdescription+xml" href="/web/20240314064017/https://github.com/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, app-argument=https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2Fsolutions%2Fci-cd&source=header"/> <meta property="og:url" content="https://web.archive.org/web/20240314064017/https://github.com/"> <meta property="og:site_name" content="GitHub"> <meta property="og:title" content="Build software better, together"> <meta property="og:description" content="GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects."> <meta property="og:image" content="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/github-logo-55c5b9a1fe52.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1200"> <meta property="og:image" content="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/github-mark-57519b92ca4e.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="620"> <meta property="og:image" content="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/github-octocat-13c86b8b336d.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="620"> <meta property="twitter:site" content="github"> <meta property="twitter:site:id" content="13334762"> <meta property="twitter:creator" content="github"> <meta property="twitter:creator:id" content="13334762"> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:title" content="GitHub"> <meta property="twitter:description" content="GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects."> <meta property="twitter:image:src" content="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/github-logo-55c5b9a1fe52.png"> <meta property="twitter:image:width" content="1200"> <meta property="twitter:image:height" content="1200"> <meta name="hostname" content="github.com"> <meta name="expected-hostname" content="github.com"> <meta http-equiv="x-pjax-version" content="d234f96d9b0fa903dcbde21cdc23c158c2d9a3390253bab23fffcaba423bb181" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="47157875cb7ccb5745c25e704aba4e6f323af8465e1b81a9e7b338506108b85f" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="db56307b3bb2472dee9d25c82970b0187dc6d9c606a199f24df66948b2276a0d" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="2a29cc9428f63c19f11a6f957d6264fb849047798061ea23fdd432779b0dc4e0" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> <meta name="turbo-body-classes" content="logged-out env-production page-responsive height-full d-flex flex-column 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"> <link rel="mask-icon" href="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.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://web.archive.org/web/20240314064017im_/https://github.githubassets.com/favicons/favicon.svg"> <meta name="theme-color" content="#1e2327"> <link rel="manifest" href="/web/20240314064017/https://github.com/manifest.json" crossorigin="use-credentials"> </head> <body class="logged-out env-production page-responsive height-full d-flex flex-column header-overlay" style="word-wrap: break-word;"> <div data-turbo-body class="logged-out env-production page-responsive height-full d-flex flex-column header-overlay" style="word-wrap: break-word;"> <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"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/react-lib-1fbfc5be2c18.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_primer_octicons-react_dist_index_esm_js-node_modules_primer_react_lib-es-2e8e7c-a58d7c11e858.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Box_Box_js-8f8c5e2a2cbf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Button_Button_js-0c6d448dadbe.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_ActionList_index_js-9564ac9a8a33.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/vendors-node_modules_primer_react_lib-esm_Button_IconButton_js-node_modules_primer_react_lib--23bcad-01764c79fa41.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/ui_packages_react-core_create-browser-history_ts-ui_packages_react-core_AppContextProvider_ts-809ab9-4a2cf4ad7f60.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://web.archive.org/web/20240314064017js_/https://github.githubassets.com/assets/keyboard-shortcuts-dialog-a23eda2bcf8d.js"></script> <react-partial partial-name="keyboard-shortcuts-dialog" data-ssr="false"> <script type="application/json" data-target="react-partial.embeddedData">{"props":{}}</script> <div data-target="react-partial.reactRoot"></div> </react-partial> <header class="js-warp-hide header-logged-out f4 py-3 z-2" role="banner"> <div class="container-xl d-lg-flex flex-items-center p-responsive"> <div class="d-md-flex flex-justify-between flex-items-center width-full"> <a href="https://web.archive.org/web/20240314064017/https://github.com/" aria-label="Homepage"> <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 color-fg-on-emphasis"> <path d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"></path> </svg> </a> <div class="font-mktg mt-3 mt-md-0"> <span class="mr-2 text-gray-light-mktg">Already have an account?</span> <a href="/web/20240314064017/https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fsignup%3Fref_cta%3DSign%2Bup%26ref_loc%3Dheader%2Blogged%2Bout%26ref_page%3D%252Fsolutions%252Fci-cd%26source%3Dheader" class="color-fg-on-emphasis"> Sign in → </a> </div> </div> </div> </header> <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full mb-3"> <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 d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" 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 class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <button id="icon-button-ae8bac9d-3f7b-471e-8954-1057b2d3b107" aria-labelledby="tooltip-2f68400d-3aad-487e-84c9-1ee8bb4ffa8c" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button><tool-tip id="tooltip-2f68400d-3aad-487e-84c9-1ee8bb4ffa8c" for="icon-button-ae8bac9d-3f7b-471e-8954-1057b2d3b107" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> </div> </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 }}"> <div> <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 d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div aria-atomic="true" role="alert" class="js-flash-alert"> <div>{{ message }}</div> </div> </div> </div> </template> </div> <include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment> <div class="application-main d-flex flex-auto flex-column" data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled> <div class="js-signup-warp-vid signup-warp-vid z-1"> <p class="text-mono text-gray-dark-mktg">Initializing your <a class="Link--inTextBlock" href="/web/20240314064017/https://github.com/">dashboard</a>...</p> <video muted playsinline preload="none" class="signup-warp-video" aria-describedby="video-desc"> <source type="video/mp4" src="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/launch-codes-mona@2x-adeb968142cf.mp4"> media="(min-device-pixel-ratio:2)"> <source type="video/mp4" src="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/launch-codes-mona@1x-8b890068dab6.mp4"> </video> <div class="js-fallback-img" hidden aria-describedby="video-desc" aria-live="polite"> <img class="mona-fallback" src="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/launch-codes-mona-fallback@1x-baf96e8322b3.jpg" srcset="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/launch-codes-mona-fallback@2x-88f75ecb336f.jpg 2x" aria-describedby="video-desc" loading="lazy" alt="Mona Lisa, the Octocat, welcomes you to GitHub"> </div> </div> <div class="js-signup-warp-bg signup-warp-bg position-absolute" role="img" aria-describedby="video-desc" hidden></div> <div id="video-desc" aria-live="polite" class="sr-only" style="display: none;"> <p>Launch code accepted. Helm, Warp One. Engage! We are initializing your dashboard and will redirect you there momentarily.</p> </div> <div class="js-warp-hide bg-gray-dark-mktg d-flex flex-auto flex-column overflow-hidden position-relative"> <div class="signup-space"> <div class="signup-stars"></div> <div class="signup-stars"></div> <div class="signup-stars"></div> <div class="signup-stars"></div> <div class="signup-stars"></div> <div class="signup-stars"></div> </div> <main class="d-flex flex-auto flex-column"> <div class="d-flex flex-auto flex-justify-center pt-12"> <text-suggester class="js-continue-container width-full z-1 signup-text-suggester"> <div class="mx-1 mx-sm-4 my-4 px-sm-4 px-1 py-4 f4 color-shadow-small bg-gray-800-mktg rounded-2 signup-content-container"> <h1 class="sr-only">Welcome to GitHub! Let's begin the adventure</h1> <div class="px-sm-0 px-4"> <typing-effect data-lines="["Welcome to GitHub!", "Let’s begin the adventure"]" data-continue-to="email-container" class="js-signup-typed-welcome js-octocaptcha-hide"> <span data-target="typing-effect.content" class="text-mono text-gray-light-mktg"></span> <span data-target="typing-effect.cursor" class="typing-effect-cursor">|</span> </typing-effect> </div> <noscript> <div class="my-4 text-mono color-fg-attention"> GitHub requires JavaScript enabled to sign up for our captcha. Please enable JavaScript. </div> </noscript> <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="position-relative js-octocaptcha-parent" data-turbo="false" action="/web/20240314064017/https://github.com/signup" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="AkKBPAd7S06gSFi2WGa1Ms7+PHYjY4dpPSp+QR1JMRbZ7/Dl47sZC5aO/BLWkF8yoOwRzJYPA1iYMYHJAWkzvQ=="/> <input type="hidden" name="return_to" id="return_to" autocomplete="off" class="form-control"/> <div id="email-container" class="js-continue-step-container signup-continue-step-container js-octocaptcha-hide mt-4 px-sm-0 px-4" data-step-state="active" hidden> <div class="mb-1"> <label for="email" class="text-mono signup-text-prompt"> Enter your email<sup aria-hidden="true">*</sup> </label> </div> <div class="d-flex flex-items-center flex-column flex-sm-row"> <div class="d-flex flex-items-center width-full"> <span class="signup-continue-prompt mr-2" aria-hidden="true"></span> <auto-check src="/email_validity_checks" class="js-prevent-default-behavior width-full mr-2" required> <input id="email" class="js-continue-input js-continue-focus-target js-octocaptcha-data-field signup-input form-control input-block flex-1 border-0 pl-0 box-shadow-none color-text-white f4 text-mono" required="required" autofocus="autofocus" autocomplete="email" data-target="text-suggester.input" data-octocaptcha-field-name="email_address" aria-describedby="email-err" type="email" name="user[email]"/> <input type="hidden" data-csrf="true" value="Z9aKdLd5r5/mDtKueqPylDvHkMTaY2Azs7P2o1qxFEfDc725jYiXhMEv1IYOz7v/ZZc5fzhTmmJf9v5tmvvFQg=="/> </auto-check> </div> <button type="button" class="js-continue-button signup-continue-button form-control px-3 width-full width-sm-auto mt-4 mt-sm-0" data-continue-to="password-container" disabled> Continue </button> </div> </div> <div id="password-container" class="js-continue-step-container signup-continue-step-container px-sm-0 px-4 js-octocaptcha-hide" hidden> <div class="mt-4 mb-1"> <label for="password" class="text-mono signup-text-prompt"> Create a password<sup aria-hidden="true">*</sup> </label> </div> <div class="d-flex flex-items-center flex-column flex-sm-row"> <div class="d-flex flex-items-center width-full"> <span class="signup-continue-prompt mr-2" aria-hidden="true"></span> <visible-password class="flex-1 d-flex flex-items-center mr-3"> <auto-check src="/password_validity_checks" class="js-prevent-default-behavior flex-1 mr-2" required> <input id="password" class="form-control js-continue-input js-continue-focus-target signup-input form-control input-block flex-1 border-0 pl-0 box-shadow-none color-text-white f4 text-mono" required="required" passwordrules="minlength: 15; allowed: unicode;" autocomplete="new-password" data-target="visible-password.input" aria-describedby="password-err" type="password" name="user[password]"/> <input type="hidden" data-csrf="true" value="/KNoF23R1YZUL4FM+J8TPHABpVHD4msp/N/V/a+NwBsHitqxTEsJuDzbZ8+UVyefMaLfFJs0LkPlNoP/l6rPuA=="/> </auto-check> <button data-target="visible-password.showButton" data-action="click:visible-password#show" aria-label="Show password" type="button" data-view-component="true" class="signup-password-visibility-toggle Button--link Button--medium Button"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-eye"> <path d="M8 2c1.981 0 3.671.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14c-1.981 0-3.671-.992-4.933-2.078C1.797 10.83.88 9.576.43 8.898a1.62 1.62 0 0 1 0-1.798c.45-.677 1.367-1.931 2.637-3.022C4.33 2.992 6.019 2 8 2ZM1.679 7.932a.12.12 0 0 0 0 .136c.411.622 1.241 1.75 2.366 2.717C5.176 11.758 6.527 12.5 8 12.5c1.473 0 2.825-.742 3.955-1.715 1.124-.967 1.954-2.096 2.366-2.717a.12.12 0 0 0 0-.136c-.412-.621-1.242-1.75-2.366-2.717C10.824 4.242 9.473 3.5 8 3.5c-1.473 0-2.825.742-3.955 1.715-1.124.967-1.954 2.096-2.366 2.717ZM8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10Z"></path> </svg></span> </span> </button> <button data-target="visible-password.hideButton" data-action="click:visible-password#hide" aria-label="Hide password" hidden="hidden" type="button" data-view-component="true" class="signup-password-visibility-toggle Button--link Button--medium Button"> <span class="Button-content"> <span class="Button-label"><svg aria-hidden="true" height="16" viewbox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-eye-closed"> <path d="M.143 2.31a.75.75 0 0 1 1.047-.167l14.5 10.5a.75.75 0 1 1-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.619 1.619 0 0 1 0-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 0 1 .143 2.31Zm1.536 5.622A.12.12 0 0 0 1.657 8c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 0 1 6.058 7.52L3.529 5.688a14.207 14.207 0 0 0-1.85 2.244ZM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 1 1-.473-1.423A6.207 6.207 0 0 1 8 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.11.166-.248.365-.41.587a.75.75 0 1 1-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 0 0 0-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5Z"></path> </svg></span> </span> </button> </visible-password> </div> <button type="button" class="js-continue-button signup-continue-button form-control px-3 width-full width-sm-auto mt-4 mt-sm-0" data-continue-to="username-container" disabled> Continue </button> </div> </div> <div id="username-container" class="js-continue-step-container js-octocaptcha-hide signup-continue-step-container px-sm-0 px-4" hidden> <div class="mt-4 mb-1"> <label for="login" class="text-mono signup-text-prompt"> Enter a username<sup aria-hidden="true">*</sup> </label> </div> <div class="d-flex flex-items-center flex-column flex-sm-row"> <div class="d-flex flex-items-center width-full"> <span class="signup-continue-prompt mr-2" aria-hidden="true"></span> <auto-check src="/signup_check/username" class="js-prevent-default-behavior width-full mr-2" required> <input id="login" class="form-control js-continue-input js-continue-focus-target js-octocaptcha-data-field signup-input form-control input-block flex-1 border-0 pl-0 box-shadow-none color-text-white f4 text-mono" required="required" autocomplete="username" data-octocaptcha-field-name="login" aria-describedby="login-err" type="text" name="user[login]"/> <input type="hidden" data-csrf="true" value="UsuD+l2PlEdIxT3SThtbI4PlSz0KS9ZdLo7jJH+1UP+yVbPBAHmOxQkrs0Jtynndlmv3OpHm7fUr0b3fS04bQg=="/> </auto-check> </div> <button type="button" class="js-continue-button signup-continue-button form-control px-3 width-full width-sm-auto mt-4 mt-sm-0" data-continue-to="opt-in-container"> Continue </button> </div> </div> <div id="opt-in-container" class="js-continue-step-container signup-continue-step-container js-octocaptcha-hide px-sm-0 px-4" hidden> <div class="mt-4 mb-1"> <label for="opt_in" class="text-mono signup-text-prompt"> Email preferences </label> </div> <div class="d-flex flex-items-center flex-column flex-sm-row"> <div class="d-flex flex-items-center width-full"> <input type="checkbox" name="opt_in" id="opt_in" value="true" class="js-continue-input js-continue-focus-target signup-input form-control flex-1 signup-checkbox"/> <label class="color-fg-on-emphasis f4 text-mono text-normal position-relative pl-2" for="opt_in"> Receive occasional product updates and announcements. </label> </div> <button type="button" class="js-continue-button signup-continue-button form-control px-3 width-full width-sm-auto mt-4 mt-sm-0 js-octocaptcha-load-captcha" data-continue-to="captcha-and-submit-container"> Continue </button> </div> </div> <div id="captcha-and-submit-container" class="width-full js-continue-step-container captcha-container"> <div class="text-mono text-bold signup-text-prompt mt-4 px-sm-0 px-4"> Verify your account </div> <div class="js-continue-focus-target" tabindex="-1" style="outline: none;"> <div class="my-3"> <div class="js-octocaptcha-spinner d-flex flex-justify-center flex-items-center width-full"> <img alt="Waiting for verification." src="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/octocat-spinner-128-9d4bc3602169.gif" width="64" height="64"/> </div> <div class="js-octocaptcha-success d-none d-flex flex-justify-center flex-items-center width-full"> <svg height="64" aria-label="Account has been verified. Please continue." role="img" viewbox="0 0 24 24" version="1.1" width="64" data-view-component="true" class="octicon octicon-check color-fg-success"> <path d="M21.03 5.72a.75.75 0 0 1 0 1.06l-11.5 11.5a.747.747 0 0 1-1.072-.012l-5.5-5.75a.75.75 0 1 1 1.084-1.036l4.97 5.195L19.97 5.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </div> <div class="width-full" data-ga-event-category="Signup funnel entrance"> <iframe data-src="https://octocaptcha.com?origin_page=github_signup_redesign&responsive=true&require_ack=true&version=2" class="js-octocaptcha-frame width-full d-block v-hidden border-0 rounded-2" title="Please verify by completing this captcha."></iframe> </div> <input required name="octocaptcha-token" class="js-octocaptcha-token d-none" data-octocaptcha-url="https://octocaptcha.com" data-octocaptcha-timeout="30000" data-dynamically-load-captcha="true"> </div> </div> <input class="form-control" type="text" name="required_field_b989" hidden="hidden"/> <input class="form-control" type="hidden" name="timestamp" value="1710398417872"/> <input class="form-control" type="hidden" name="timestamp_secret" value="1379677f6f41728b65dfc02e9fd8fac5cf6751c901d51299836f97e8f6bc6a52"/> <div class="px-sm-0 px-4"> <button name="button" type="submit" class="form-control signup-submit-button width-full py-2 mt-2 js-octocaptcha-form-submit" data-disable-invalid="true" disabled="disabled" hidden="hidden">Create account</button> </div> </div> </form> </div> <div class="js-continue-hint-container mx-4 px-4 f4 font-mktg text-gray-light-mktg"> <p id="email-err" data-hint-for="email" role="alert" aria-atomic="true"></p> <p id="password-err" data-hint-for="password" role="alert" aria-atomic="true"></p> <p id="login-err" data-hint-for="login" role="alert" aria-atomic="true"></p> <p id="input-valid" class="sr-only">Input is now valid.</p> </div> </text-suggester> </div> <div class="d-flex flex-justify-center z-2"> <div class="mb-6" style="max-width: 654px;"> <p class="text-gray-light-mktg text-small m-4"> By creating an account, you agree to the <a class="Link--inTextBlock" href="/web/20240314064017/https://github.com/site/terms" target="_blank" rel="noopener">Terms of Service</a>. For more information about GitHub's privacy practices, see the <a class="Link--inTextBlock" href="/web/20240314064017/https://github.com/site/privacy" target="_blank" rel="noopener">GitHub Privacy Statement</a>. We'll occasionally send you account-related emails. </p> </div> </div> <img src="https://web.archive.org/web/20240314064017im_/https://github.githubassets.com/assets/hero-glow-f6eed469bca2.svg" alt="Glowing universe" class="js-warp-hide position-absolute overflow-hidden events-none" style="top: 50%; left: 50%; width: 200%; transform: translate(-50%, -50%);"> </main> <div class="z-2"> <footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo"> <h2 class="sr-only">Footer</h2> <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap"> <div class="d-flex flex-items-center flex-shrink-0 mx-2"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://web.archive.org/web/20240314064017/https://github.com/"> <svg aria-hidden="true" height="24" viewbox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"></path> </svg> </a> <span> © 2024 GitHub, Inc. </span> </div> <nav aria-label="Footer"> <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3> <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading"> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to Terms","label":"text:terms"}" href="https://web.archive.org/web/20240314064017/https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" href="https://web.archive.org/web/20240314064017/https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="/web/20240314064017/https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://web.archive.org/web/20240314064017/https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to docs","label":"text:docs"}" href="https://web.archive.org/web/20240314064017/https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" href="https://web.archive.org/web/20240314064017/https://support.github.com/?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement"> Manage cookies </button> </cookie-consent-link> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement"> Do not share my personal information </button> </cookie-consent-link> </li> </ul> </nav> </div> </footer> </div> </div> </div> <cookie-consent id="cookie-consent-banner" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></cookie-consent> <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 d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></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 d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> You can’t perform that action at this time. </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> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <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 d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0 tooltipped-no-delay" data-copy-feedback="Copied!" data-tooltip-direction="w"> <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 d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></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 d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> <template id="snippet-clipboard-copy-button-unpositioned"> <div class="zeroclipboard-container"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w"> <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"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></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"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> </div> <div id="js-global-screen-reader-notice" class="sr-only" aria-live="polite" aria-atomic="true"></div> <div id="js-global-screen-reader-notice-assertive" class="sr-only" aria-live="assertive" aria-atomic="true"></div> </body> </html> <!-- FILE ARCHIVED ON 06:40:17 Mar 14, 2024 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 22:23:12 Dec 11, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.642 exclusion.robots: 0.026 exclusion.robots.policy: 0.016 esindex: 0.011 cdx.remote: 5.88 LoadShardBlock: 290.436 (6) PetaboxLoader3.datanode: 119.179 (7) PetaboxLoader3.resolve: 370.569 (2) load_resource: 245.374 -->