ENGINEERING

Nightly dependency-license inventory snapshot to Postgres

Each night, walks every tracked repository's lockfile, records each dependency and its resolved license into a Postgres table.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNightly schedule
  • ActionList repositories and fetch each lockfileGitHubGitHub
  • ActionResolve SPDX license for every dependencyHTTP webhook
  • ActionUpsert per-package license rows into PostgresPostgreSQLPostgres
  • OutputWrite snapshot summary row with copyleft/unknown countsPostgreSQLPostgres

What it does

Builds and maintains a queryable license inventory. On a nightly schedule it enumerates your repositories, reads each lockfile, resolves every dependency's license, and upserts the full set into a Postgres table keyed by repo, package, version, and snapshot date. Over time this becomes a historical record you can diff to see exactly when a copyleft package entered the tree.

When to use it

Use it when you need an auditable, point-in-time source of truth for legal or compliance teams, or when you want to run ad-hoc SQL like "which repos pulled in an AGPL package this quarter." Complements a PR gate by giving you the long view.

How it works

  1. 1A nightly schedule triggers the run.
  2. 2The flow lists target repositories and pulls the current lockfile from each.
  3. 3It resolves the SPDX license for every dependency in every lockfile.
  4. 4Each row (repo, package, version, license, snapshot timestamp) is upserted into the Postgres inventory table.
  5. 5The final step writes a snapshot summary row recording total packages and count of copyleft/unknown licenses for trend reporting.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitHubRepos, issues, pull requests, actions.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  3. 3
    Connect HTTP webhookTrigger any URL on agent actions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.