pub struct RegistriesConfig {
pub workspace_registries: WorkspaceRegistriesSetting,
pub nuget_user_profile_sources: bool,
pub gitlab_instance_host: String,
}Expand description
Cross-ecosystem workspace-declared registry settings (spec #443/plan-1b §1.7, renamed
from cargo.workspace_registries by 032-npm-npmrc-registry-support FR-008/C2).
Breaking, pre-1.0, no alias. HttpCache holds exactly one global
Arc<RegistryAccessPolicy>, so this setting was never actually Cargo-scoped — it already
governed every ecosystem’s workspace-declared registry fetches (the npm .npmrc
registry=/@scope:registry= path included, once that feature also reads it). A client
still sending the old cargo key fails DepsConfig’s top-level deny_unknown_fields
parse — since that attribute sits on DepsConfig itself, not on this section, the
rejection takes the whole settings payload with it, not just this one setting. Sent at
initialize (the common case) that means every setting reverts to its default — safely,
for the security-relevant one here, since WorkspaceRegistriesSetting::default() is
PublicOnly and HttpCache::new already starts there; sent later via
workspace/didChangeConfiguration the previously applied configuration is kept instead.
Either way the failure is logged (tracing::warn!), just not surfaced by most editors.
§Examples
use deps_lsp::config::{RegistriesConfig, WorkspaceRegistriesSetting};
let config = RegistriesConfig::default();
assert_eq!(config.workspace_registries, WorkspaceRegistriesSetting::PublicOnly);Fields§
§workspace_registries: WorkspaceRegistriesSetting§nuget_user_profile_sources: boolIssue #561, FR-006: whether a NuGet user-profile-tier NuGet.Config <add> with no
repo-declared counterpart becomes a routing hop (AlternateRegistry-sourced, so
OSV/deps.dev/hover-trust are suppressed for it — spec 035 §5a), not just a credential
source for a repo-declared entry at the same URL. #[serde(default)]: additive-safe,
since RegistriesConfig itself is not under DepsConfig’s top-level
deny_unknown_fields. Default false — zero routing effect from any user-profile file
unless explicitly opted in.
gitlab_instance_host: StringIssue #466, spec FR-005a/FR-011a: the GitLab instance host that project: includes
and $CI_SERVER_FQDN-relative component: includes resolve against, and — replacing,
not joined with, gitlab.com — the only host GITLAB_TOKEN may be sent to.
#[serde(default)]: additive-safe, same rationale as nuget_user_profile_sources
above. Default "" (unset); an empty string is written through as None into the
shared Arc<RwLock<Option<String>>> handle. No validation happens here —
deps-lsp must not depend on deps-gitlab-ci for host semantics; an invalid value is
rejected on read by deps_gitlab_ci::host::GitlabInstanceHost::get, which also
documents the already-open-document limitation of a live change to this setting.
Trait Implementations§
Source§impl Clone for RegistriesConfig
impl Clone for RegistriesConfig
Source§fn clone(&self) -> RegistriesConfig
fn clone(&self) -> RegistriesConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RegistriesConfig
impl Debug for RegistriesConfig
Source§impl Default for RegistriesConfig
impl Default for RegistriesConfig
Source§fn default() -> RegistriesConfig
fn default() -> RegistriesConfig
Source§impl<'de> Deserialize<'de> for RegistriesConfig
impl<'de> Deserialize<'de> for RegistriesConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for RegistriesConfig
impl RefUnwindSafe for RegistriesConfig
impl Send for RegistriesConfig
impl Sync for RegistriesConfig
impl Unpin for RegistriesConfig
impl UnsafeUnpin for RegistriesConfig
impl UnwindSafe for RegistriesConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more