Files
nexus/sreweekly/articles/309/01-what-we-talk-about-when-we-talk-about-root-cause.html
2026-09-12 17:23:01 +08:00

993 lines
259 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html
lang="en"
data-color-mode="light" data-light-theme="light" data-dark-theme="dark"
data-a11y-animated-images="system" data-a11y-link-underlines="true"
>
<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">
<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />
<link crossorigin="anonymous" rel="preload" as="script" href="https://github.githubassets.com/assets/global-banner-disable-5554a5e94272b68a.js" />
<link rel="preload" href="https://github.githubassets.com/assets/MonaSansVF-wdth-wght-opsz-902d64c7ad02.woff2" as="font" type="font/woff2" crossorigin>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-99f877e9ddfc0e51.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-79ad2ace604703b3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-99f877e9ddfc0e51.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-f4bf1142976e4bbf.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-f661b49995ba0bd8.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-0b38d22346321c92.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-f1c62c9e70259b9f.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-79ad2ace604703b3.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-f50cacf0a86b9929.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-e61d4f4ca17852c2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-39c10993d5603fac.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-73236c840c0c7d90.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-0de76f07cc035b10.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-fd1500c8744e40d6.css" />
<style type="text/css">
:root {
--tab-size-preference: 4;
}
pre, code {
tab-size: var(--tab-size-preference);
}
</style>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-ed9ca172356fd545.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-1d2c7f7b52a6068b.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-adcabba7b5c5d221.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-552513ad07a183a1.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-610c6d3d4706c483.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/readme-d74cae9ea142d14e.css" />
<script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","activity_diff_file_tree","activity_repos_file_tree","activity_repos_overview_header","activity_repos_overview_sidebar","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","cca_show_aic_usage_per_session","ccr_files_changed_model_picker","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_automations_pagination","copilot_chat_clear_model_selection_for_default_change","copilot_chat_compact_tables","copilot_chat_header_reorder","copilot_chat_max_upsell","copilot_chat_minimize_contextual","copilot_chat_model_picker_promotions","copilot_chat_models_browser_cache","copilot_chat_new_topic_nudge","copilot_chat_reduce_quota_checks","copilot_chat_vision_dotcom_chat_ga_gate","copilot_chat_vision_preview_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_ftp_hyperspace_upgrade_prompt","copilot_hide_hovercard","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_suggestion_pills","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_early_stop","copilot_mission_control_environment_list_icons","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_repo_hovercards","copilot_mission_control_sandbox_client_side_clone","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_session_filters","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_pr_chat_enhancements","copilot_prominent_upgrade_button","copilot_resource_panel","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_workbench_sunset","copilot_workbench_sunset_redirect","copilot_workbench_ubb","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","flex_suite_disable_river_accordion_dither","glc_code_quality_repo_settings_workflow_config","hide_github_models_ui","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_optimistic_updates","issue_relative_time_micro","issues_dashboard_sso_structured_errors","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_lazy_hydrate_agent_tasks","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_checks_refetch_dedupe","merge_status_header_feedback","oauth_authorize_clickjacking_protection","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","prs_copilot_app_open_action","prs_css_anchor_positioning","prs_new_conversation_comments_api","pull_request_copilot_attribution_header","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_feedback_dialog","pull_request_stacks_rebase_conflict_instructions","pull_request_virtualization_image_estimate","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","pulls_dashboard_sidebar_layout","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_actions_workflows","repo_app_agents","repo_app_commits","repo_app_issues","repo_app_pull_requests","repo_app_turbo","repo_issues_sidebar_layout","repo_overview_ask_copilot","repo_pulls_dashboard_persistence","repos_contributors_limited_default_range","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_banner_learn_copilot_sdk","site_global_nav_spark_models_removed","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","ui_service_referrer_metrics","update_issue_suggestions","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workbench_store_readonly","react_import_map","react_import_map"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-e3d808ee18eb9784.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-c40ff75fa4b29faf.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-89338d13d121427c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-79275629e212a8de.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-ef80792c471f3488.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-564408e9198dff6d.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-6301446d495cadb7.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.db39abd7070fb379.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-86a8f5de995615f8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e88088f989b27670.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-85cb37305f54dec4.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by4-73006a52f155289f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-36f036c13c2e3a4c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/kw-866fd9513ae95106.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r1-b075aab3204f32f9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-7c5d1669717041f8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-5126390ff433704d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j05-dce4d588268f0f7e.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-d5a098151cf3b06a.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-e87c875160a83f53.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-f3f5d71440009c48.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-edd4f18194230d9e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-5109c77d7ac61078.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-220b14bbb2e5a3aa.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/04-a76c47ec12c12e01.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ur-024971cb63acad59.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t-9933bcccf9a9524f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6ny-c969fbae697a356f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/yhq-3a209035a30b1a09.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/z1v-da5b33b877bfa358.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wo-09f85d22a6c8931b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/9y-81cfe57dc9040f3e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-41a4cf04cbd99503.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0p-50de93b282dbc67c.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-f18992dbb9345e7b.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.1d66df2418934e22.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pc-0868e9f8520905ab.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/marketing-b932e85ce464415a.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/marketing-readme-ff299a83f8bcbcb5.js" defer="defer"></script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "https://github.com/readme",
"name": "The ReadME Project"
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@id": "https://github.com/readme/guides/root-cause",
"name": "What we talk about when we talk about ‘root cause’"
}
}
]
}
</script>
<script type="application/ld+json">{
"@context": "http://schema.org",
"@type": "Article",
"headline": "What we talk about when we talk about ‘root cause’",
"datePublished": "2022-02-08T02:00:00+00:00",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"logo": "https://github.githubassets.com/assets/github-logo-55c5b9a1fe52.png"
},
"author": [
{
"@type": "Person",
"name": "John Allspaw",
"url": "https://github.com/jallspaw"
}
],
"image": [
"https://images.ctfassets.net/s5uo95nf6njh/6aSR12zNhny7zzl1ommyvr/df11433c675dafb3d5e8e2f18df8f9f7/Documentation_II_ASSIGNED_John_Allspaw__1_.jpg"
]
}</script>
<title>What we talk about when we talk about ‘root cause’ · GitHub</title>
<meta name="route-pattern" content="/readme/guides/:id(.:format)" data-turbo-transient>
<meta name="route-controller" content="site_readme_guides" data-turbo-transient>
<meta name="route-action" content="show" data-turbo-transient>
<meta name="fetch-nonce" content="v2:6dbaf9d1-4b8f-c2d2-8ff4-2a3f75870a0a">
<meta name="current-catalog-service-hash" content="3b3a86e94adb1936974b9e80c6c5c959f35b1d5f75b93677737ffa36daf92bbd">
<meta name="request-id" content="E986:22C261:12FC62:207DD5:6AA4DFF3" data-pjax-transient="true"/><meta name="html-safe-nonce" content="b84e65aaa0fa783dfc7b3e507b4a39afd0cb66259efd4cb364525e8f8b93fae6" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFOTg2OjIyQzI2MToxMkZDNjI6MjA3REQ1OjZBQTRERkYzIiwidmlzaXRvcl9pZCI6Ijc5NDY5MDk1OTIyMjM4MDEzMzEiLCJyZWdpb25fZWRnZSI6Indlc3R1czMiLCJyZWdpb25fcmVuZGVyIjoid2VzdHVzMyJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="5b092647ef6bded6162199ea8938f38eb1324a427d00b78cd30e6fa80537010c" data-pjax-transient="true"/>
<meta name="github-keyboard-shortcuts" content="copilot" data-turbo-transient="true" />
<meta name="selected-link" value="/readme/guides/root-cause" data-turbo-transient>
<link rel="assets" href="https://github.githubassets.com/">
<meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">
<meta name="octolytics-url" content="https://collector.github.com/github/collect" />
<meta name="octolytics-page-type" content="marketing" />
<meta name="user-login" content="">
<meta name="viewport" content="width=device-width">
<meta name="description" content="Instead of finding the ‘root cause’ to incidents and issues, @allspaw says it’s more accurate to try and break down what created the ‘perfect storm’:">
<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, app-argument=https://github.com/readme/guides/root-cause" />
<meta name="twitter:image" content="https://images.ctfassets.net/s5uo95nf6njh/6KuLpu1HfgtS3iIK5xYFOx/5328c4884eecc29902e3c4a545825f05/1200x630-ReadMe-Twitter_LI_Post-John_Allspaw_2x-1.jpg" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="What we talk about when we talk about ‘root cause’" /><meta name="twitter:description" content="Instead of finding the ‘root cause’ to incidents and issues, @allspaw says it’s more accurate to try and break down what created the ‘perfect storm’:" />
<meta property="og:image" content="https://images.ctfassets.net/s5uo95nf6njh/6KuLpu1HfgtS3iIK5xYFOx/5328c4884eecc29902e3c4a545825f05/1200x630-ReadMe-Twitter_LI_Post-John_Allspaw_2x-1.jpg" /><meta property="og:image:alt" content="Instead of finding the ‘root cause’ to incidents and issues, @allspaw says it’s more accurate to try and break down what created the ‘perfect storm’:" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="What we talk about when we talk about ‘root cause’" /><meta property="og:url" content="https://github.com/readme/guides/root-cause" /><meta property="og:description" content="Instead of finding the ‘root cause’ to incidents and issues, @allspaw says it’s more accurate to try and break down what created the ‘perfect storm’:" />
<meta name="hostname" content="github.com">
<meta name="expected-hostname" content="github.com">
<meta http-equiv="x-pjax-version" content="06eaf606a96480b3e092be77ad1e5c561b1061aebb8c4db7db8d3eca6114edf6" data-turbo-track="reload">
<meta http-equiv="x-pjax-csp-version" content="a0721a5a35c7ad5dae5b0d7b119c20d884a2506083b3f43642f810f0a129fcc2" data-turbo-track="reload">
<meta http-equiv="x-pjax-css-version" content="b7a4653359baeee3d827ca91d7c149e4962234557341efae58fad4aa5ce82a0a" data-turbo-track="reload">
<meta http-equiv="x-pjax-js-version" content="96efb01f6430a1ad6e22f9e0b8a04625dd76a461e93da809464e8d1f9c36c59c" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
<meta name="readme-story-name" content="John Allspaw">
<link rel="preconnect" href="https://images.ctfassets.net">
<link rel="preload" href="https://github.githubassets.com/assets/Blimone-Medium-Inktrap-870240417f29.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://github.githubassets.com/assets/hubot-sans-597e45ee1797.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://github.githubassets.com/assets/MonaSansVF-wdth-wght-opsz-902d64c7ad02.woff2" as="font" type="font/woff2" crossorigin>
<meta name="is_logged_out_page" content="true">
<link rel="canonical" href="https://github.com/readme/guides/root-cause" data-turbo-transient>
<meta name="turbo-body-classes" content="logged-out env-production page-responsive readme-project header-overlay">
<meta name="disable-turbo" content="true">
<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="release" content="ee0d1b245383d5b08b4f8b7ecd18cda5bdccbbe4" data-turbo-track="reload">
<meta name="ui-target" content="canary-2">
<link rel="mask-icon" href="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://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">
<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />
<link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
</head>
<body class="logged-out env-production page-responsive readme-project header-overlay" style="word-wrap: break-word;" >
<div data-turbo-body class="logged-out env-production page-responsive readme-project header-overlay" style="word-wrap: break-word;" data-turbo="false">
<div id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
<div class="position-relative header-wrapper js-header-wrapper ">
<a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-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>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-bf6f21d7e7a43c35.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/l7j-a8c3c3ab9790e365.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3np-a0186ba63220b6ce.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bi0-e2f78de823e39ca9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-98c649c7176c489a.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.bad9067f7ec9f6d1.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.b5f61eada8ea05c6.module.css" />
<react-partial
partial-name="keyboard-shortcuts-dialog"
data-ssr="false"
data-attempted-ssr="false"
data-react-profiling="false"
>
<script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
<div data-target="react-partial.reactRoot"></div>
</react-partial>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pg-edbe06b8984594ea.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-global-banner-d646d2982531bd06.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.bad9067f7ec9f6d1.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.206bbd4fd232654e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/marketing-global-banner.a12a1154019e2c70.module.css" />
<react-partial
partial-name="marketing-global-banner"
data-ssr="false"
data-attempted-ssr="true"
data-react-profiling="false"
>
<script type="application/json" data-target="react-partial.embeddedData">{"props":{"logged_in":false,"current_path":"/readme/guides/root-cause","locale":"en","is_staff":false}}</script>
<div data-target="react-partial.reactRoot"></div>
</react-partial>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/global-banner-disable-5554a5e94272b68a.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz5-23f28c0f388769c9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lht-b91be4a9ea8a3210.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p1-76a75a6081059b19.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tua-81c88ff7e39af43c.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4s-854aef8a5dc4797a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-b4f24b72e9c5634b.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.bad9067f7ec9f6d1.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.206bbd4fd232654e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/4s.795b697dd2335e43.module.css" />
<react-partial
partial-name="marketing-header"
data-ssr="true"
data-attempted-ssr="true"
data-react-profiling="false"
>
<script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"light","logged_in":false,"marketing_page":true,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Froot-cause","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2Freadme%2Fguides%2Froot-cause\u0026source=header","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_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/readme/guides/root-cause\",\"user_id\":null}}","auth_hydro_click_hmac":"6170d0a3887f4616edd04fc8e00af775375f60e5c72e7a4bad6b2f5d76f6880f","overlay":true,"fixed":false}}</script>
<div data-target="react-partial.reactRoot"><div data-color-mode="light" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out MarketingHeader-module__overlay__jnPuQ" role="banner" data-marketing-header="true" data-color-mode="light" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Froot-cause" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/readme/guides/root-cause&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6170d0a3887f4616edd04fc8e00af775375f60e5c72e7a4bad6b2f5d76f6880f"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path></svg>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><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="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><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="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><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="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><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="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><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="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><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="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg><span class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Froot-cause" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/readme/guides/root-cause&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6170d0a3887f4616edd04fc8e00af775375f60e5c72e7a4bad6b2f5d76f6880f"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2Freadme%2Fguides%2Froot-cause&amp;source=header" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/readme/guides/root-cause&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6170d0a3887f4616edd04fc8e00af775375f60e5c72e7a4bad6b2f5d76f6880f"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a></div></div></div></div></header></div></div>
</react-partial>
<div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
<svg aria-hidden="true" data-component="Octicon" 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-23e47519-0447-4538-a4e9-7016ba876ea9" aria-labelledby="tooltip-c99107bf-2568-449a-ad78-40a8411283c5" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" data-component="Octicon" 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-c99107bf-2568-449a-ad78-40a8411283c5" for="icon-button-23e47519-0447-4538-a4e9-7016ba876ea9" 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" class="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" data-component="Octicon" 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>
<div
class="application-main "
data-commit-hovercards-enabled
data-discussion-hovercards-enabled
data-issue-and-pr-hovercards-enabled
data-project-hovercards-enabled
>
<main class="font-mktg " >
<div class="js-details-container">
<div class="position-relative d-flex width-full overflow-hidden js-build-in" data-build-margin-bottom="45">
<div class="position-absolute top-0 right-0 left-0 readme-hero--guides__background" style="background-color:#AD677F"></div>
<div class="position-relative d-flex flex-column-reverse flex-lg-row flex-justify-between container-readme mx-auto">
<div class="position-relative col-lg-6 d-flex flex-column flex-justify-center p-responsive-readme tmp-mt-6 tmp-mt-lg-n2 tmp-mb-6 tmp-mb-lg-12 tmp-mb-xl-9 readme-hero__text">
<div class="width-full height-full d-flex flex-column flex-justify-center tmp-pt-lg-12">
<div class="tmp-mb-4 tmp-mb-md-6 tmp-mb-xl-9">
<a href="/readme" aria-label="ReadME Project Homepage" class="readme-logo-link--inverted">
<svg xmlns="http://www.w3.org/2000/svg" width="137" height="50" viewBox="0 0 137 52" fill="currentColor" aria-hidden="true" class="d-block readme-logo">
<path d="M74 31.097h1.784v-4.52h5.779v4.52h1.8v-4.175c0-.773-.278-1.282-1.178-1.282h-.606v-.115c1.048-.378 1.752-1.413 1.752-2.86 0-2.153-1.13-3.55-3.504-3.55H74v11.982zm1.784-6.016v-4.405h3.65c1.212 0 1.998.543 1.998 1.693v1.003c0 1.019-.704 1.71-1.997 1.71h-3.65zM85.073 26.758c0 2.744 1.523 4.503 4.093 4.503 2.03 0 3.568-1.118 3.912-2.794h-1.67c-.261.855-1.08 1.446-2.226 1.446-1.424 0-2.373-.92-2.373-2.284v-.477h6.17a8.99 8.99 0 00.066-.937c0-2.449-1.555-3.928-3.895-3.928-2.489 0-4.077 1.644-4.077 4.47zm1.736-.822v-.197c0-1.25.95-2.104 2.324-2.104 1.326 0 2.21.822 2.21 2.021v.28h-4.534zM94.392 28.615c0 1.594 1.032 2.646 2.75 2.646 1.392 0 2.505-.624 2.865-1.561h.115l.016.41c.049.625.328.987 1.228.987h1.555v-1.233h-1.211v-4.52c0-.937-.41-3.057-3.372-3.057-2.112 0-3.487 1.02-3.602 2.827h1.67c.049-.904.655-1.48 1.85-1.48 1.047 0 1.768.445 1.768 1.677v.625h-2.505c-1.915 0-3.127.97-3.127 2.679zm1.72-.362c0-.674.572-1.15 1.62-1.15h2.292v.41c0 1.43-.917 2.4-2.407 2.4-.9 0-1.506-.394-1.506-1.2v-.46zM107.489 31.261c1.358 0 2.471-.608 3.028-1.693h.114l.197 1.529h1.506V19h-1.703v5.079h-.114c-.508-1.036-1.555-1.677-3.028-1.677-2.21 0-3.536 1.595-3.536 4.438 0 2.794 1.309 4.421 3.536 4.421zm.54-1.397c-1.506 0-2.341-.887-2.341-2.219v-1.627c0-1.38.9-2.219 2.341-2.219 1.555 0 2.602 1.003 2.602 2.548v.97c0 1.528-1.031 2.547-2.602 2.547zM114.377 31.097h1.752v-6.098l-.148-3.484h.115l4.207 9.368 4.19-9.368h.099l-.131 3.468v6.114h1.735V19.115h-2.308l-3.552 8.152h-.099l-3.536-8.152h-2.324v11.982zM128.489 31.097h8.054v-1.595h-6.269v-3.83h5.483v-1.511h-5.483v-3.452h6.269v-1.594h-8.054v11.982zM74 49.097h1.784V44.84h3.503c2.488 0 3.814-1.447 3.814-3.863 0-2.366-1.244-3.862-3.814-3.862H74v11.982zm1.784-5.786V38.76h3.52c1.146 0 1.915.575 1.915 1.643v1.134c0 1.036-.72 1.775-2.063 1.775h-3.372zM86.37 40.452c-1.309 0-1.489.805-1.489 1.479v7.166h1.686v-7.232h2.783v-1.413h-2.98zM89.853 44.774c0 2.761 1.588 4.487 4.174 4.487 2.636 0 4.175-1.792 4.175-4.487 0-2.86-1.736-4.487-4.175-4.487-2.52 0-4.174 1.677-4.174 4.487zm1.719.707v-1.348c0-1.48.999-2.416 2.455-2.416 1.408 0 2.44.937 2.44 2.416v1.348c0 1.545-1.064 2.367-2.44 2.367-1.358 0-2.455-.806-2.455-2.367zM100.327 37v2.038h1.686V37h-1.686zm0 3.452v10.025h-1.85v1.364h2.03c1.489 0 1.489-1.084 1.489-1.495v-1.71l.017-8.184h-1.686zM103.889 44.758c0 2.744 1.522 4.503 4.092 4.503 2.03 0 3.569-1.118 3.912-2.794h-1.669c-.262.855-1.081 1.446-2.226 1.446-1.425 0-2.374-.92-2.374-2.284v-.477h6.171c.033-.28.066-.657.066-.937 0-2.449-1.555-3.928-3.896-3.928-2.488 0-4.076 1.644-4.076 4.47zm1.735-.822v-.197c0-1.25.949-2.104 2.324-2.104 1.326 0 2.21.822 2.21 2.022v.279h-4.534zM121.389 46.089h-1.67c-.196 1.085-1.031 1.759-2.226 1.759-1.408 0-2.374-.888-2.374-2.334v-1.348c0-1.446.933-2.449 2.374-2.449 1.08 0 1.931.526 2.193 1.644h1.686c-.278-1.858-1.751-3.074-3.814-3.074-2.472 0-4.158 1.627-4.158 4.504 0 2.728 1.523 4.47 4.109 4.47 2.128 0 3.618-1.2 3.88-3.172zM125.422 41.865h1.784v-1.413h-1.784V37.64h-1.669v2.81h-1.556v1.414h1.556V47.7c0 .838.36 1.397 1.424 1.397h2.029v-1.38h-1.784v-5.852z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 23C4 9.5 15 0 32 0v9c-8 0-15 3.5-15 14h13v26h-8v-4h-4v4h-3v-4h-4v-4H7v4h4v4H4V33h4v-4H4v-6zm10 12h4v4h-4v-4z"></path>
<path d="M4 29H0v4h4v-4z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36 23C36 9.5 47 0 64 0v9c-8 0-15 3.5-15 14h13v18h4v4h-4v4h-5v-4h4v-4h-4v4h-4v4H43v-4h4v-4h-4v-4h-4v4h4v4h-4v4h-3V23zm15 13v-4h-4v4h4z"></path>
<path d="M81.97 1.115H73V2.71h3.601v10.388h1.768V2.709h3.602V1.115zM83.388 13.097h1.686V8.51c0-1.676.933-2.794 2.373-2.794 1.212 0 1.9.723 1.9 2.252v5.128h1.702V7.804c0-2.136-1.065-3.517-2.98-3.517-1.276 0-2.34.641-2.88 1.742h-.115V1h-1.686v12.097zM92.113 8.758c0 2.744 1.523 4.503 4.093 4.503 2.03 0 3.568-1.118 3.912-2.794h-1.67c-.262.855-1.08 1.446-2.226 1.446-1.424 0-2.373-.92-2.373-2.284v-.477h6.171c.033-.28.065-.657.065-.937 0-2.449-1.555-3.928-3.896-3.928-2.488 0-4.076 1.644-4.076 4.47zm1.736-.822v-.197c0-1.25.949-2.104 2.324-2.104 1.326 0 2.21.822 2.21 2.021v.28h-4.534z"></path>
</svg>
</a>
</div>
<h1 class="tmp-mb-6 color-text-white readme-heading-1 readme-heading--condensed">
What we talk about when we talk about ‘root cause’
</h1>
<p class="col-xl-11 tmp-mb-lg-6 readme-subheading fgColor-onEmphasis">
It’s a lot more nuanced than you might think.
</p>
</div>
</div>
<div class="position-relative col-lg-6 readme-hero__img">
<picture class="d-flex">
<source srcset="//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=1200&amp;fm=webp 1200w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=960&amp;fm=webp 960w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=720&amp;fm=webp 720w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=600&amp;fm=webp 600w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=480&amp;fm=webp 480w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=240&amp;fm=webp 240w" sizes="(max-width: 755px) 100vw, 45vw" type="image/webp"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=1200&amp;fm=jpg 1200w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=960&amp;fm=jpg 960w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=720&amp;fm=jpg 720w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=600&amp;fm=jpg 600w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=480&amp;fm=jpg 480w,//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=240&amp;fm=jpg 240w" sizes="(max-width: 755px) 100vw, 45vw" type="image/jpeg"></source>
<img class="d-block width-full height-full object-fit-cover readme-mask--thumbnail-1" width="1200" height="1400" alt="" src="//images.ctfassets.net/s5uo95nf6njh/7kiggG6TeT59qsYmgNp0gb/1a5e340854e99b77f84501eb2470d4f8/Documentation_II_ASSIGNED_John_Allspaw.jpg?w=1200&amp;fm=jpg" />
</picture>
<p class="position-lg-absolute z-2 bottom-0 right-0 p-responsive-readme tmp-pt-4 tmp-pl-lg-6 pr-xl-0 text-md-right text-mono f6-mktg tmp-mb-6 tmp-mb-lg-0 readme-artist-credit--guides" style="background-color:#AD677F;">
Artwork: Micha Huigen
</p>
</div>
</div>
</div>
<div class="position-relative z-1 tmp-mt-6 tmp-mb-10 tmp-mb-md-0 readme-bio">
<div class="container-xl p-responsive">
<div class="readme-bio-text d-flex flex-items-center">
<div class="position-relative d-inline-flex flex-items-center flex-justify-center tmp-mr-7 tmp-mr-md-4 tmp-mt-n3 tmp-mb-n3">
<div class="overflow-hidden circle d-inline-flex flex-items-center flex-justify-center" style="width:120px; height:120px;">
<picture>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=240&amp;fm=avif 240w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=192&amp;fm=avif 192w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=144&amp;fm=avif 144w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=120&amp;fm=avif 120w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=96&amp;fm=avif 96w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=48&amp;fm=avif 48w" sizes="120px" type="image/avif"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=240&amp;fm=webp 240w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=192&amp;fm=webp 192w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=144&amp;fm=webp 144w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=120&amp;fm=webp 120w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=96&amp;fm=webp 96w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=48&amp;fm=webp 48w" sizes="120px" type="image/webp"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=240&amp;fm=jpg 240w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=192&amp;fm=jpg 192w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=144&amp;fm=jpg 144w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=120&amp;fm=jpg 120w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=96&amp;fm=jpg 96w,//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=48&amp;fm=jpg 48w" sizes="120px" type="image/jpeg"></source>
<img class="width-full height-auto d-block" width="240" height="240" alt="Photo of John Allspaw" src="//images.ctfassets.net/s5uo95nf6njh/3xqmKpMYyRZqsDYeBuKRMs/c4e9aaa98c14a9ef06d3695788a8342e/127218702-1a3a1d04-7d1b-4361-b889-82fa23ec1b15.jpeg?w=240&amp;fm=jpg" />
</picture>
</div>
<div class="position-absolute readme-bg-white rounded box-shadow-card-border-mktg" style="transform: translateX(-50%) translateY(-50%); top:100%; left: 100%; width:60px; height:60px; padding: 0.75rem">
<picture>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=72&amp;fm=avif 72w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=57&amp;fm=avif 57w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=43&amp;fm=avif 43w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=36&amp;fm=avif 36w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=28&amp;fm=avif 28w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=14&amp;fm=avif 14w" sizes="36px" type="image/avif"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=72&amp;fm=webp 72w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=57&amp;fm=webp 57w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=43&amp;fm=webp 43w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=36&amp;fm=webp 36w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=28&amp;fm=webp 28w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=14&amp;fm=webp 14w" sizes="36px" type="image/webp"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=72&amp;fm=jpg 72w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=57&amp;fm=jpg 57w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=43&amp;fm=jpg 43w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=36&amp;fm=jpg 36w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=28&amp;fm=jpg 28w,//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=14&amp;fm=jpg 14w" sizes="36px" type="image/jpeg"></source>
<img class="width-full height-auto d-block" width="72" height="72" alt="Adaptive Capacity Labs logo" src="//images.ctfassets.net/s5uo95nf6njh/2Z4YFizAwDZ8aZoBKaLKro/50d1cd0098af7704be0607f6f1aad94f/ACL_image.jpeg?w=72&amp;fm=jpg" />
</picture>
</div>
</div>
<p class="mb-0 py-2 tmp-py-md-5">
<strong class="d-block d-md-inline text-bold">John Allspaw</strong><span class="text-mono text-uppercase f5-mktg readme-text-gray-dark" style="letter-spacing:0.05em;"><span class="d-none d-md-inline"> // </span>Cofounder, Adaptive Capacity Labs</span>
</p>
</div>
</div>
</div>
<div class="p-responsive-readme container-xl mx-auto tmp-mt-6 tmp-mt-md-10 tmp-pb-md-12">
<div class="js-build-in" data-build-margin-bottom="75" data-build-non-decorative="true">
<div class="color-bg-subtle position-fixed left-0 top-0 width-full z-2 readme-navbar-dropdown">
<div class="tmp-px-3 tmp-pl-md-8 tmp-pr-lg-6 tmp-py-4 tmp-py-lg-5 d-flex flex-justify-between flex-items-center">
<a href="/readme" tabindex="" class="d-flex flex-items-center f4-mktg link-blue-readme"><svg xmlns="http://www.w3.org/2000/svg" width="66" height="28" viewBox="0 0 66 49" fill="currentColor">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 23C4 9.5 15 0 32 0v9c-8 0-15 3.5-15 14h13v26h-8v-4h-4v4h-3v-4h-4v-4H7v4h4v4H4V33h4v-4H4v-6zm10 12h4v4h-4v-4z"></path>
<path d="M4 29H0v4h4v-4z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36 23C36 9.5 47 0 64 0v9c-8 0-15 3.5-15 14h13v18h4v4h-4v4h-5v-4h4v-4h-4v4h-4v4H43v-4h4v-4h-4v-4h-4v4h4v4h-4v4h-3V23zm15 13v-4h-4v4h4z"></path>
</svg>The ReadME Project</a>
<button id="readme-nav-menu-dropdown" aria-label="Open ReadME Project Menu" data-aria-label-closed="Open ReadME Project Menu" data-aria-label-open="Close ReadME Project Menu" aria-expanded="false" type="button" data-view-component="true" class="no-underline readme-nav__button js-details-target btn-link"> <div class="d-flex flex-items-center">
<svg height="20" aria-hidden="true" data-component="Octicon" viewBox="0 0 16 16" version="1.1" width="20" data-view-component="true" class="octicon octicon-three-bars">
<path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75Zm0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75ZM1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5Z"></path>
</svg>
</div>
</button> <tool-tip id="tooltip-11552f7f-4440-4a4b-aea5-acfde0752332" for="readme-nav-menu-dropdown" popover="manual" data-direction="s" data-type="description" data-view-component="true" class="sr-only position-absolute">Open ReadME Project Menu</tool-tip>
</div>
</div>
<nav class="position-fixed top-0 left-0 width-full height-full overflow-auto color-fg-on-emphasis readme-nav" aria-label="ReadME Project Navigation">
<div class="position-absolute top-0 right-0 bottom-0 left-0 readme-nav__overlay"></div>
<div class="position-relative width-full box-shadow-default-mktg readme-bg-black--pattern readme-nav__body">
<div class="tmp-ml-md-6 border-left readme-border-fade--white d-flex flex-column flex-justify-between" style="min-height:60vh">
<div class="d-flex flex-items-center flex-justify-between tmp-px-3 tmp-pl-md-8 tmp-pr-lg-6 tmp-py-4 tmp-ml-md-n6 border-bottom readme-border-fade--white">
<a href="/readme" aria-label="ReadME Project Homepage" class="d-block readme-logo-link--inverted js-details-initial-focus">
<svg xmlns="http://www.w3.org/2000/svg" width="132" height="50" viewBox="0 0 137 52" fill="currentColor" aria-hidden="true" class="d-block readme-logo">
<path d="M74 31.097h1.784v-4.52h5.779v4.52h1.8v-4.175c0-.773-.278-1.282-1.178-1.282h-.606v-.115c1.048-.378 1.752-1.413 1.752-2.86 0-2.153-1.13-3.55-3.504-3.55H74v11.982zm1.784-6.016v-4.405h3.65c1.212 0 1.998.543 1.998 1.693v1.003c0 1.019-.704 1.71-1.997 1.71h-3.65zM85.073 26.758c0 2.744 1.523 4.503 4.093 4.503 2.03 0 3.568-1.118 3.912-2.794h-1.67c-.261.855-1.08 1.446-2.226 1.446-1.424 0-2.373-.92-2.373-2.284v-.477h6.17a8.99 8.99 0 00.066-.937c0-2.449-1.555-3.928-3.895-3.928-2.489 0-4.077 1.644-4.077 4.47zm1.736-.822v-.197c0-1.25.95-2.104 2.324-2.104 1.326 0 2.21.822 2.21 2.021v.28h-4.534zM94.392 28.615c0 1.594 1.032 2.646 2.75 2.646 1.392 0 2.505-.624 2.865-1.561h.115l.016.41c.049.625.328.987 1.228.987h1.555v-1.233h-1.211v-4.52c0-.937-.41-3.057-3.372-3.057-2.112 0-3.487 1.02-3.602 2.827h1.67c.049-.904.655-1.48 1.85-1.48 1.047 0 1.768.445 1.768 1.677v.625h-2.505c-1.915 0-3.127.97-3.127 2.679zm1.72-.362c0-.674.572-1.15 1.62-1.15h2.292v.41c0 1.43-.917 2.4-2.407 2.4-.9 0-1.506-.394-1.506-1.2v-.46zM107.489 31.261c1.358 0 2.471-.608 3.028-1.693h.114l.197 1.529h1.506V19h-1.703v5.079h-.114c-.508-1.036-1.555-1.677-3.028-1.677-2.21 0-3.536 1.595-3.536 4.438 0 2.794 1.309 4.421 3.536 4.421zm.54-1.397c-1.506 0-2.341-.887-2.341-2.219v-1.627c0-1.38.9-2.219 2.341-2.219 1.555 0 2.602 1.003 2.602 2.548v.97c0 1.528-1.031 2.547-2.602 2.547zM114.377 31.097h1.752v-6.098l-.148-3.484h.115l4.207 9.368 4.19-9.368h.099l-.131 3.468v6.114h1.735V19.115h-2.308l-3.552 8.152h-.099l-3.536-8.152h-2.324v11.982zM128.489 31.097h8.054v-1.595h-6.269v-3.83h5.483v-1.511h-5.483v-3.452h6.269v-1.594h-8.054v11.982zM74 49.097h1.784V44.84h3.503c2.488 0 3.814-1.447 3.814-3.863 0-2.366-1.244-3.862-3.814-3.862H74v11.982zm1.784-5.786V38.76h3.52c1.146 0 1.915.575 1.915 1.643v1.134c0 1.036-.72 1.775-2.063 1.775h-3.372zM86.37 40.452c-1.309 0-1.489.805-1.489 1.479v7.166h1.686v-7.232h2.783v-1.413h-2.98zM89.853 44.774c0 2.761 1.588 4.487 4.174 4.487 2.636 0 4.175-1.792 4.175-4.487 0-2.86-1.736-4.487-4.175-4.487-2.52 0-4.174 1.677-4.174 4.487zm1.719.707v-1.348c0-1.48.999-2.416 2.455-2.416 1.408 0 2.44.937 2.44 2.416v1.348c0 1.545-1.064 2.367-2.44 2.367-1.358 0-2.455-.806-2.455-2.367zM100.327 37v2.038h1.686V37h-1.686zm0 3.452v10.025h-1.85v1.364h2.03c1.489 0 1.489-1.084 1.489-1.495v-1.71l.017-8.184h-1.686zM103.889 44.758c0 2.744 1.522 4.503 4.092 4.503 2.03 0 3.569-1.118 3.912-2.794h-1.669c-.262.855-1.081 1.446-2.226 1.446-1.425 0-2.374-.92-2.374-2.284v-.477h6.171c.033-.28.066-.657.066-.937 0-2.449-1.555-3.928-3.896-3.928-2.488 0-4.076 1.644-4.076 4.47zm1.735-.822v-.197c0-1.25.949-2.104 2.324-2.104 1.326 0 2.21.822 2.21 2.022v.279h-4.534zM121.389 46.089h-1.67c-.196 1.085-1.031 1.759-2.226 1.759-1.408 0-2.374-.888-2.374-2.334v-1.348c0-1.446.933-2.449 2.374-2.449 1.08 0 1.931.526 2.193 1.644h1.686c-.278-1.858-1.751-3.074-3.814-3.074-2.472 0-4.158 1.627-4.158 4.504 0 2.728 1.523 4.47 4.109 4.47 2.128 0 3.618-1.2 3.88-3.172zM125.422 41.865h1.784v-1.413h-1.784V37.64h-1.669v2.81h-1.556v1.414h1.556V47.7c0 .838.36 1.397 1.424 1.397h2.029v-1.38h-1.784v-5.852z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 23C4 9.5 15 0 32 0v9c-8 0-15 3.5-15 14h13v26h-8v-4h-4v4h-3v-4h-4v-4H7v4h4v4H4V33h4v-4H4v-6zm10 12h4v4h-4v-4z"></path>
<path d="M4 29H0v4h4v-4z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36 23C36 9.5 47 0 64 0v9c-8 0-15 3.5-15 14h13v18h4v4h-4v4h-5v-4h4v-4h-4v4h-4v4H43v-4h4v-4h-4v-4h-4v4h4v4h-4v4h-3V23zm15 13v-4h-4v4h4z"></path>
<path d="M81.97 1.115H73V2.71h3.601v10.388h1.768V2.709h3.602V1.115zM83.388 13.097h1.686V8.51c0-1.676.933-2.794 2.373-2.794 1.212 0 1.9.723 1.9 2.252v5.128h1.702V7.804c0-2.136-1.065-3.517-2.98-3.517-1.276 0-2.34.641-2.88 1.742h-.115V1h-1.686v12.097zM92.113 8.758c0 2.744 1.523 4.503 4.093 4.503 2.03 0 3.568-1.118 3.912-2.794h-1.67c-.262.855-1.08 1.446-2.226 1.446-1.424 0-2.373-.92-2.373-2.284v-.477h6.171c.033-.28.065-.657.065-.937 0-2.449-1.555-3.928-3.896-3.928-2.488 0-4.076 1.644-4.076 4.47zm1.736-.822v-.197c0-1.25.949-2.104 2.324-2.104 1.326 0 2.21.822 2.21 2.021v.28h-4.534z"></path>
</svg>
</a>
<button aria-label="Close ReadME Project Navigation" aria-expanded="false" type="button" data-view-component="true" class="readme-logo-link--inverted no-underline readme-nav__button js-details-target btn-link"> <div class="d-flex flex-items-center">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="">
<rect x="6.85742" y="6.85693" width="3.42859" height="3.42859"></rect>
<rect x="10.2861" y="10.2856" width="3.42859" height="3.42859"></rect>
<rect x="13.7139" y="13.7144" width="3.42859" height="3.42859"></rect>
<rect x="13.7139" y="6.85693" width="3.42859" height="3.42859"></rect>
<rect x="6.85742" y="13.7144" width="3.42859" height="3.42859"></rect>
<rect x="3.42871" y="17.1431" width="3.42859" height="3.42859"></rect>
<rect x="17.1426" y="17.1431" width="3.42859" height="3.42859"></rect>
<rect x="20.5713" y="20.5713" width="3.42859" height="3.42859"></rect>
<rect y="20.5713" width="3.42859" height="3.42859"></rect>
<rect x="20.5713" width="3.42859" height="3.42859"></rect>
<rect width="3.42859" height="3.42859"></rect>
<rect x="3.42871" y="3.42871" width="3.42859" height="3.42859"></rect>
<rect x="17.1426" y="3.42871" width="3.42859" height="3.42859"></rect>
</svg>
</div>
</button> </div>
<div class="flex-1 d-lg-flex width-full">
<div class="col-lg-7 col-xl-8 tmp-pb-3 tmp-pb-lg-0 border-lg-right border-bottom border-lg-bottom-0 readme-border-fade--white">
<h2 id="storyType" class="readme-heading--condensed f3-mktg text-semibold text-uppercase tmp-px-3 tmp-px-lg-4 tmp-py-3 border-bottom readme-border-fade--white">
Browse by story type
</h2>
<ul aria-labelledby="storyType" class="d-inline-block list-style-none py-2 tmp-py-lg-3 readme-nav__list">
<li class="readme-heading-1 readme-heading--condensed text-uppercase tmp-px-3 tmp-px-lg-4 py-2 tmp-py-lg-3 readme-nav__list-item">
<a class="d-block width-full color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" href="/readme/featured">
<span class="d-inline-block">Featured Articles</span>
</a> </li>
<li class="readme-heading-1 readme-heading--condensed text-uppercase tmp-px-3 tmp-px-lg-4 py-2 tmp-py-lg-3 readme-nav__list-item">
<a class="d-block width-full color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" href="/readme/stories">
<span class="d-inline-block">Developer Stories</span>
</a> </li>
<li class="readme-heading-1 readme-heading--condensed text-uppercase tmp-px-3 tmp-px-lg-4 py-2 tmp-py-lg-3 readme-nav__list-item">
<a class="d-block width-full color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" href="/readme/guides">
<span class="d-inline-block">Guides</span>
</a> </li>
<li class="readme-heading-1 readme-heading--condensed text-uppercase tmp-px-3 tmp-px-lg-4 py-2 tmp-py-lg-3 readme-nav__list-item">
<a class="d-block width-full color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" href="/readme/podcast">
<span class="d-inline-block">The ReadMe Podcast</span>
</a> </li>
</ul>
</div>
<div class="d-flex flex-column col-lg-5 col-xl-4">
<div class="d-flex flex-justify-between tmp-px-3 tmp-pr-lg-6 tmp-pl-lg-4 tmp-py-3 border-bottom readme-border-fade--white">
<h2 id="exploreTopics" class="readme-heading--condensed f3-mktg text-semibold text-uppercase">Explore Topics</h2>
<a aria-labelledby="exploreTopics" href="/readme/topics" class="arrow-target-mktg no-underline text-mono text-uppercase f5-mktg lh-condensed readme-logo-link--inverted" style="letter-spacing:0.05em">
See all topics <svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg octicon" 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>
<ul class="py-2 py-lg-0 list-style-none height-full d-flex flex-column flex-justify-around readme-nav__list">
<li class="flex-1 d-flex flex-items-center readme-heading-3 tmp-px-3 tmp-px-lg-4 border-lg-bottom readme-border-fade--white readme-nav__list-item">
<a class="d-block width-full tmp-py-3 tmp-py-lg-4 color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" data-test-selector="topic-link" href="/readme/artificial-intelligence">
<span>AI</span>
</a> </li>
<li class="flex-1 d-flex flex-items-center readme-heading-3 tmp-px-3 tmp-px-lg-4 border-lg-bottom readme-border-fade--white readme-nav__list-item">
<a class="d-block width-full tmp-py-3 tmp-py-lg-4 color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" data-test-selector="topic-link" href="/readme/application-security">
<span>Application Security</span>
</a> </li>
<li class="flex-1 d-flex flex-items-center readme-heading-3 tmp-px-3 tmp-px-lg-4 border-lg-bottom readme-border-fade--white readme-nav__list-item">
<a class="d-block width-full tmp-py-3 tmp-py-lg-4 color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" data-test-selector="topic-link" href="/readme/career-development">
<span>Career Development</span>
</a> </li>
<li class="flex-1 d-flex flex-items-center readme-heading-3 tmp-px-3 tmp-px-lg-4 border-lg-bottom readme-border-fade--white readme-nav__list-item">
<a class="d-block width-full tmp-py-3 tmp-py-lg-4 color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" data-test-selector="topic-link" href="/readme/devops-automation">
<span>DevOps &amp; Automation</span>
</a> </li>
<li class="flex-1 d-flex flex-items-center readme-heading-3 tmp-px-3 tmp-px-lg-4 border-lg-bottom readme-border-fade--white readme-nav__list-item">
<a class="d-block width-full tmp-py-3 tmp-py-lg-4 color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" data-test-selector="topic-link" href="/readme/maintainer">
<span>Maintainer</span>
</a> </li>
<li class="flex-1 d-flex flex-items-center readme-heading-3 tmp-px-3 tmp-px-lg-4 readme-nav__list-item">
<a class="d-block width-full tmp-py-3 tmp-py-lg-4 color-fg-on-emphasis no-underline readme-underline--blue readme-nav__list-link" data-test-selector="topic-link" href="/readme/programming">
<span>Programming</span>
</a> </li>
</ul>
</div>
</div>
<div class="tmp-px-3 tmp-pl-md-8 tmp-pr-lg-4 tmp-py-4 tmp-ml-md-n6 border-top readme-border-fade--white">
<ul class="list-style-none text-mono text-uppercase f5-mktg readme-nav__list" style="letter-spacing:0.05em">
<li class="d-md-inline-block mb-2 mb-md-0 readme-nav__list-item">
<a class="color-fg-on-emphasis readme-nav__list-link" href="/readme/nominate">Nominate a developer</a><span class="d-none d-md-inline-block tmp-ml-4 tmp-mr-3" style="opacity:0.3">//</span>
</li>
<li class="d-md-inline-block readme-nav__list-item">
<a class="color-fg-on-emphasis readme-nav__list-link" href="/sponsors">Support the community</a>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="position-md-relative col-md-2 float-md-left readme-about ">
<div class="position-relative z-1 tmp-mb-md-6 tmp-mb-md-6 tmp-pt-4 border-top f5-mktg text-mono readme-text-gray-dark" style="border-color:#4969ED !important;">
<p><strong class="readme-text-black">The ReadME Project</strong> amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day.</p>
</div>
</div>
<div class="position-md-sticky col-md-2 top-md-12 tmp-mt-4 tmp-mb-8 tmp-my-md-0 float-md-left readme-sharing" style="clear:left;">
<ul class="list-style-none d-flex flex-md-column">
<li class="tmp-mr-4 tmp-mr-md-0 tmp-mb-md-4">
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Froot-cause&amp;text=" target="_blank" rel="noopener" aria-label="Share on Twitter" data-ga-click="ReadME Stories, click, ref_page:/readme/guides/root-cause;ref_cta:share on Twitter;ref_loc:Profile sidebar" class="d-flex flex-justify-center flex-items-center border color-border-subtle circle readme-social-link" style="width:50px;height:50px">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="20" aria-hidden="true" class="d-block link-blue-readme"><path fill="currentColor" d="M9.332 6.925 14.544 1h-1.235L8.783 6.145 5.17 1H1l5.466 7.78L1 14.993h1.235l4.78-5.433 3.816 5.433H15L9.332 6.925ZM7.64 8.848l-.554-.775L2.68 1.91h1.897l3.556 4.975.554.775 4.622 6.466h-1.897L7.64 8.848Z"></path></svg>
</a>
</li>
<li class="tmp-mr-4 tmp-mr-md-0 tmp-mb-md-4">
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Froot-cause&amp;quote=" target="_blank" rel="noopener" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;" aria-label="Share on Facebook" data-ga-click="ReadME Stories, click, ref_page:/readme/guides/root-cause;ref_cta:share on Facebook;ref_loc:Profile sidebar" class="d-flex flex-justify-center flex-items-center border color-border-subtle circle readme-social-link" style="width:50px;height:50px">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.3 15.4" aria-hidden="true" class="d-block link-blue-readme" height="20"><path d="M14.5 0H.8a.88.88 0 0 0-.8.9v13.6a.88.88 0 0 0 .8.9h7.3v-6h-2V7.1h2V5.4a2.87 2.87 0 0 1 2.5-3.1h.5a10.87 10.87 0 0 1 1.8.1v2.1h-1.3c-1 0-1.1.5-1.1 1.1v1.5h2.3l-.3 2.3h-2v5.9h3.9a.88.88 0 0 0 .9-.8V.8a.86.86 0 0 0-.8-.8z" fill="currentColor"></path></svg>
</a>
</li>
<li class="tmp-mr-4 tmp-mr-md-0 tmp-mb-md-4">
<a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Froot-cause" target="_blank" rel="noopener" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;" aria-label="Share on LinkedIn" data-ga-click="ReadME Stories, click, ref_page:/readme/guides/root-cause;ref_cta:share on LinkedIn;ref_loc:Profile sidebar" class="d-flex flex-justify-center flex-items-center border color-border-subtle circle readme-social-link" style="width:50px;height:50px">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" aria-hidden="true" class="d-block link-blue-readme" height="20"><path d="M3.94 2A2 2 0 1 1 2 0a2 2 0 0 1 1.94 2zM4 5.48H0V18h4zm6.32 0H6.34V18h3.94v-6.57c0-3.66 4.77-4 4.77 0V18H19v-7.93c0-6.17-7.06-5.94-8.72-2.91z" fill="currentColor"></path></svg>
</a>
</li>
</ul>
</div>
<div class="f3-mktg readme-story-body readme-story-body--guide" data-hpc>
<p>What we talk about when we talk about ‘root cause’? To begin, consider this passage from <i>Thinking By Machine (deLatil, 1956) p.153: </i></p>
<p><i>“Imagine an iron bar thrust into an electric furnace. The bar lengthens, and the “cause” of the lengthening is said to be the heat of the furnace. One is astonished—why should it not be the introduction of the bar into the furnace? Or the existence of the bar? Or the fact that the bar had been previously kept at a lower temperature? None of these possibilities can be termed secondary causes; they are all primary determining causes without which the lengthening phenomenon could not have occurred.”</i></p>
<p>In recent years, the understanding that failure in complex systems requires multiple contributors coming together to produce these surprising events that we call <i>incidents </i>has gained traction. Much has been <a href="https://github.com/adaptivecapacitylabs/CritiquesOnRootCause">written</a> and <a href="https://www.youtube.com/watch?v=5-2jMlsPqc8&amp;t=1376s">presented</a> about this hallmark phenomena of complex systems, and while this perspective isn’t yet considered a “mainstream” view, I suspect it aligns with what all experienced software engineers intuitively understand.</p>
<p>In his seminal paper <i>How Complex Systems Fail </i>(Cook, 1998)<i>, </i>my colleague Dr. Richard Cook put it this way:</p>
<p><i>3) Catastrophe requires multiple failures—single point failures are not enough. The array of defenses works. System operations are generally successful. Overt catastrophic failure occurs when small, apparently innocuous failures join to create opportunity for a systemic accident. Each of these small failures is necessary to cause catastrophe but only the combination is sufficient to permit failure. Put another way, there are many more failure opportunities than overt system accidents. Most initial failure trajectories are blocked by designed system safety components. Trajectories that reach the operational level are mostly blocked, usually by practitioners. </i></p>
<p>Another description of this perspective was made by <a href="https://www.youtube.com/watch?v=5-2jMlsPqc8">Ryan Kitchens at SRECon Americas in 2019</a>:</p>
<p><i>“There is no root cause. The problem with this term isn't just that it's singular or that the word root is misleading: there's more. Trying to find causes at all is problematic...looking for causes to explain an incident limits what you'll find and learn. And the irony is that root cause analysis is built on this idea that incidents can be fully comprehended. They can't. We already have a better phrase for this, and it sounds way cooler: it's called a perfect storm. In this way, separating out causes and breaking down incidents into their multiple contributing factors, we're able to see that the things that led to an incident are either always or transiently present. An incident is just the first time they combined into a perfect storm of normal things that went wrong at the same time.”</i></p>
<p>From an abstract perspective, language that describes causality is, ostensibly, <i>value-neutral</i>. But use of the term ‘root cause’ is almost always used in the context of untoward or negative outcomes, and not in situations where an outcome is deemed a success. Rarely does someone demand a search for the ‘root cause’ of a successful product launch, for example. It seems widely accepted that successful outcomes in complex systems come from many influences that come together in a positive way. Failures aren’t often viewed the same way.</p>
<p>Rather than restating what’s been written and spoken about (such as the references linked above), I’d like to explore in this article what seems to keep people using the term ‘root cause’ despite the growing skepticism of its value. </p>
<p>What makes this term attractive for the people using it? Is it simply used as shorthand language, as a way to summarize an otherwise too-detailed explanation for the reader or listener? Or is it used to simplify a story, to redirect people’s attention to a specific and bounded area so something—anything—practical can be done?</p>
<p>Research literature on this topic reveals that in descriptions of accidents and incidents, use of the term ‘root cause’ (or even multiple ‘root’ causes) serves<i> </i><a href="https://surfingcomplexity.blog/2021/07/18/whats-allowed-to-count-as-a-cause/"><i>social </i>purposes</a> more than <i>technical </i>ones. </p>
<h2>Providing reassurance about the future</h2>
<p>Labeling something as a ‘root cause’<i> </i>helps people cope with the (sometimes implicit) anxiety that comes along with the experience of incidents. When people are observing their systems working well<i> </i>(or at least well <i>enough</i>), and a seemingly out-of-nowhere incident happens, the contrast can be jarring, to say the least. We can go from feeling confident about how well we understand our technical systems to suddenly feeling astonished and quite uncertain.</p>
<p>The lived experience of people responding to these situations can leave them wanting for something—<i>anything</i>—to help them feel better about the future. Likewise, technical leaders are also not immune to the feeling of unease<i> </i>that incidents tend to bring with them. If this can happen unexpectedly, what else can? Do these events represent harbingers of more significant ones to come? What do these incidents say about the organization’s abilities...or my own leadership skills?</p>
<p>Incidents have a way of producing genuine and unsettling dismay; it’s understandable to search for an explanation, a cause, that we can be sure of. </p>
<p>In this way, labeling some specific part of the story as a 'root cause' helps us. It provides some comfort that we’ve got a handle on things we previously didn’t. There’s a term for this phenomenon: <i>Nietzschean anxiety. </i>It reflects what the German philosopher wrote in <i>Twilight of the Idols:</i></p>
<p><i>“With the unknown, one is confronted with danger, discomfort, and care; the first instinct is to abolish these painful states. First principle: any explanation is better than none. Because it is fundamentally just our desire to be rid of an unpleasant uncertainty, we are not very particular about how we get rid of it: the first interpretation that explains the unknown in familiar terms feels so good that one “accepts it as true”….  The “why” shall, if at all possible, result not in identifying the cause for its own sake, but in identifying a cause that is comforting, liberating, and relieving. A second consequence of this need is that we identify as a cause something already familiar or experienced, something already inscribed in memory. Whatever is novel or strange or never before experienced is excluded.”</i></p>
<p>In other words, our experience with incidents can be so disturbing to us that we feel a strong and immediate desire to identify what “caused” an event, so we can then do something (which typically means fixing something) in order to regain a sense of being in control. This is what John Carroll (Carroll, 1995) called <i>root cause seduction. </i></p>
<p>On the face of it, this idea seems understandable, even relatable. But we have to acknowledge that labeling something as a ‘root cause’ reflects a cherry-picked perspective; it highlights one aspect of a complex event and discounts others. The label performs a sort of sleight-of-hand or redirection like a magician might, akin to saying “look right here—don’t concern yourself with other things.”  </p>
<h2>Purposes and audiences</h2>
<p>It can be useful to understand the context in which the term “root cause” is being used. </p>
<p>Who is the author (or speaker) using it? What are they hoping to convey by using the term? Who is their audience? How do they understand the use of ‘root cause’ in the context of what they are reading? </p>
<p>If it is used in a conversation amongst engineers on the same team, it might be used simply as a way to emphasize or highlight a specific location<i> </i>they believe warrants attention. Quite often, we find this usage more to reflect a thing better conveyed as a trigger<i>, </i>rather than a cause<i>. </i>The term ‘trigger’ tends to do a better job of describing a specific dynamic that “activates” already existing conditions, some of which might have been latent in the code or architecture’s arrangement for some time.</p>
<p>If it is used in a legal agreement or other contractual documents, the term tends to intentionally have an ambiguous meaning so as to allow for flexibility of interpretation that frequently comes with legal language. </p>
<p>When it comes to articles companies publish about incidents their service(s) or products have experienced, the term ‘root cause’ tends to be used in very specific ways. The core <b>audience</b> for these public posts are both current and potential future customers. The primary <b>purpose</b> is to provide a) confidence that the company understands the event sufficiently and b) some form of commitment to improving the situation in the future. By labeling a specific component as a “root cause” (or even a finite number of “root causes”) authors of these posts can project much more certainty or confidence than if they were to acknowledge the genuine complexity of the incident.</p>
<h2>A challenge for readers and listeners
</h2>
<p>I’ll offer a few questions to consider the next time you read or hear the term ‘root cause’:</p>
<ul><li><p>What is the author (or speaker) trying to convey by using the term?</p></li><li><p>What agenda(s) might the author (or speaker) have in their version of the story, other than providing the richest description they can?</p></li><li><p>What else<i> </i>can you imagine is influencing the outcome of the story being told, besides what is deemed the ‘root cause’?</p></li><li><p>What details seem to be noticeably absent in the story you’re being told?</p></li><li><p>What questions can you imagine being dismissed or discounted by the storyteller, if you had the chance to ask them?</p></li></ul>
<p>Questions like these are garden-variety critical thinking exercises. But they might help us explore what the story doesn’t tell us, or what might be missing in the story.</p>
</div>
</div>
<div class="col-md-8 offset-md-3 tmp-mt-5 tmp-mt-md-6 tmp-mb-9 tmp-mb-md-n6 readme-signoff">
<svg height="36" aria-hidden="true" data-component="Octicon" viewBox="0 0 24 24" version="1.1" width="36" data-view-component="true" class="octicon octicon-mark-github">
<path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</div>
</div>
<div class="container-xl p-responsive-readme f3-mktg mx-auto">
<div class="col-md-8 offset-md-3">
<div class="border-top color-border-accent-emphasis text-mono color-fg-muted f4-mktg tmp-mt-5 tmp-mt-md-6 tmp-pt-5 tmp-pt-md-6 readme-postscript">
<p>Hi, I'm John. I'm a founder of <a href="https://www.adaptivecapacitylabs.com/">Adaptive Capacity Labs</a>, and the author of <a href="http://shop.oreilly.com/product/9780596518585.do">The Art of Capacity Planning</a> and <a href="http://shop.oreilly.com/product/0636920000136.do">Web Operations</a>. In 2009, I helped shape what later became known as the DevOps movement before I moved to Brooklyn, New York. My fascination with understanding how people handle challenging problems under pressure led me to my master's degree in <a href="https://lup.lub.lu.se/student-papers/search/publication/8084520">Human Factors and Systems Safety at Lund University</a> while I was CTO at Etsy. Since then, my colleagues and I have been working hard to bring perspectives and approaches from <a href="https://www.resilience-engineering-association.org/resources/where-do-i-start/">Resilience Engineering</a> to the world of software engineering and operations.</p>
</div>
</div>
</div>
<div class="readme-bg-white tmp-py-5 tmp-py-md-6 overflow-hidden">
<div class="container-xl p-responsive">
<h2 class="h5-mktg border-bottom tmp-pb-4 tmp-mb-6">
More stories
</h2>
<div class="d-md-flex gutter-sm gutter-md-spacious">
<div class="d-flex flex-column col-md-4">
<a class="d-block readme-link" data-analytics-event="{&quot;category&quot;:&quot;ReadME Stories&quot;,&quot;action&quot;:&quot;click&quot;,&quot;label&quot;:&quot;ref_page:/readme/guides/root-cause;ref_cta:From chaos to clarity: Use code visibility to illuminate unfamiliar code;ref_loc:More stories&quot;}" href="/readme/guides/code-visibility-codesee">
<figure class="tmp-mb-5 readme-link__figure js-readme-rotate">
<picture>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=1200&amp;fm=avif 1200w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=960&amp;fm=avif 960w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=720&amp;fm=avif 720w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=600&amp;fm=avif 600w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=480&amp;fm=avif 480w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=240&amp;fm=avif 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/avif"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=1200&amp;fm=webp 1200w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=960&amp;fm=webp 960w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=720&amp;fm=webp 720w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=600&amp;fm=webp 600w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=480&amp;fm=webp 480w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=240&amp;fm=webp 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/webp"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=1200&amp;fm=jpg 1200w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=960&amp;fm=jpg 960w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=720&amp;fm=jpg 720w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=600&amp;fm=jpg 600w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=480&amp;fm=jpg 480w,//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=240&amp;fm=jpg 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/jpeg"></source>
<img class="d-block height-auto width-full readme-link__img" width="1200" height="1400" loading="lazy" decoding="async" alt="Photo of Shanea Leven" src="//images.ctfassets.net/s5uo95nf6njh/4Gxy54Y7YT2Cu1gqdjFCnt/de5747fbcb146809def4d0adb48a679b/Github-Security.JPG?w=1200&amp;fm=jpg" />
</picture>
</figure>
<h3 class="readme-heading-3 tmp-mb-5">
<span class="no-underline readme-underline--green">
<span>From chaos to clarity: Use code visibility to illuminate unfamiliar code</span>
</span>
</h3>
</a>
<div class="text-mono text-uppercase color-fg-muted f5-mktg" style="letter-spacing:0.05em">
Shanea Leven // CodeSee
</div>
</div>
<div class="d-flex flex-column col-md-4">
<a class="d-block readme-link" data-analytics-event="{&quot;category&quot;:&quot;ReadME Stories&quot;,&quot;action&quot;:&quot;click&quot;,&quot;label&quot;:&quot;ref_page:/readme/guides/root-cause;ref_cta:Do your part to secure the open source supply chain;ref_loc:More stories&quot;}" href="/readme/guides/dependency-risk">
<figure class="tmp-mb-5 readme-link__figure js-readme-rotate">
<picture>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=1200&amp;fm=avif 1200w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=960&amp;fm=avif 960w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=720&amp;fm=avif 720w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=600&amp;fm=avif 600w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=480&amp;fm=avif 480w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=240&amp;fm=avif 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/avif"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=1200&amp;fm=webp 1200w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=960&amp;fm=webp 960w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=720&amp;fm=webp 720w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=600&amp;fm=webp 600w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=480&amp;fm=webp 480w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=240&amp;fm=webp 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/webp"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=1200&amp;fm=jpg 1200w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=960&amp;fm=jpg 960w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=720&amp;fm=jpg 720w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=600&amp;fm=jpg 600w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=480&amp;fm=jpg 480w,//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=240&amp;fm=jpg 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/jpeg"></source>
<img class="d-block height-auto width-full readme-link__img" width="1200" height="1400" loading="lazy" decoding="async" alt="Photo of Feross Aboukhadijeh" src="//images.ctfassets.net/s5uo95nf6njh/4823v8OtGp7S2UWpdfaDLe/40b5dd6243507fccf358a65d476c5560/Github_Security__1_.jpg?w=1200&amp;fm=jpg" />
</picture>
</figure>
<h3 class="readme-heading-3 tmp-mb-5">
<span class="no-underline readme-underline--green">
<span>Do your part to secure the open source supply chain</span>
</span>
</h3>
</a>
<div class="text-mono text-uppercase color-fg-muted f5-mktg" style="letter-spacing:0.05em">
Feross Aboukhadijeh // Socket
</div>
</div>
<div class="d-flex flex-column col-md-4">
<a class="d-block readme-link" data-analytics-event="{&quot;category&quot;:&quot;ReadME Stories&quot;,&quot;action&quot;:&quot;click&quot;,&quot;label&quot;:&quot;ref_page:/readme/guides/root-cause;ref_cta:The case for using Rust in MLOps;ref_loc:More stories&quot;}" href="/readme/guides/rust-mlops">
<figure class="tmp-mb-5 readme-link__figure js-readme-rotate">
<picture>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=1200&amp;fm=avif 1200w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=960&amp;fm=avif 960w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=720&amp;fm=avif 720w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=600&amp;fm=avif 600w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=480&amp;fm=avif 480w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=240&amp;fm=avif 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/avif"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=1200&amp;fm=webp 1200w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=960&amp;fm=webp 960w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=720&amp;fm=webp 720w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=600&amp;fm=webp 600w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=480&amp;fm=webp 480w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=240&amp;fm=webp 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/webp"></source>
<source srcset="//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=1200&amp;fm=jpg 1200w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=960&amp;fm=jpg 960w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=720&amp;fm=jpg 720w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=600&amp;fm=jpg 600w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=480&amp;fm=jpg 480w,//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=240&amp;fm=jpg 240w" sizes="(max-width: 755px) 90vw, 45vw" type="image/jpeg"></source>
<img class="d-block height-auto width-full readme-link__img" width="1200" height="1400" loading="lazy" decoding="async" alt="Photo of Noah Gift" src="//images.ctfassets.net/s5uo95nf6njh/2NQyZkQODnlSIOj7K2DNpS/b99fb15c1b6cc02911a8275ca834dd4a/Github-DevOps-1A__1_.JPG?w=1200&amp;fm=jpg" />
</picture>
</figure>
<h3 class="readme-heading-3 tmp-mb-5">
<span class="no-underline readme-underline--green">
<span>The case for using Rust in MLOps</span>
</span>
</h3>
</a>
<div class="text-mono text-uppercase color-fg-muted f5-mktg" style="letter-spacing:0.05em">
Noah Gift // Pragmatic AI Labs
</div>
</div>
</div>
</div>
</div>
<div class="tmp-py-4 tmp-py-lg-6 readme-bg-white overflow-hidden">
<div class="container-readme p-responsive-readme">
<div class="d-lg-flex">
<div class="position-relative d-flex flex-items-center col-md-11 col-lg-10 readme-bg-black--pattern">
<div class="position-relative col-lg-7 tmp-px-3 tmp-py-6 tmp-p-md-6 tmp-pb-md-8 tmp-pt-lg-8 tmp-pl-xl-8">
<h2 class="readme-heading-1 readme-heading--condensed tmp-mb-6 color-text-white">About The <br class="d-none d-sm-inline">ReadME Project</h2>
<p class="f3-mktg tmp-mb-6 color-text-white">Coding is usually seen as a solitary activity, but it’s actually the world’s largest community effort led by open source maintainers, contributors, and teams. These unsung heroes put in long hours to build software, fix issues, field questions, and manage communities.</p>
<p class="f3-mktg tmp-mb-6 color-text-white">The ReadME Project is part of GitHub’s ongoing effort to amplify the voices of the developer community. It’s an evolving space to engage with the community and explore the stories, challenges, technology, and culture that surround the world of open source.</p>
<div class="d-flex flex-wrap">
<h3 class="readme-heading--condensed f3-mktg text-semibold text-uppercase color-text-white tmp-mr-4">Follow us:</h3>
<ul class="list-style-none d-flex flex-items-center">
<li class="tmp-mr-4">
<a href="https://twitter.com/github" target="_blank" rel="noopener" aria-label="Follow on Twitter" class="d-flex flex-justify-center flex-items-center">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="20" aria-hidden="true" class="d-block readme-icon-link--inverted"><path fill="currentColor" d="M9.332 6.925 14.544 1h-1.235L8.783 6.145 5.17 1H1l5.466 7.78L1 14.993h1.235l4.78-5.433 3.816 5.433H15L9.332 6.925ZM7.64 8.848l-.554-.775L2.68 1.91h1.897l3.556 4.975.554.775 4.622 6.466h-1.897L7.64 8.848Z"></path></svg>
</a>
</li>
<li class="tmp-mr-4">
<a href="https://www.facebook.com/GitHub" target="_blank" rel="noopener" aria-label="Follow on Facebook" class="d-flex flex-justify-center flex-items-center">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.3 15.4" aria-hidden="true" class="d-block readme-icon-link--inverted" height="20"><path d="M14.5 0H.8a.88.88 0 0 0-.8.9v13.6a.88.88 0 0 0 .8.9h7.3v-6h-2V7.1h2V5.4a2.87 2.87 0 0 1 2.5-3.1h.5a10.87 10.87 0 0 1 1.8.1v2.1h-1.3c-1 0-1.1.5-1.1 1.1v1.5h2.3l-.3 2.3h-2v5.9h3.9a.88.88 0 0 0 .9-.8V.8a.86.86 0 0 0-.8-.8z" fill="currentColor"></path></svg>
</a>
</li>
<li class="tmp-mr-4">
<a href="https://www.instagram.com/github" target="_blank" rel="noopener" aria-label="Follow on Instagram" class="d-flex flex-justify-center flex-items-center">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 24" fill="currentColor" aria-hidden="true" class="d-block readme-icon-link--inverted" height="20">
<path d="M7.65241 0.0884315C6.65471 0.108122 5.66763 0.297424 4.73344 0.648234C3.93562 0.953396 3.21108 1.4233 2.60708 2.0273C2.00308 2.63131 1.53317 3.35584 1.22801 4.15366C0.878679 5.08365 0.689401 6.0661 0.668206 7.05931C0.614891 8.33886 0.601562 8.75204 0.601562 12.0042C0.601562 15.2697 0.614891 15.6696 0.668206 16.9492C0.734849 18.2287 0.934778 19.0951 1.22801 19.8681C1.53014 20.6698 2.00052 21.3975 2.60748 22.0022C3.21445 22.6069 3.94391 23.0745 4.74677 23.3736C5.67676 23.7229 6.6592 23.9122 7.65241 23.9334C8.93196 23.9867 9.33182 24 12.584 24C15.8495 24 16.2627 23.9867 17.5423 23.9334C18.5355 23.9122 19.5179 23.7229 20.4479 23.3736C21.2476 23.067 21.914 22.6538 22.5805 21.9874C23.2469 21.3209 23.6468 20.6545 23.9533 19.8548C24.3027 18.9248 24.4919 17.9424 24.5131 16.9492C24.5664 15.6696 24.5798 15.2697 24.5798 12.0176C24.5798 8.75204 24.5798 8.33886 24.5131 7.05931C24.4919 6.0661 24.3027 5.08365 23.9533 4.15366C23.6468 3.35395 23.2336 2.68752 22.5671 2.02108C21.9007 1.35465 21.2343 0.954793 20.4479 0.648234C19.5179 0.298905 18.5355 0.109627 17.5423 0.0884315C16.2627 0.035117 15.8495 0.0217883 12.5973 0.0217883C10.9488 -0.0220065 9.29917 0.000225717 7.65241 0.0884315ZM17.4356 2.24767C18.6085 2.30098 19.2483 2.50091 19.6615 2.64753C20.1788 2.85208 20.6483 3.1613 21.0405 3.55579C21.4327 3.95029 21.7392 4.42156 21.9407 4.94005C22.2044 5.65302 22.3441 6.40584 22.3539 7.16594C22.4072 8.43216 22.4205 8.80536 22.4205 12.0042C22.4205 15.2031 22.4205 15.5896 22.3539 16.8559C22.3489 17.6152 22.2137 18.3681 21.954 19.0817C21.7539 19.5991 21.4448 20.0673 21.0477 20.4546C20.6212 20.8811 20.2213 21.1343 19.6615 21.3609C19.2483 21.5209 18.6085 21.7208 17.4356 21.7608C16.1694 21.8274 15.7962 21.8408 12.5973 21.8408C9.39846 21.8408 9.01193 21.8274 7.74571 21.7741C6.98556 21.7649 6.23265 21.6251 5.51983 21.3609C5.00029 21.1651 4.5312 20.8554 4.14698 20.4546C3.74616 20.0704 3.43647 19.6013 3.24063 19.0817C3.08069 18.6552 2.88076 18.0154 2.84077 16.8559C2.77413 15.5896 2.7608 15.2164 2.7608 12.0042C2.7608 8.80536 2.77413 8.43216 2.82744 7.16594C2.83722 6.40584 2.97696 5.65302 3.24063 4.94005C3.46722 4.38025 3.72046 3.98039 4.14698 3.55388C4.56017 3.14069 4.96003 2.88744 5.51983 2.66086C5.94634 2.50091 6.58612 2.30098 7.74571 2.24767C9.01193 2.19436 9.38513 2.18103 12.5973 2.18103C15.7962 2.18103 16.1694 2.18103 17.4356 2.24767Z"></path>
<path d="M12.5959 16.003C11.5354 16.003 10.5183 15.5817 9.76844 14.8318C9.01856 14.0819 8.59728 13.0649 8.59728 12.0044C8.59728 10.9439 9.01856 9.92684 9.76844 9.17696C10.5183 8.42708 11.5354 8.0058 12.5959 8.0058C13.6564 8.0058 14.6734 8.42708 15.4233 9.17696C16.1732 9.92684 16.5945 10.9439 16.5945 12.0044C16.5945 13.0649 16.1732 14.0819 15.4233 14.8318C14.6734 15.5817 13.6564 16.003 12.5959 16.003ZM12.5959 5.84656C11.7872 5.84656 10.9865 6.00584 10.2394 6.3153C9.49227 6.62476 8.81344 7.07834 8.24163 7.65014C7.66982 8.22195 7.21624 8.90079 6.90678 9.64789C6.59732 10.395 6.43805 11.1957 6.43805 12.0044C6.43805 12.813 6.59732 13.6138 6.90678 14.3609C7.21624 15.108 7.66982 15.7868 8.24163 16.3586C8.81344 16.9304 9.49227 17.384 10.2394 17.6935C10.9865 18.0029 11.7872 18.1622 12.5959 18.1622C14.229 18.1622 15.7953 17.5134 16.9501 16.3586C18.1049 15.2038 18.7537 13.6375 18.7537 12.0044C18.7537 10.3712 18.1049 8.80496 16.9501 7.65014C15.7953 6.49533 14.229 5.84656 12.5959 5.84656ZM20.4331 5.60664C20.4331 5.98842 20.2814 6.35456 20.0115 6.62452C19.7415 6.89447 19.3754 7.04614 18.9936 7.04614C18.6118 7.04614 18.2457 6.89447 17.9757 6.62452C17.7058 6.35456 17.5541 5.98842 17.5541 5.60664C17.5541 5.22487 17.7058 4.85873 17.9757 4.58877C18.2457 4.31881 18.6118 4.16715 18.9936 4.16715C19.3754 4.16715 19.7415 4.31881 20.0115 4.58877C20.2814 4.85873 20.4331 5.22487 20.4331 5.60664Z"></path>
<path d="M9.85322 14.747C10.5806 15.4744 11.5672 15.8831 12.5959 15.8831C13.6246 15.8831 14.6111 15.4744 15.3385 14.747C16.0659 14.0196 16.4746 13.0331 16.4746 12.0044C16.4746 10.9757 16.0659 9.98913 15.3385 9.26173C14.6111 8.53434 13.6246 8.12569 12.5959 8.12569C11.5672 8.12569 10.5806 8.53434 9.85322 9.26173C9.12582 9.98913 8.71718 10.9757 8.71718 12.0044C8.71718 13.0331 9.12582 14.0196 9.85322 14.747ZM10.1935 6.20453C10.9551 5.88905 11.7715 5.72667 12.5959 5.72667C14.2608 5.72667 15.8576 6.38807 17.0349 7.56537C18.2122 8.74267 18.8736 10.3394 18.8736 12.0044C18.8736 13.6693 18.2122 15.2661 17.0349 16.4434C15.8576 17.6207 14.2608 18.2821 12.5959 18.2821C11.7715 18.2821 10.9551 18.1197 10.1935 17.8042C9.43185 17.4888 8.7398 17.0263 8.15686 16.4434C7.57392 15.8605 7.1115 15.1684 6.79602 14.4068C6.48053 13.6451 6.31815 12.8288 6.31815 12.0044C6.31815 11.18 6.48053 10.3637 6.79602 9.60201C7.1115 8.84036 7.57392 8.14831 8.15686 7.56537C8.7398 6.98243 9.43185 6.52002 10.1935 6.20453ZM20.553 5.60664C20.553 6.02022 20.3887 6.41685 20.0963 6.70929C19.8038 7.00173 19.4072 7.16603 18.9936 7.16603C18.58 7.16603 18.1834 7.00173 17.891 6.70929C17.5985 6.41685 17.4342 6.02022 17.4342 5.60664C17.4342 5.19307 17.5985 4.79643 17.891 4.50399C18.1834 4.21155 18.58 4.04726 18.9936 4.04726C19.4072 4.04726 19.8038 4.21155 20.0963 4.50399C20.3887 4.79643 20.553 5.19307 20.553 5.60664ZM9.76844 14.8318C10.5183 15.5817 11.5354 16.003 12.5959 16.003C13.6564 16.003 14.6734 15.5817 15.4233 14.8318C16.1732 14.0819 16.5945 13.0649 16.5945 12.0044C16.5945 10.9439 16.1732 9.92684 15.4233 9.17696C14.6734 8.42708 13.6564 8.0058 12.5959 8.0058C11.5354 8.0058 10.5183 8.42708 9.76844 9.17696C9.01856 9.92684 8.59728 10.9439 8.59728 12.0044C8.59728 13.0649 9.01856 14.0819 9.76844 14.8318ZM10.2394 6.3153C10.9865 6.00584 11.7872 5.84656 12.5959 5.84656C14.229 5.84656 15.7953 6.49533 16.9501 7.65014C18.1049 8.80496 18.7537 10.3712 18.7537 12.0044C18.7537 13.6375 18.1049 15.2038 16.9501 16.3586C15.7953 17.5134 14.229 18.1622 12.5959 18.1622C11.7872 18.1622 10.9865 18.0029 10.2394 17.6935C9.49227 17.384 8.81344 16.9304 8.24163 16.3586C7.66982 15.7868 7.21624 15.108 6.90678 14.3609C6.59732 13.6138 6.43805 12.813 6.43805 12.0044C6.43805 11.1957 6.59732 10.395 6.90678 9.64789C7.21624 8.90079 7.66982 8.22195 8.24163 7.65014C8.81344 7.07834 9.49227 6.62476 10.2394 6.3153ZM20.0115 6.62452C20.2814 6.35456 20.4331 5.98842 20.4331 5.60664C20.4331 5.22487 20.2814 4.85873 20.0115 4.58877C19.7415 4.31881 19.3754 4.16715 18.9936 4.16715C18.6118 4.16715 18.2457 4.31881 17.9757 4.58877C17.7058 4.85873 17.5541 5.22487 17.5541 5.60664C17.5541 5.98842 17.7058 6.35456 17.9757 6.62452C18.2457 6.89447 18.6118 7.04614 18.9936 7.04614C19.3754 7.04614 19.7415 6.89447 20.0115 6.62452Z"></path>
</svg>
</a>
</li>
<li class="tmp-mr-4">
<a href="https://www.linkedin.com/company/github" target="_blank" rel="noopener" aria-label="Follow on LinkedIn" class="d-flex flex-justify-center flex-items-center">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" aria-hidden="true" class="d-block readme-icon-link--inverted" height="20"><path d="M3.94 2A2 2 0 1 1 2 0a2 2 0 0 1 1.94 2zM4 5.48H0V18h4zm6.32 0H6.34V18h3.94v-6.57c0-3.66 4.77-4 4.77 0V18H19v-7.93c0-6.17-7.06-5.94-8.72-2.91z" fill="currentColor"></path></svg>
</a>
</li>
<li class="tmp-mr-4">
<a href="/readme.rss" target="_blank" rel="noopener" aria-label="Grab the ReadME Project RSS link" class="d-flex flex-justify-center flex-items-center">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" aria-hidden="true" class="d-block readme-icon-link--inverted" height="20"><path d="M4.87725 15.564C4.87725 16.9095 3.78525 18 2.439 18C1.092 18 0 16.9095 0 15.564C0 14.2185 1.092 13.128 2.439 13.128C3.78525 13.1288 4.87725 14.2185 4.87725 15.564ZM1.81214 6.28433C0.821676 6.12662 0 6.95184 0 7.95478V7.95478C0 8.94548 0.80745 9.7311 1.77335 9.95134C4.88751 10.6614 7.34477 13.1147 8.05723 16.2246C8.27873 17.1915 9.06526 18 10.0572 18V18C11.0614 18 11.8877 17.1772 11.729 16.1856C10.9163 11.1056 6.89914 7.09432 1.81214 6.28433ZM0 1.81156C0 2.80552 0.807508 3.60066 1.79343 3.72683C8.29332 4.55863 13.4443 9.69716 14.2712 16.2022C14.3968 17.1901 15.193 18 16.1889 18V18C17.1885 18 18.0077 17.1862 17.9062 16.1918C17.0415 7.71196 10.2969 0.968855 1.80862 0.0956699C0.814393 -0.00660638 0 0.81208 0 1.81156V1.81156Z" fill="currentColor"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="position-relative col-md-11 col-lg-6 col-xl-5 float-md-right float-lg-none offset-lg-n4 offset-xl-n3 tmp-mt-md-n4 tmp-mt-lg-8 tmp-mb-lg-n4 tmp-mb-lg-n8 tmp-px-3 tmp-py-6 tmp-px-md-6 tmp-py-md-8 tmp-pl-xl-8 tmp-pr-xl-8 tmp-py-xl-9 z-1 readme-bg-blue color-text-white">
<h4 class="readme-heading-3 readme-heading--condensed text-uppercase">
<a href="https://github.com/readme/nominate" data-ga-click="Nominate a person or project, click, ref_page:/readme/guides/root-cause;ref_cta:Nominate a person or project;ref_loc:readme homepage" class="readme-focus-on-blue no-underline color-text-white arrow-target-mktg">Nominate a developer<span class="ml-1 d-inline-flex flex-items-start" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg octicon" 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></span>
</a>
</h4>
<p class="f3-mktg mb-0">Nominate inspiring developers and projects you think we should feature in The ReadME Project.</p>
<h4 class="readme-heading-3 readme-heading--condensed text-uppercase tmp-pt-6 tmp-pt-md-8">
<a href="https://github.com/sponsors" data-ga-click="Support the community, click to support the community, ref_page:/readme/guides/root-cause;ref_cta:Support the community;ref_loc:readme homepage" class="readme-focus-on-blue no-underline color-text-white arrow-target-mktg">Support the community<span class="ml-1 d-inline-flex flex-items-start" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg octicon" 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></span>
</a>
</h4>
<p class="f3-mktg mb-0">Recognize developers working behind the scenes and help open source projects get the resources they need.</p>
<h4 class="readme-heading-3 readme-heading--condensed text-uppercase tmp-pt-6 tmp-pt-md-8">
<a
target="_blank"
rel="noopener"
aria-label="Sign up for the newsletter (opens in a new tab)"
href="https://resources.github.com/newsletter-open-source/"
data-ga-click="Sign up for the newsletter, click, ref_page:/readme/guides/root-cause;ref_cta:Sign up for the newsletter;ref_loc:readme homepage"
class="readme-focus-on-blue no-underline color-text-white arrow-target-mktg"
>
Sign up for the newsletter
<span class="ml-1 d-inline-flex flex-items-start" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg octicon" 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>
</span>
</a>
</h4>
<p class="f3-mktg mb-0">Sharpen your open source skills with tips, tools, and insights. Delivered monthly.</p>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-7450ad822d7699b5.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-lib-3b03eb55bae46c70.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aq-ba5f008999aedbd0.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nvz-deeea5270ef3dfb4.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/mz-a6c5397389be3fff.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3d-82c347d20a13fb90.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5t-dc6e19f29c4172a8.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-footer-99e0f43bfaab7003.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.bad9067f7ec9f6d1.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.206bbd4fd232654e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/marketing-footer.048794eddf380fba.module.css" />
<react-partial
partial-name="marketing-footer"
data-ssr="true"
data-attempted-ssr="true"
data-react-profiling="false"
>
<script type="application/json" data-target="react-partial.embeddedData">{"props":{"cookieConsentEnabled":true,"colorMode":"light","currentLocale":"en","localeOptions":[{"displayName":"English","selectorLocale":"en-us","analyticsLabel":"locale:en-us"},{"displayName":"Português (Brasil)","selectorLocale":"pt-br","analyticsLabel":"locale:pt-br"},{"displayName":"Español (América Latina)","selectorLocale":"es-419","analyticsLabel":"locale:es-419"},{"displayName":"日本語","selectorLocale":"ja","analyticsLabel":"locale:ja"},{"displayName":"한국어","selectorLocale":"ko-kr","analyticsLabel":"locale:ko-kr"},{"displayName":"Français","selectorLocale":"fr-fr","analyticsLabel":"locale:fr-fr"},{"displayName":"Deutsch","selectorLocale":"de-de","analyticsLabel":"locale:de-de"}],"showAdminToggle":false,"isAdminModeOn":false,"adminTogglePath":null,"showUiOptOut":false,"isUiOptedOut":false,"uiOptOutTogglePath":null}}</script>
<div data-target="react-partial.reactRoot"><div data-color-mode="light"><footer class="MarketingFooter-module__footer__sWiQH" role="contentinfo" data-analytics-category="Footer"><h2 class="visually-hidden">Site-wide Links</h2><div class="MarketingFooter-module__container__FiPNP"><div class="MarketingFooter-module__topRow__dhoq5"><section class="Newsletter-module__newsletter__WQAO6 MarketingFooter-module__newsletter__FkId8" aria-labelledby="subscribe-to-newsletter"><a href="/" class="Newsletter-module__logoLink__llafS" aria-label="Go to GitHub homepage"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github Newsletter-module__logo__rcAsT" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><h3 class="Primer_Brand__Heading-module__Heading___fudyh Primer_Brand__Heading-module__Heading-font--monospace___wf5_H Primer_Brand__Heading-module__Heading--6___QHTZH Primer_Brand__Heading-module__Heading--textWrap-balance___XJ9OD Newsletter-module__heading__T6FMN" id="subscribe-to-newsletter"><span class="Newsletter-module__headingDot__mwB26" aria-hidden="true"></span>The developer newsletter</h3><p class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Newsletter-module__description__LBtd9">Get tips, technical guides, and best practices. Twice a month. Right in your inbox.</p><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--primary___MSbnU Primer_Brand__Button-module__Button--size-small___zQrEw Newsletter-module__cta___iepg" href="/newsletter"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-primary___QX1u5">Subscribe</span></span></a></section><div class="MarketingFooter-module__columns__hFD_D"><nav class="LinkColumn-module__column__vXgUS" aria-labelledby="footer-title-platform"><h3 class="Primer_Brand__Heading-module__Heading___fudyh Primer_Brand__Heading-module__Heading-font--monospace___wf5_H Primer_Brand__Heading-module__Heading--6___QHTZH Primer_Brand__Heading-module__Heading--textWrap-balance___XJ9OD LinkColumn-module__heading__vyqWX" id="footer-title-platform">Platform</h3><ul class="LinkColumn-module__list__q5Tn1"><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/features" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;features&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Features</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/enterprise" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;enterprise&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Enterprise</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/features/copilot" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;copilot&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Copilot</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/features/ai" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;ai&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/security" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/pricing" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Pricing</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/team" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;team&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Team</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;resources&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Resources</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/github/roadmap" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;roadmap&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Roadmap</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/resources/articles/devops-tools-comparison" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;compare&quot;,&quot;context&quot;:&quot;platform&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Compare GitHub</span></a></li></ul></nav><nav class="LinkColumn-module__column__vXgUS" aria-labelledby="footer-title-ecosystem"><h3 class="Primer_Brand__Heading-module__Heading___fudyh Primer_Brand__Heading-module__Heading-font--monospace___wf5_H Primer_Brand__Heading-module__Heading--6___QHTZH Primer_Brand__Heading-module__Heading--textWrap-balance___XJ9OD LinkColumn-module__heading__vyqWX" id="footer-title-ecosystem">Ecosystem</h3><ul class="LinkColumn-module__list__q5Tn1"><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://docs.github.com/integrations/concepts/about-building-integrations" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;dev-api&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Developer API</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/education" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;edu&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Education</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://cli.github.com" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;cli&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">GitHub CLI</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/apps/desktop" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;desktop&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Desktop</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/mobile" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;mobile&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Mobile</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/marketplace" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;marketplace&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Marketplace</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/mcp" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;mcp_registry&quot;,&quot;context&quot;:&quot;ecosystem&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">MCP Registry</span></a></li></ul></nav><nav class="LinkColumn-module__column__vXgUS" aria-labelledby="footer-title-support"><h3 class="Primer_Brand__Heading-module__Heading___fudyh Primer_Brand__Heading-module__Heading-font--monospace___wf5_H Primer_Brand__Heading-module__Heading--6___QHTZH Primer_Brand__Heading-module__Heading--textWrap-balance___XJ9OD LinkColumn-module__heading__vyqWX" id="footer-title-support">Support</h3><ul class="LinkColumn-module__list__q5Tn1"><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://docs.github.com" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;docs&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Docs</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.community" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;community&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Community Forum</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/services" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;services&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Professional Services</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/enterprise/premium-support" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;premium_support&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Premium Support</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://skills.github.com" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;skills&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Skills</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://www.githubstatus.com" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;status&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Status</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://support.github.com?tags=dotcom-footer" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;contact_github&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Contact GitHub</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/git-guides" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;what_is_git&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">What is Git?</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/sitemap" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;sitemap&quot;,&quot;context&quot;:&quot;support&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Sitemap</span></a></li></ul></nav><nav class="LinkColumn-module__column__vXgUS" aria-labelledby="footer-title-company"><h3 class="Primer_Brand__Heading-module__Heading___fudyh Primer_Brand__Heading-module__Heading-font--monospace___wf5_H Primer_Brand__Heading-module__Heading--6___QHTZH Primer_Brand__Heading-module__Heading--textWrap-balance___XJ9OD LinkColumn-module__heading__vyqWX" id="footer-title-company">Company</h3><ul class="LinkColumn-module__list__q5Tn1"><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/about" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;about&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">About</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/why-github" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;why_github&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/customer-stories?type=enterprise" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;customer_stories&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Customer Stories</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.blog" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;blog&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/readme" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;readme&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">The ReadME Project</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.careers" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;careers&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Careers</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/newsroom" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;newsroom&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Newsroom</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="/about/diversity" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;inclusion&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Inclusion</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://socialimpact.github.com" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;social_impact&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Social Impact</span></a></li><li class="LinkColumn-module__item__nrsNE"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://thegithubshop.com" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;shop&quot;,&quot;context&quot;:&quot;company&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Link-module__Link--label___jM8Ty">Shop</span></a></li></ul></nav></div></div></div><div class="SubFooter-module__bar__MCrz3"><div class="SubFooter-module__container__zWjah"><nav aria-label="Legal and Resource Links" class="SubFooter-module__legal__ihBjH"><ul class="SubFooter-module__legalList__W482t"><li class="SubFooter-module__copyright__jBUrS"><time dateTime="2026">© 2026 GitHub, Inc.</time></li><li><a href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" class="SubFooter-module__legalLink__Y0jbc">Terms</a></li><li><a href="https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement" class="SubFooter-module__legalLink__Y0jbc">Privacy</a></li><li><cookie-consent-link><button type="button" class="SubFooter-module__legalLink__Y0jbc" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;}">Manage cookies</button></cookie-consent-link></li><li><cookie-consent-link><button type="button" class="SubFooter-module__legalLink__Y0jbc" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;}">Do not share my personal information</button></cookie-consent-link></li></ul></nav><div class="SubFooter-module__socialAndLocale__Kl140"><nav aria-label="GitHub&#x27;s Social Media Links"><ul class="SocialLinks-module__list__kkyUo"><li><a href="https://www.linkedin.com/company/github" class="SocialLinks-module__iconLink__TSxai" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Linkedin&quot;,&quot;label&quot;:&quot;text:linkedin&quot;}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" width="19" height="18" aria-hidden="true" focusable="false" class="SocialLinks-module__icon__GnyEV"><path d="M3.94 2A2 2 0 1 1 2 0a2 2 0 0 1 1.94 2zM4 5.48H0V18h4zm6.32 0H6.34V18h3.94v-6.57c0-3.66 4.77-4 4.77 0V18H19v-7.93c0-6.17-7.06-5.94-8.72-2.91z" fill="currentColor"></path></svg><span class="visually-hidden">GitHub on LinkedIn</span></a></li><li><a href="https://www.instagram.com/github" class="SocialLinks-module__iconLink__TSxai" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Instagram&quot;,&quot;label&quot;:&quot;text:instagram&quot;}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false" class="SocialLinks-module__icon__GnyEV"><path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z" fill="currentColor"></path></svg><span class="visually-hidden">GitHub on Instagram</span></a></li><li><a href="https://www.youtube.com/github" class="SocialLinks-module__iconLink__TSxai" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to YouTube&quot;,&quot;label&quot;:&quot;text:youtube&quot;}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.17 13.6" width="23" height="16" aria-hidden="true" focusable="false" class="SocialLinks-module__icon__GnyEV"><path d="M18.77 2.13A2.4 2.4 0 0 0 17.09.42C15.59 0 9.58 0 9.58 0a57.55 57.55 0 0 0-7.5.4A2.49 2.49 0 0 0 .39 2.13 26.27 26.27 0 0 0 0 6.8a26.15 26.15 0 0 0 .39 4.67 2.43 2.43 0 0 0 1.69 1.71c1.52.42 7.5.42 7.5.42a57.69 57.69 0 0 0 7.51-.4 2.4 2.4 0 0 0 1.68-1.71 25.63 25.63 0 0 0 .4-4.67 24 24 0 0 0-.4-4.69zM7.67 9.71V3.89l5 2.91z" fill="currentColor"></path></svg><span class="visually-hidden">GitHub on YouTube</span></a></li><li><a href="https://x.com/github" class="SocialLinks-module__iconLink__TSxai" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to X&quot;,&quot;label&quot;:&quot;text:x&quot;}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1227" width="16" height="16" aria-hidden="true" focusable="false" class="SocialLinks-module__icon__GnyEV"><path d="M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z" fill="currentColor"></path></svg><span class="visually-hidden">GitHub on X</span></a></li><li><a href="https://www.tiktok.com/@github" class="SocialLinks-module__iconLink__TSxai" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to tiktok&quot;,&quot;label&quot;:&quot;text:tiktok&quot;}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false" class="SocialLinks-module__icon__GnyEV"><path d="M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z" fill="currentColor"></path></svg><span class="visually-hidden">GitHub on TikTok</span></a></li><li><a href="https://www.twitch.tv/github" class="SocialLinks-module__iconLink__TSxai" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Twitch&quot;,&quot;label&quot;:&quot;text:twitch&quot;}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" focusable="false" class="SocialLinks-module__icon__GnyEV"><path d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z" fill="currentColor"></path></svg><span class="visually-hidden">GitHub on Twitch</span></a></li><li><a href="https://github.com/github" class="SocialLinks-module__iconLink__TSxai" data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to github&#x27;s org&quot;,&quot;label&quot;:&quot;text:github&quot;}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 96" width="20" height="20" aria-hidden="true" focusable="false" class="SocialLinks-module__icon__GnyEV"><path fill="currentColor" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z"></path></svg><span class="visually-hidden">GitHub’s organization on GitHub</span></a></li></ul></nav><div id="_R_ad_" class="Primer_Brand__ActionMenu-module__ActionMenu___xLxGU" data-testid="ActionMenu"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw Primer_Brand__ActionMenu-module__ActionMenu__button___vFLAF Primer_Brand__ActionMenu-module__ActionMenu__button--small___UAUPB Primer_Brand__ActionMenu-module__ActionMenu__button--default___heDoV" id="_R_ad_-button" aria-haspopup="true" aria-expanded="false" data-testid="ActionMenu-button" aria-label="English - Select language"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a"><span><span class="LocaleSelector-module__triggerContent__lli5v"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-globe" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path></svg><span class="LocaleSelector-module__triggerLabel__IDKuJ">English</span></span></span></span></span><span class="Primer_Brand__Button-module__Button__trailing-visual___5i3xR" data-testid="Button-trailing-visual"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></button></div></div></div></div></footer></div></div>
</react-partial>
<ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
data-locale="en"
data-initial-cookie-consent-allowed=""
data-cookie-consent-required="false"
></ghcc-consent>
<fullstory-capture data-fs-script-domain="https://github.githubassets.com">
</fullstory-capture>
<div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
<svg aria-hidden="true" data-component="Octicon" 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" data-component="Octicon" 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" data-component="Octicon" 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 tmp-my-6 js-details-dialog-spinner"></div>
</details-dialog>
</details>
</template>
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
<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 code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
<svg aria-hidden="true" data-component="Octicon" 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 tmp-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" data-component="Octicon" 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 tmp-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 code to clipboard" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
<svg aria-hidden="true" data-component="Octicon" 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" data-component="Octicon" 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 mt-n1" aria-live="polite" aria-atomic="true" ></div>
<div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
</body>
</html>