Connect your repositories

Get every repository into Socket with no change developers can see, so you have a baseline before you test anything.

Socket SCA reads your manifests and lockfiles, resolves the full dependency tree, and scores every package. Your source code is not uploaded. On GitHub, the least-work way in is the Socket GitHub App: install it on every repository with silent mode on, and developers see nothing until you decide they should.

Not on GitHub, or want to gate from a pipeline instead? Use Scan from CI/CD.

Before you start:

  • A Socket organization. Its slug is in the dashboard URL: https://socket.dev/dashboard/org/your-org.
  • Owner rights on the GitHub organization, to install an app.
  • Node.js on your workstation, for the Socket CLI.
  • A Socket API token for the POC (Settings → API Tokens). One token with the scopes below covers every page in this guide.
ScopeUsed forPage
full-scans:createCreating scans (socket scan github, socket scan create, socket fix)This page, CI/CD, Full application reachability, Fix
repo:listFinding your repositories (socket scan github --all)This page
fixes:list, packages:listComputing fixes (socket fix)Fix what matters
full-scans:listReading scan results through the APICut CVE noise with reachability
historical:alerts-listFinding CVEs that have a patchPatch what you can't upgrade
report:readExporting SBOM and VEXExport SBOM and VEX

1. Install the app on one sandbox repository

Installing the app starts scanning open pull requests straight away. Install it on a single new repository first, so you can switch on silent mode before it sees anything else.

  1. In GitHub, create an empty repository named socket-poc-sandbox with a README, so it has a main branch. You'll use it again for the pull request test.
  2. Go to github.com/apps/socket-security and install the app on your organization.
  3. Under Repository access, choose Only select repositories and pick socket-poc-sandbox.

2. Turn on silent mode

In the Socket dashboard, open Settings → GitHub and turn on Silent Mode.

Socket still scans every commit and pull request and shows the results in the dashboard. It posts no comments and no check runs on GitHub.

📘

Silent mode is organization-wide

It covers every repository the app can see. You turn it off once, when you're ready, in Tune policy and enforce.

3. Give the app every repository

In GitHub, open Settings → GitHub Apps → Socket Security → Configure. Change Repository access to All repositories. Repositories you create later are included automatically.

4. Create the baseline

Socket scans a repository on its next commit or pull request that touches a manifest. To get a baseline for every repository now instead of waiting, scan each default branch from your workstation. This reads manifests through the GitHub API, so nothing is cloned.

First check Repositories in the dashboard. --all scans the repositories Socket already knows about, not every repository on GitHub. If some are missing, name them instead with --repos repo1,repo2.

npm install -g socket
socket login                       # paste your API token from Settings → API Tokens; sets your default org

# Fine-grained GitHub token with Contents: read-only on all repositories.
# Required even with the app installed.
export GITHUB_TOKEN=github_pat_...

socket scan github --all --org-github your-github-org --no-interactive

Each scan is marked as the repository's default-branch scan, which is what the Alerts page shows. The command doesn't wait for results.

Verify

  • Repositories in the dashboard lists your repositories
  • Alerts shows findings across repositories (allow 15 minutes to an hour after the baseline)
  • No Socket comments or checks appear on GitHub pull requests

Troubleshooting

SymptomCauseFix
A repository shows very few dependenciesNo lockfile, so only declared packages resolveCommit the lockfile (package-lock.json, pnpm-lock.yaml, yarn.lock, uv.lock, poetry.lock)
Python repository has packages but no dependency treeScanned from requirements.txtUse a lock file (uv.lock or poetry.lock). A top-level-only requirements.txt also misses packages
Gradle or sbt repository shows no dependenciesBuild files need to be resolved by the build tool firstScan it from CI, following the Gradle note in Scan from CI/CD
A repository is missing from AlertsAlerts shows default branches only, and there's no default-branch scan yetRerun step 4, or merge any manifest change
Internal packages show no findingsSocket doesn't analyze private packages, and their own dependencies don't appear in the graphExpected. Ask your Socket team about scanning the internal package's own repository
socket scan github asks which orgNo default org setRun socket login again, or add --org your-org

What the POC proves next

GoalPage
Scan repositories that aren't on GitHub, or gate a pipelineScan from CI/CD
Show a risky dependency is caught in a pull requestCatch risky dependencies in pull requests
Decide what fails a pull request, and whereTune policy and enforce
Flag or block by licenseLicense policy
Measure how much CVE noise goes awayCut CVE noise with reachability
Turn findings into upgrade pull requestsFix what matters
Remove CVEs that have no upgradePatch what you can't upgrade
Hand results to other toolsExport SBOM and VEX

Reference


Did this page help you?