ZIm/crates
Nils Koch f9a66ecaed
Add detection of self hosted GitHub enterprise instances (#26482)
This PR does not close an issue, but it is an issue and and fix in one.
I hope this is ok, but please let me know if you prefer me to open an
issue before.

Release Notes:

- Add "copy permalink" action for self-hosted GitHub enterprise
instances

# Issue
### Related issues:
* https://github.com/zed-industries/zed/issues/26393
* https://github.com/zed-industries/zed/issues/11043

When you try to copy a permalink from a self-hosted GitHub enterprise
instance, you get the following error:

<img width="383" alt="permalink"
src="https://github.com/user-attachments/assets/b32338a7-a2d7-48fc-86bf-ade1d32ed1f7"
/>

You also cannot open a PR or commit when you hover over a git blame:


https://github.com/user-attachments/assets/a5491ce7-270b-412f-b9ac-027ec020b028


### Reproduce
If you do not have access to a self-hosted GitHub instance, you can
change the remote url of any git repo:
```
git remote set-url origin git@github.mycorp.com:nilskch/zed.git
```

With the fix, permalinks still won't bring you to a valid website, but
you can verify that they are correctly created.

# Solution

Currently, we only support detecting self-hosted GitLab instances, but
not self-hosted GitHub instances. We detect GitLab instances by checking
if "gitlab" is part of the git URL.

This PR adds the same logic to detect self-hosted GitHub enterprise
instances (by checking if "github" is in the URL).

This solution is not ideal, since self-hosted GitHub or GitLab instances
might not contain the word "github" or "gitlab". #26393 proposes adding
a setting that would allow users to map specific domains to their
corresponding git provider types. This mapping would help Zed correctly
identify the appropriate git instance, even if "gitlab" or "github" are
not part of the URL.

This PR does not implement the offered solution, but I added a TODO
where the fix for #26393 has to make changes.
2025-03-11 21:46:17 -06:00
..
activity_indicator Remove worktree and project notifies (#26244) 2025-03-07 10:51:46 -07:00
anthropic Add Anthropic Claude 3.7 support (#25497) 2025-02-24 16:10:26 -05:00
askpass Git askpass (#25953) 2025-03-06 05:20:06 +00:00
assets Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
assistant Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
assistant2 assistant2: Remove "Tools" switch (#26485) 2025-03-11 21:46:51 +00:00
assistant_context_editor Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
assistant_settings assistant: Add Bedrock support (#21092) 2025-02-24 18:10:12 -05:00
assistant_slash_command Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
assistant_slash_commands chore: Extract PromptStore out of prompt_library (#25837) 2025-03-01 00:34:28 +01:00
assistant_tool assistant2: Show scripting tool in the tool selector (#26484) 2025-03-11 21:35:39 +00:00
assistant_tools assistant_tool: Pass an Entity<Project> to Tool::run (#26312) 2025-03-07 23:30:56 +00:00
audio Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
auto_update cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
auto_update_ui Add user-visible output for remote operations (#25849) 2025-03-03 09:20:15 +00:00
aws_http_client Add aws_http_client and bedrock crates (#25490) 2025-02-24 20:28:20 +00:00
bedrock bedrock: Add Claude 3.7 Sonnet (#25583) 2025-02-25 13:52:42 -05:00
breadcrumbs Add user-visible output for remote operations (#25849) 2025-03-03 09:20:15 +00:00
buffer_diff Fix race conditions in updating buffer diffs on git changes (#26409) 2025-03-10 16:52:18 -07:00
call cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
channel Rust 1.85 (#25272) 2025-02-28 18:33:35 +01:00
cli cli: Add extra paths in detect() on Windows (#25765) 2025-03-02 00:17:55 +08:00
client Git telemetry (#26222) 2025-03-06 10:56:28 -07:00
clock chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
collab Add detection of self hosted GitHub enterprise instances (#26482) 2025-03-11 21:46:17 -06:00
collab_ui Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
collections chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
command_palette cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
command_palette_hooks vim: :set support (#24209) 2025-02-11 04:55:40 +00:00
component component_preview: Add component pages (#26284) 2025-03-07 18:56:17 +00:00
component_preview Rework git toasts (#26420) 2025-03-11 21:39:29 +00:00
context_server assistant_tool: Add a source to the Tool trait (#26471) 2025-03-11 19:10:48 +00:00
context_server_settings Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
copilot copilot: Fix missing sign-out button when Zed is the edit prediction provider (#26340) 2025-03-09 21:39:14 +05:30
credentials_provider Use the development credentials provider in development by default (#25273) 2025-02-20 19:07:16 +00:00
db cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
deepseek Add DeepSeek support (#23551) 2025-01-27 13:40:59 -05:00
diagnostics diagnostics: Fix losing focus when activating from diagnostics view (#25517) 2025-03-08 22:17:20 +00:00
docs_preprocessor Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
editor Tweak stage/unstage-and-next to start a commit instead of wrapping in the project diff editor (#26434) 2025-03-11 18:17:04 -04:00
evals Unwind deprecated permalinks code (#26395) 2025-03-10 19:57:10 -06:00
extension extension: Require that grammar names are written in snake_case (#26295) 2025-03-07 19:02:35 +00:00
extension_api zed_extension_api: Release v0.3.0 (#26495) 2025-03-11 22:54:44 +00:00
extension_cli extension_cli: Make use of scrollbar_thumb.background a hard error (#25932) 2025-03-03 15:55:15 +00:00
extension_host extension_host: Remove restriction of extension API v0.3.0 to development builds (#26498) 2025-03-11 23:22:31 +00:00
extensions_ui gpui: Rename rounded_md to rounded_sm (#26228) 2025-03-06 17:57:31 +00:00
feature_flags Remove GitUiFeatureFlag and enable panel unconditionally (#26386) 2025-03-10 13:38:07 -06:00
feedback gpui: Rename rounded_md to rounded_sm (#26228) 2025-03-06 17:57:31 +00:00
file_finder Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
file_icons Allow icon themes to provide their own file associations (#24926) 2025-02-15 00:35:13 +00:00
fs Unwind deprecated permalinks code (#26395) 2025-03-10 19:57:10 -06:00
fsevent Deflake fs::test_event_stream_simple (#24013) 2025-01-30 23:53:36 -07:00
fuzzy Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
git Rework git toasts (#26420) 2025-03-11 21:39:29 +00:00
git_hosting_providers Add detection of self hosted GitHub enterprise instances (#26482) 2025-03-11 21:46:17 -06:00
git_ui Fix git panel entries getting cut off (#26499) 2025-03-11 23:43:36 +00:00
go_to_line go_to_line: Fix goto line + mouse click jumps to previous scroll position (#26362) 2025-03-10 20:33:07 +05:30
google_ai Partially fix assistant onboarding (#25313) 2025-02-24 07:29:55 +00:00
gpui Rework git toasts (#26420) 2025-03-11 21:39:29 +00:00
gpui_macros gpui: Add rounded_md token (#26179) 2025-03-06 13:41:21 -05:00
gpui_tokio Make the gpui_tokio crate generic over the context it spawns (#23995) 2025-01-31 02:00:55 +00:00
html_to_markdown Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
http_client Rust 1.85 (#25272) 2025-02-28 18:33:35 +01:00
image_viewer image_viewer: Hide breadcrumb (#25654) 2025-02-26 17:24:35 +01:00
indexed_docs Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
inline_completion edit predictions: Show user if current project is open source (#24587) 2025-02-10 22:28:56 -03:00
inline_completion_button Support absolute disabled_globs (#25755) 2025-02-27 15:29:32 -03:00
install_cli Fix missed renames in #22632 (#23688) 2025-01-26 23:37:34 +00:00
journal Worktree paths in git panel, take 2 (#26047) 2025-03-06 22:55:28 +00:00
language Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
language_extension Rust 1.85 (#25272) 2025-02-28 18:33:35 +01:00
language_model Rust 1.85 (#25272) 2025-02-28 18:33:35 +01:00
language_model_selector Fix language model selector (#26138) 2025-03-05 12:48:10 -05:00
language_models copilot: Fix missing sign-out button when Zed is the edit prediction provider (#26340) 2025-03-09 21:39:14 +05:30
language_selector Refactor to use SharedString in more places (#23813) 2025-01-28 19:04:21 -05:00
language_tools Make buffer search aware of search direction (#24974) 2025-03-04 19:27:37 -07:00
languages Recognize ixx as part of the cpp suffix (#26333) 2025-03-10 09:10:29 -05:00
livekit_api Change license of crates/livekit_api from AGPL to GPL (#25206) 2025-02-19 23:32:51 +00:00
livekit_client cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
livekit_client_macos Rename livekit_server to livekit_api (#24984) 2025-02-16 20:24:12 +00:00
lmstudio lmstudio: Support missing quantization in model metadata (#24054) 2025-01-31 22:28:11 +00:00
lsp Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
markdown Silence a couple of noisy logs (#26262) 2025-03-06 22:45:47 -05:00
markdown_preview Worktree paths in git panel, take 2 (#26047) 2025-03-06 22:55:28 +00:00
media chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
menu keymap: Update Prev to Previous for consistency (#25909) 2025-03-03 17:44:49 +05:30
migrator migrator: Add versioned migrations (#26215) 2025-03-06 23:04:48 +05:30
mistral assistant: Add Mistral support (#24879) 2025-02-14 13:07:41 -05:00
multi_buffer Fix conflict marker in project diff view (#26466) 2025-03-11 16:27:25 -06:00
node_runtime node_runtime: Use user/global configuration when using system node installation (#26209) 2025-03-06 12:50:42 +01:00
notifications Rework git toasts (#26420) 2025-03-11 21:39:29 +00:00
ollama Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
open_ai Update Assistant context limits (#25087) 2025-02-19 11:06:20 -05:00
outline keymap: Update Prev to Previous for consistency (#25909) 2025-03-03 17:44:49 +05:30
outline_panel Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
panel git_ui: Design Polish (#26361) 2025-03-10 13:19:02 -07:00
paths Settings/keymap backup path next to files + update notification messages (#24517) 2025-02-09 16:51:37 -07:00
picker git_ui: Branch picker improvements (#26287) 2025-03-10 11:39:01 -04:00
prettier lsp: Use available workspace folders in initialize params (#25753) 2025-02-27 16:45:59 +01:00
project Use current upstream for permalink to line (#26398) 2025-03-10 20:53:46 -06:00
project_panel Worktree paths in git panel, take 2 (#26047) 2025-03-06 22:55:28 +00:00
project_symbols Add user-visible output for remote operations (#25849) 2025-03-03 09:20:15 +00:00
prompt_library git_ui: Branch picker improvements (#26287) 2025-03-10 11:39:01 -04:00
prompt_store chore: Extract PromptStore out of prompt_library (#25837) 2025-03-01 00:34:28 +01:00
proto Unwind deprecated permalinks code (#26395) 2025-03-10 19:57:10 -06:00
recent_projects git_ui: Branch picker improvements (#26287) 2025-03-10 11:39:01 -04:00
refineable windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
release_channel windows: Missing commit of #25412 (#25732) 2025-02-27 08:00:42 +00:00
remote Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
remote_server Unwind deprecated permalinks code (#26395) 2025-03-10 19:57:10 -06:00
repl gpui: Rename rounded_md to rounded_sm (#26228) 2025-03-06 17:57:31 +00:00
reqwest_client Redact Google Gemini API keys from error messaging and log (#24884) 2025-02-17 11:42:22 -05:00
rich_text Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
rope Add support for auto-closing of JSX tags (#25681) 2025-03-06 08:36:10 -06:00
rpc extensions_ui: Add general structure for filtering extensions by what they provide (#24325) 2025-02-06 00:09:37 +00:00
schema_generator Improve schema_generator CLI (#25898) 2025-03-06 04:59:57 +00:00
scripting_tool windows: Fix tests (#26450) 2025-03-11 11:43:24 +00:00
search Make buffer search aware of search direction (#24974) 2025-03-04 19:27:37 -07:00
semantic_index Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
semantic_version chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
session cx.background_executor().spawn(...) -> cx.background_spawn(...) (#25103) 2025-02-18 20:30:33 +00:00
settings copilot: Fix onboarding into Copilot requires Zed restart (#26330) 2025-03-09 03:19:09 +05:30
settings_ui Fix UI font size changes not applying (#25307) 2025-02-21 06:24:02 -03:00
snippet Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
snippet_provider snippets: Fix snippets not updating while containing comments (#23755) 2025-01-28 10:37:48 +01:00
snippets_ui Worktree paths in git panel, take 2 (#26047) 2025-03-06 22:55:28 +00:00
sqlez Rust 1.85 (#25272) 2025-02-28 18:33:35 +01:00
sqlez_macros windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
story gpui: Rename rounded_md to rounded_sm (#26228) 2025-03-06 17:57:31 +00:00
storybook keymap: Update Prev to Previous for consistency (#25909) 2025-03-03 17:44:49 +05:30
streaming_diff chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
sum_tree Clear pending staged/unstaged diff hunks hunks when writing to the git index fails (#26173) 2025-03-05 18:45:09 -08:00
supermaven Include prediction ID on edit prediction accepted/discarded events (#24480) 2025-02-07 22:06:37 +00:00
supermaven_api Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
tab_switcher git_ui: Branch picker improvements (#26287) 2025-03-10 11:39:01 -04:00
task vim: Fix tab title when using !! and disable rerun button for terminal tasks (#26122) 2025-03-05 08:47:49 -07:00
tasks_ui Worktree paths in git panel, take 2 (#26047) 2025-03-06 22:55:28 +00:00
telemetry Git telemetry (#26222) 2025-03-06 10:56:28 -07:00
telemetry_events Add build SHA to panic reports and zed --version (on nightly/dev) (#24258) 2025-02-06 02:09:24 -07:00
terminal terminal: Support trailing :description or error message after file path (#26401) 2025-03-10 16:20:48 -05:00
terminal_view Improve terminal hover tooltips (#26487) 2025-03-12 00:17:12 +02:00
text Rust 1.85 (#25272) 2025-02-28 18:33:35 +01:00
theme git_ui: Design Polish (#26361) 2025-03-10 13:19:02 -07:00
theme_extension theme: Don't log errors for missing themes until extensions have loaded (#25098) 2025-02-18 17:47:25 +00:00
theme_importer Add schema_generator for generating JSON schemas (#23991) 2025-01-31 01:22:10 +00:00
theme_selector icon_theme_selector: Add footer and related docs (#25042) 2025-02-20 00:02:24 +00:00
time_format Add an undo button to the git panel (#24593) 2025-02-12 15:57:08 -07:00
title_bar Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
toolchain_selector Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00
ui ui: Split up ContextMenu::render into smaller methods (#26489) 2025-03-11 22:26:22 +00:00
ui_input Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
ui_macros Add StatusToast & the ToastLayer (#26232) 2025-03-06 20:37:54 +00:00
util Worktree paths in git panel, take 2 (#26047) 2025-03-06 22:55:28 +00:00
util_macros windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
vim Fix auto-indent when pasting multi-line content that was copied start… (#26246) 2025-03-06 22:13:34 +00:00
vim_mode_setting Eliminate GPUI View, ViewContext, and WindowContext types (#22632) 2025-01-26 03:02:45 +00:00
welcome gpui: Rename rounded_md to rounded_sm (#26228) 2025-03-06 17:57:31 +00:00
workspace Fix panel not resizing after external file deletion (#26378) 2025-03-11 22:52:55 +00:00
worktree Improve when the commit suggestions would show (#26313) 2025-03-07 23:33:48 +00:00
zed Add 'Open Remote...' to File Menu (#26288) 2025-03-11 14:18:13 +00:00
zed_actions Add git branch switching aliases (#26315) 2025-03-08 00:02:57 +00:00
zeta Allow too many arguments (#26375) 2025-03-10 13:38:30 -06:00