Skip to main content

RegistriesConfig

Struct RegistriesConfig 

Source
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: bool

Issue #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: String

Issue #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 heredeps-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

Source§

fn clone(&self) -> RegistriesConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RegistriesConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RegistriesConfig

Source§

fn default() -> RegistriesConfig

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for RegistriesConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more