Observed since 20 Oct, 21:56 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@01a/git-sentinel
[](https://www.npmjs.com/package/@01a/git-sentinel) [](https://www.npmjs.com/package/@01a/git-sentinel) [ attacks, and obfuscated malware. It helps developers and security researchers safely inspect untrusted repositories before running scripts or including them in their projects.
./configure or install scripts) in an isolated, non-networked Docker container.... or . commonly used by malware.Clone this repository:
git clone https://github.com/youruser/git-sentinel.git
cd git-sentinel
Install dependencies:
npm install
Build the project:
npm run build
The easiest way to run Git Sentinel is with npx:
npx @01a/git-sentinel scan <url-or-path> [options]
Or you can run it directly using npm start after cloning the repository.
You can try scanning this repository itself to see Git Sentinel in action:
npx @01a/git-sentinel scan git@github.com:eknowlton/git-sentinel.git
| Option | Shortcut | Description |
|---|---|---|
--run-script <script> | -s | Execute a specific script from the repo in an isolated sandbox. |
--rules-dir <dir> | -r | Include custom JSON rule files from a specific directory. |
--keep-repo | Do not delete the cloned repository after the scan completes. | |
--version | -v | Show the version number. |
--help | -h | Show help information. |
To scan a repository and safely test its install.sh script:
npm start -- scan https://github.com/example/repo.git -s ./install.sh
Custom rules are JSON files containing an array of rule objects.
Example custom-rules/my-rules.json:
[
{
"pattern": "rm -rf /",
"description": "Attempted destruction of the root directory",
"severity": "critical"
}
]
Run with custom rules:
npm start -- scan ./target-repo -r ./custom-rules
The sandbox uses Docker to create an isolated environment with the following constraints:
--network none)./repo.sentinel user.bash, python3, and coreutils pre-installed.Git Sentinel is provided "as is", without warranty of any kind, express or implied.
The authors and contributors of this project:
Security scanning is an inherently complex task. This tool should be used as part of a broader security strategy and not as a sole source of truth. Use at your own risk.
ISC License. See package.json for details.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
chalkEnvironment{
"local_name": "chalk",
"alias": false,
"peer_metadata": null
} | ^5.6.2 | runtime |
commanderEnvironment{
"local_name": "commander",
"alias": false,
"peer_metadata": null
} | ^14.0.3 | runtime |
dockerodeEnvironment{
"local_name": "dockerode",
"alias": false,
"peer_metadata": null
} | ^4.0.10 | runtime |
simple-gitEnvironment{
"local_name": "simple-git",
"alias": false,
"peer_metadata": null
} | ^3.33.0 | runtime |
@types/chalkEnvironment{
"local_name": "@types/chalk",
"alias": false,
"peer_metadata": null
} | ^0.4.31 | runtime |
@types/dockerodeEnvironment{
"local_name": "@types/dockerode",
"alias": false,
"peer_metadata": null
} | ^4.0.1 | runtime |
tsxEnvironment{
"local_name": "tsx",
"alias": false,
"peer_metadata": null
} | ^4.21.0 | development |
ts-nodeEnvironment{
"local_name": "ts-node",
"alias": false,
"peer_metadata": null
} | ^10.9.2 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.9.3 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^25.5.0 | development |
Source distribution
{
"shasum": "54d9b11937115bd7830124382f550555cd99ddaf",
"tarball": "https://registry.npmjs.org/@01a/git-sentinel/-/git-sentinel-1.1.3.tgz",
"fileCount": 17,
"integrity": "sha512-ELlbSHSEzcVzWCGxoz4wJfxwd+IiIH09b2TY+pyd3W+oP9kskZqIvnSOVIT9knTBvqMTet0HpoRpE/J6IBhwWQ==",
"signatures": [
{
"sig": "MEQCICHaoUsRdOB3EjOUikoSv9N/8hN/ajRLsO6Nb0Z9pj+AAiA8cfiSFlSh30oF4InsEKPQNnyqoU27P5lFquDzYWSUlw==",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 32197
}Observed since 20 Oct, 21:56 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:2ca5123fec681c31ea265c8dca27cf2316b2f3bc3d83f517436799cac638c5fc