CI providers
Copy-paste snippets for your pipeline 01 · CI runner
npm ci Credentials from your CI secret store
02 · Chainsaw proxy
Policy on every fetch
/chainproxy/repository/@default/npmjs/
03 · Audit record
One audit row per fetch
Splunk HEC, Sentinel, QRadar or a webhook (table below)
GitHub Actions - name: Configure Chainsaw
env:
CHAINSAW_CLIENT_ID: ${{ secrets.CHAINSAW_CLIENT_ID }}
CHAINSAW_CLIENT_SECRET: ${{ secrets.CHAINSAW_CLIENT_SECRET }}
run: |
echo "registry=https://chain305.com/chainproxy/repository/@default/npmjs/" >> .npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:_authToken=$CHAINSAW_CLIENT_ID:$CHAINSAW_CLIENT_SECRET" >> .npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:always-auth=true" >> .npmrc
- name: Install
run: npm ci GitLab CI install:
script:
- echo "registry=https://chain305.com/chainproxy/repository/@default/npmjs/" >> ~/.npmrc
- echo "//chain305.com/chainproxy/repository/@default/npmjs/:_authToken=$CHAINSAW_CLIENT_ID:$CHAINSAW_CLIENT_SECRET" >> ~/.npmrc
- echo "//chain305.com/chainproxy/repository/@default/npmjs/:always-auth=true" >> ~/.npmrc
- npm ci Jenkins withCredentials([usernamePassword(credentialsId: 'chainsaw',
usernameVariable: 'CHAINSAW_CLIENT_ID', passwordVariable: 'CHAINSAW_CLIENT_SECRET')]) {
sh '''
echo "registry=https://chain305.com/chainproxy/repository/@default/npmjs/" > .npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:_authToken=$CHAINSAW_CLIENT_ID:$CHAINSAW_CLIENT_SECRET" >> .npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:always-auth=true" >> .npmrc
npm ci
'''
} CircleCI - run:
name: Configure Chainsaw
command: |
echo "registry=https://chain305.com/chainproxy/repository/@default/npmjs/" >> ~/.npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:_authToken=$CHAINSAW_CLIENT_ID:$CHAINSAW_CLIENT_SECRET" >> ~/.npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:always-auth=true" >> ~/.npmrc
- run: npm ci Azure Pipelines - script: |
echo "registry=https://chain305.com/chainproxy/repository/@default/npmjs/" >> ~/.npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:_authToken=$(CHAINSAW_CLIENT_ID):$(CHAINSAW_CLIENT_SECRET)" >> ~/.npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:always-auth=true" >> ~/.npmrc
npm ci
displayName: Install via Chainsaw Buildkite steps:
- label: "Install"
command: |
echo "registry=https://chain305.com/chainproxy/repository/@default/npmjs/" >> .npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:_authToken=$CHAINSAW_CLIENT_ID:$CHAINSAW_CLIENT_SECRET" >> .npmrc
echo "//chain305.com/chainproxy/repository/@default/npmjs/:always-auth=true" >> .npmrc
npm ci Drone CI kind: pipeline
type: docker
name: default
steps:
- name: install
image: node:20
environment:
CHAINSAW_CLIENT_ID:
from_secret: chainsaw_client_id
CHAINSAW_CLIENT_SECRET:
from_secret: chainsaw_client_secret
commands:
- echo "registry=https://chain305.com/chainproxy/repository/@default/npmjs/" >> .npmrc
- echo "//chain305.com/chainproxy/repository/@default/npmjs/:_authToken=$CHAINSAW_CLIENT_ID:$CHAINSAW_CLIENT_SECRET" >> .npmrc
- echo "//chain305.com/chainproxy/repository/@default/npmjs/:always-auth=true" >> .npmrc
- npm ci