Dependicus API Reference
    Preparing search index...

    Interface DependicusCliConfig

    interface DependicusCliConfig {
        cacheDir?: string;
        cliName?: string;
        dependicusBaseUrl: string;
        github?: {
            allowNewIssues?: boolean;
            cooldownDays?: number;
            getGitHubIssueSpec?: (
                context: VersionContext,
                store: FactStore,
            ) =>
                | {
                    assignment?: | { type: "unassigned" }
                    | { assignees: string[]; type: "assign" };
                    availableMajorVersion?: string;
                    commentSections?: { body: string; title: string }[];
                    daysOverdue?: number;
                    descriptionSections?: { body: string; title: string }[];
                    group?: string;
                    labels?: string[];
                    minimumVersion?: string;
                    owner: string;
                    ownerLabel?: string;
                    policy?:
                        | { type: "skip" }
                        | { rateLimitDays?: number; type: "fyi" }
                        | { rateLimitDays?: number; type: "dueDate" };
                    repo: string;
                    scope?: string;
                    targetVersion?: string;
                    thresholdDays?: number;
                    usedBy?: string[];
                }
                | {
                    assignment?: | { type: "unassigned" }
                    | { assignees: string[]; type: "assign" };
                    availableMajorVersion?: string;
                    commentSections?: { body: string; title: string }[];
                    daysOverdue?: number;
                    descriptionSections?: { body: string; title: string }[];
                    group?: string;
                    labels?: string[];
                    minimumVersion?: string;
                    owner: string;
                    ownerLabel?: string;
                    policy?:
                        | { type: "skip" }
                        | { rateLimitDays?: number; type: "fyi" }
                        | { rateLimitDays?: number; type: "dueDate" };
                    repo: string;
                    scope?: string;
                    targetVersion?: string;
                    thresholdDays?: number;
                    usedBy?: string[];
                }[]
                | undefined;
            rateLimitDays?: number;
        };
        linear?: {
            allowNewIssues?: boolean;
            cooldownDays?: number;
            getLinearIssueSpec?: (
                context: VersionContext,
                store: FactStore,
            ) =>
                | {
                    assignment?: | { type: "unassigned" }
                    | { assigneeId: string; type: "delegate" };
                    availableMajorVersion?: string;
                    commentSections?: { body: string; title: string }[];
                    daysOverdue?: number;
                    descriptionSections?: { body: string; title: string }[];
                    group?: string;
                    minimumVersion?: string;
                    ownerLabel?: string;
                    policy?:
                        | { type: "skip" }
                        | { rateLimitDays?: number; type: "fyi" }
                        | { rateLimitDays?: number; type: "dueDate" };
                    scope?: string;
                    targetVersion?: string;
                    teamId: string;
                    thresholdDays?: number;
                    usedBy?: string[];
                }
                | {
                    assignment?: | { type: "unassigned" }
                    | { assigneeId: string; type: "delegate" };
                    availableMajorVersion?: string;
                    commentSections?: { body: string; title: string }[];
                    daysOverdue?: number;
                    descriptionSections?: { body: string; title: string }[];
                    group?: string;
                    minimumVersion?: string;
                    ownerLabel?: string;
                    policy?:
                        | { type: "skip" }
                        | { rateLimitDays?: number; type: "fyi" }
                        | { rateLimitDays?: number; type: "dueDate" };
                    scope?: string;
                    targetVersion?: string;
                    teamId: string;
                    thresholdDays?: number;
                    usedBy?: string[];
                }[]
                | undefined;
            rateLimitDays?: number;
            skipStateNames?: string[];
        };
        outputDir?: string;
        plugins?: DependicusPlugin[];
        providerNames?: string[];
        providers?: DependencyProvider[];
        repoRoot?: string;
        siteName?: string;
    }
    Index

    Properties

    cacheDir?: string

    Directory to store cached data from API calls. Defaults to <repoRoot>/.dependicus-cache.

    cliName?: string

    Name of the CLI binary. Defaults to 'dependicus'.

    dependicusBaseUrl: string

    Base URL where the Dependicus site is published (used in Linear issue links, etc.).

    github?: {
        allowNewIssues?: boolean;
        cooldownDays?: number;
        getGitHubIssueSpec?: (
            context: VersionContext,
            store: FactStore,
        ) =>
            | {
                assignment?: | { type: "unassigned" }
                | { assignees: string[]; type: "assign" };
                availableMajorVersion?: string;
                commentSections?: { body: string; title: string }[];
                daysOverdue?: number;
                descriptionSections?: { body: string; title: string }[];
                group?: string;
                labels?: string[];
                minimumVersion?: string;
                owner: string;
                ownerLabel?: string;
                policy?:
                    | { type: "skip" }
                    | { rateLimitDays?: number; type: "fyi" }
                    | { rateLimitDays?: number; type: "dueDate" };
                repo: string;
                scope?: string;
                targetVersion?: string;
                thresholdDays?: number;
                usedBy?: string[];
            }
            | {
                assignment?: | { type: "unassigned" }
                | { assignees: string[]; type: "assign" };
                availableMajorVersion?: string;
                commentSections?: { body: string; title: string }[];
                daysOverdue?: number;
                descriptionSections?: { body: string; title: string }[];
                group?: string;
                labels?: string[];
                minimumVersion?: string;
                owner: string;
                ownerLabel?: string;
                policy?:
                    | { type: "skip" }
                    | { rateLimitDays?: number; type: "fyi" }
                    | { rateLimitDays?: number; type: "dueDate" };
                repo: string;
                scope?: string;
                targetVersion?: string;
                thresholdDays?: number;
                usedBy?: string[];
            }[]
            | undefined;
        rateLimitDays?: number;
    }

    GitHub Issues integration configuration.

    Type Declaration

    • OptionalallowNewIssues?: boolean

      Whether to allow new issue creation. Defaults to true.

    • OptionalcooldownDays?: number

      Number of days to wait before creating a new issue for a newly-published version.

    • OptionalgetGitHubIssueSpec?: (
          context: VersionContext,
          store: FactStore,
      ) =>
          | {
              assignment?: | { type: "unassigned" }
              | { assignees: string[]; type: "assign" };
              availableMajorVersion?: string;
              commentSections?: { body: string; title: string }[];
              daysOverdue?: number;
              descriptionSections?: { body: string; title: string }[];
              group?: string;
              labels?: string[];
              minimumVersion?: string;
              owner: string;
              ownerLabel?: string;
              policy?:
                  | { type: "skip" }
                  | { rateLimitDays?: number; type: "fyi" }
                  | { rateLimitDays?: number; type: "dueDate" };
              repo: string;
              scope?: string;
              targetVersion?: string;
              thresholdDays?: number;
              usedBy?: string[];
          }
          | {
              assignment?: | { type: "unassigned" }
              | { assignees: string[]; type: "assign" };
              availableMajorVersion?: string;
              commentSections?: { body: string; title: string }[];
              daysOverdue?: number;
              descriptionSections?: { body: string; title: string }[];
              group?: string;
              labels?: string[];
              minimumVersion?: string;
              owner: string;
              ownerLabel?: string;
              policy?:
                  | { type: "skip" }
                  | { rateLimitDays?: number; type: "fyi" }
                  | { rateLimitDays?: number; type: "dueDate" };
              repo: string;
              scope?: string;
              targetVersion?: string;
              thresholdDays?: number;
              usedBy?: string[];
          }[]
          | undefined

      Given information about a dependency and specific version, return the issue spec or undefined to skip. Return an array of specs with distinct scopes to file several issues for one dependency, e.g. one per team.

    • OptionalrateLimitDays?: number

      Default rate limit days for notification throttling. Used when per-policy rateLimitDays is not set.

    linear?: {
        allowNewIssues?: boolean;
        cooldownDays?: number;
        getLinearIssueSpec?: (
            context: VersionContext,
            store: FactStore,
        ) =>
            | {
                assignment?: | { type: "unassigned" }
                | { assigneeId: string; type: "delegate" };
                availableMajorVersion?: string;
                commentSections?: { body: string; title: string }[];
                daysOverdue?: number;
                descriptionSections?: { body: string; title: string }[];
                group?: string;
                minimumVersion?: string;
                ownerLabel?: string;
                policy?:
                    | { type: "skip" }
                    | { rateLimitDays?: number; type: "fyi" }
                    | { rateLimitDays?: number; type: "dueDate" };
                scope?: string;
                targetVersion?: string;
                teamId: string;
                thresholdDays?: number;
                usedBy?: string[];
            }
            | {
                assignment?: | { type: "unassigned" }
                | { assigneeId: string; type: "delegate" };
                availableMajorVersion?: string;
                commentSections?: { body: string; title: string }[];
                daysOverdue?: number;
                descriptionSections?: { body: string; title: string }[];
                group?: string;
                minimumVersion?: string;
                ownerLabel?: string;
                policy?:
                    | { type: "skip" }
                    | { rateLimitDays?: number; type: "fyi" }
                    | { rateLimitDays?: number; type: "dueDate" };
                scope?: string;
                targetVersion?: string;
                teamId: string;
                thresholdDays?: number;
                usedBy?: string[];
            }[]
            | undefined;
        rateLimitDays?: number;
        skipStateNames?: string[];
    }

    Linear issue integration configuration.

    Type Declaration

    • OptionalallowNewIssues?: boolean

      Whether to allow new issue creation. Defaults to true.

    • OptionalcooldownDays?: number

      Number of days to wait before creating a new issue for a newly-published version.

    • OptionalgetLinearIssueSpec?: (
          context: VersionContext,
          store: FactStore,
      ) =>
          | {
              assignment?: | { type: "unassigned" }
              | { assigneeId: string; type: "delegate" };
              availableMajorVersion?: string;
              commentSections?: { body: string; title: string }[];
              daysOverdue?: number;
              descriptionSections?: { body: string; title: string }[];
              group?: string;
              minimumVersion?: string;
              ownerLabel?: string;
              policy?:
                  | { type: "skip" }
                  | { rateLimitDays?: number; type: "fyi" }
                  | { rateLimitDays?: number; type: "dueDate" };
              scope?: string;
              targetVersion?: string;
              teamId: string;
              thresholdDays?: number;
              usedBy?: string[];
          }
          | {
              assignment?: | { type: "unassigned" }
              | { assigneeId: string; type: "delegate" };
              availableMajorVersion?: string;
              commentSections?: { body: string; title: string }[];
              daysOverdue?: number;
              descriptionSections?: { body: string; title: string }[];
              group?: string;
              minimumVersion?: string;
              ownerLabel?: string;
              policy?:
                  | { type: "skip" }
                  | { rateLimitDays?: number; type: "fyi" }
                  | { rateLimitDays?: number; type: "dueDate" };
              scope?: string;
              targetVersion?: string;
              teamId: string;
              thresholdDays?: number;
              usedBy?: string[];
          }[]
          | undefined

      Given information about a dependency and specific version, return the issue spec (policy, assignment, etc.) or undefined to skip. Return an array of specs with distinct scopes to file several issues for one dependency, e.g. one per team.

    • OptionalrateLimitDays?: number

      Default rate limit days for notification throttling. Used when per-policy rateLimitDays is not set.

    • OptionalskipStateNames?: string[]

      Skip updating issues whose Linear state name (case-insensitive) matches any entry.

    outputDir?: string

    Directory to write HTML and JSON output to. Defaults to <repoRoot>/dependicus-out.

    plugins?: DependicusPlugin[]

    Plugins that provide data sources, groupings, columns, and issue callbacks. Defaults to [].

    providerNames?: string[]

    Provider names to use for dependency analysis (e.g., 'pnpm', 'bun'). Auto-detects if omitted.

    providers?: DependencyProvider[]

    Pre-built provider instances. Takes precedence over providerNames and auto-detection.

    repoRoot?: string

    Root directory of the project. Defaults to process.cwd(). Can be overridden with --repo-root.

    siteName?: string

    Name shown in the site heading and title tag. Defaults to 'Dependicus for <basename of repoRoot>'.