mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-15 23:03:57 +00:00
88c4e0b2d8
This PR adds a registry for `GitHostingProvider`s. The intent here is to help decouple these provider-specific concerns from the lower-level `git` crate. Similar to languages, the Git hosting providers live in the new `git_hosting_providers` crate. This work also lays the foundation for if we wanted to allow defining a `GitHostingProvider` from within an extension. This could be useful if we wanted to extend the support to work with self-hosted Git providers (like GitHub Enterprise). I also took the opportunity to move some of the provider-specific code out of the `util` crate, since it had leaked into there. Release Notes: - N/A
26 lines
874 B
Rust
26 lines
874 B
Rust
mod providers;
|
|
|
|
use std::sync::Arc;
|
|
|
|
use git::GitHostingProviderRegistry;
|
|
use gpui::AppContext;
|
|
|
|
pub use crate::providers::*;
|
|
|
|
/// Initializes the Git hosting providers.
|
|
pub fn init(cx: &mut AppContext) {
|
|
let provider_registry = GitHostingProviderRegistry::global(cx);
|
|
|
|
// The providers are stored in a `BTreeMap`, so insertion order matters.
|
|
// GitHub comes first.
|
|
provider_registry.register_hosting_provider(Arc::new(Github));
|
|
|
|
// Then GitLab.
|
|
provider_registry.register_hosting_provider(Arc::new(Gitlab));
|
|
|
|
// Then the other providers, in the order they were added.
|
|
provider_registry.register_hosting_provider(Arc::new(Gitee));
|
|
provider_registry.register_hosting_provider(Arc::new(Bitbucket));
|
|
provider_registry.register_hosting_provider(Arc::new(Sourcehut));
|
|
provider_registry.register_hosting_provider(Arc::new(Codeberg));
|
|
}
|