Repository navigation
v0.2.0
·
21 commits
to main
since this release
Added
- Plugin lifecycle hook: plugins can implement
init(ctx: PluginContext)to receiveCacheServiceafter services are created but before data collection.PluginContextis exported from@dependicus/core. softDependsOnonDataSource: sources can declare optional ordering dependencies that are respected when present in the pool and silently ignored when absent. Provider sources and plugin sources now run in a single topological sort per ecosystem, so plugin sources can declare ordering relative to provider sources.ColumnContexttype in@dependicus/coreshared byCustomColumncallbacks andUsedByGroupKeyFn, carryingname,version,store, andecosystemin one object.CacheServiceis now re-exported from the top-leveldependicuspackage, so plugins and consumers no longer need to import it from@dependicus/coredirectly.getGroupingFilename()helper for building URL-safe filenames from grouping values, analogous togetDetailFilename()for dependency pages.SecurityPluginfor querying public vulnerability databases (OSV, deps.dev, GitHub Advisory) and enriching the dashboard with severity, fix availability, deprecation status, and advisory details. Findings are attached to Linear and GitHub issue tickets and shown on grouping detail pages. Enable via--vuln-sourceCLI flag or programmatically.- Issue lifecycle comments: when Dependicus closes or reopens an issue, it posts a comment explaining why with version details and policy context. Plugins can contribute additional context via
commentSectionson the issue spec (same shape asdescriptionSections). - Closed-issue reopen: when about to create a new issue, Dependicus first searches for a closed issue with an identical title and reopens it instead of creating a duplicate.
- Flapping prevention: the close loop skips closing when a dependency or group was absent from provider input, preventing spurious close/reopen cycles caused by transient provider failures or external agents closing tickets.
Changed
- Breaking:
CustomColumn.getValue,getTooltip, andgetFilterValuenow take a singleColumnContextargument instead of(name, version, store, ecosystem). - Breaking:
UsedByGroupKeyFnnow takesColumnContextinstead of(name, version, store). - Breaking:
buildIssueDescriptionandbuildGroupIssueDescriptionin both@dependicus/linearand@dependicus/github-issuesnow take a single params object (IssueDescriptionParams/GroupDescriptionParams) instead of positional arguments. - Breaking: Plugin issue spec merging no longer validates with Zod immediately.
ResolvedPlugins.getLinearIssueSpecandgetGitHubIssueSpecreturnPartial<Spec> | undefined. Validation happens in the CLI after flag injection via newvalidateLinearIssueSpec/validateGitHubIssueSpechelpers. - Breaking: Direct
config.linear.getLinearIssueSpecandconfig.github.getGitHubIssueSpecare now merged with plugin specs instead of overriding them. Config specs provide defaults; plugin specs can override scalar fields;descriptionSectionsfrom all sources are concatenated.
Fixed
- Grouping detail pages (surfaces, teams) with spaces, parentheses, or other URL-unsafe characters in their names now produce sanitized filenames instead of raw values, fixing 404s on static file servers.
- The pnpm and aube providers now work on single-package repos (no
pnpm-workspace.yaml). Previously they unconditionally used-r listwhich could produce malformed output or error outside a workspace.