{"id":18667758,"url":"https://github.com/temando/scavenger-cli","last_synced_at":"2025-07-28T19:33:17.739Z","repository":{"id":57356260,"uuid":"113412278","full_name":"temando/scavenger-cli","owner":"temando","description":"A CLI tool to aggregate files from various sources.","archived":false,"fork":false,"pushed_at":"2018-01-18T04:43:49.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-19T19:46:01.602Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/temando.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-07T06:32:01.000Z","updated_at":"2017-12-07T12:05:13.000Z","dependencies_parsed_at":"2022-09-26T16:31:52.371Z","dependency_job_id":null,"html_url":"https://github.com/temando/scavenger-cli","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/temando/scavenger-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temando%2Fscavenger-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temando%2Fscavenger-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temando%2Fscavenger-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temando%2Fscavenger-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/temando","download_url":"https://codeload.github.com/temando/scavenger-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temando%2Fscavenger-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267574289,"owners_count":24109948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T08:39:57.514Z","updated_at":"2025-07-28T19:33:17.712Z","avatar_url":"https://github.com/temando.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Scavenger CLI\n\n[![NPM](https://img.shields.io/npm/v/scavenger-cli.svg)](https://npmjs.org/packages/scavenger-cli/)\n[![Travis CI](https://img.shields.io/travis/temando/scavenger-cli.svg)](https://travis-ci.org/temando/scavenger-cli)\n[![MIT License](https://img.shields.io/github/license/temando/scavenger-cli.svg)](https://en.wikipedia.org/wiki/MIT_License)\n\nScavenger aggregates documentation from project repositories and prepares it for static HTML generation.\n\n## Installation\n\nInstall Scavenger globally for ease of use. To install Scavenger, run the following command:\n\n```sh\n$ npm install -g scavenger-cli\n```\n\n## Using Scavenger\n\nScavenger provides a utility called `scavenger`.\n\n`scavenger` provides several sub-commands commands outlined below.\n\n### `scout`\n\nThe `scout` command is responsible for discovering projects through scents. `scout` writes a local definitions file for use with other `scavenger` sub-commands. Scents are dynamically loaded packages that follow the `scavenger-scent-{package-name}` convention.\n\nFor example, to invoke the [NPM Scent](https://github.com/temando/scavenger-scent-npm/), pass the name of the scent as the first argument and any further arguments will be pass on to the scent.\n\n```sh\n$ scavenger scout npm temando:developers\n```\n\nFor a list of options that can be uses with `scout`, run the following command:\n\n```sh\n$ scavenger scout --help\n```\n\nFor maximum compatibility with scents, add these options _last_.\n\n#### Definitions file\n\nA definitions file is a JSON file that describes how to get the source code for project, for example:\n\n```json\n[\n  {\n    \"id\": \"remark-graphviz\",\n    \"name\": \"remark-graphviz\",\n    \"repositoryUrl\": \"https://github.com/temando/remark-graphviz.git\",\n    \"commitIsh\": \"master\"\n  },\n  {\n    \"id\": \"remark-gitlab-artifact\",\n    \"name\": \"remark-gitlab-artifact\",\n    \"repositoryUrl\": \"https://github.com/temando/remark-gitlab-artifact.git\"\n  }\n]\n```\n\n### `fetch`\n\nThe `fetch` command parses the definitions file from the `scout` command and fetches a copy of the project for the specified project id.\n\nFor example, to fetch a copy of the `remark-graphviz` project, run the following command:\n\n```sh\n$ scavenger fetch --input path/to/definitions.json --filter remark-graphviz\n```\n\nNote that `remark-graphviz` matches the `id` from the definitions file. If the `--filter` option is omitted, all projects defined in the definitions file will be fetched.\n\nFor a list of options that can be used with `fetch`, run the following command:\n\n```sh\n$ scavenger fetch --help\n```\n\n### `thieve`\n\nThe `thieve` command takes the documentation from the fetch project and copies it into a staging area (`docs` sub-directory).\n\nFor example, to thieve the documentation for the `remark-gitlab-artifact` project, run the following command:\n\n```sh\n$ scavenger thieve remark-gitlab-artifact\n```\n\n\u003e Note that the project name `remark-gitlab-artifact` matches `id` under the [definitions file](#definitions-file).\n\nFor a list of options that can be uses with `thieve`, run the following command:\n\n```sh\n$ scavenger thieve --help\n```\n\nDocumentation is defined as either:\n\n- Files specified in `.scavengerrc.json` file located in either:\n    - The project's path.\n    - The current working directory of `scavenger`.\n- The following in the project's root, if no `.scavengerrc.json` file is found:\n    - `/README.md`\n    - `/CONTRIBUTING.md`\n    - `/CHANGELOG.md`\n    - `/resources/*`\n    - `/ts-definition.json/yaml/yml`\n\n\u003e A `.scavengerrc.json` file completely overrides default heuristics. They are not included with thieving files.\n\u003e A `.scavengerrc.json` file in the current working directory will override one found in the project directory.\n\nThe following `.scavengerrc.json` explicitly includes the files that would otherwise be added by the default heuristics, the `manual` directory and its contents:\n\n```json\n{\n  \"docs\": [\n    \"manual\",\n    \"README.md\",\n    \"CONTRIBUTING.md\",\n    \"CHANGELOG.md\"\n  ]\n}\n```\n\n### `devour`\n\nThe `devour` command combines the `fetch` and `thieve` commands for all projects registered in the definitions file generated by `scout`.\n\nTo `fetch` and `thieve` all projects listed in a definitions file called `projects.json`, run the following command:\n\n```sh\n$ scavenger devour --input projects.json\n```\n\nFor a list of options that can be uses with `devour`, run the following command:\n\n```sh\n$ scavenger devour --help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemando%2Fscavenger-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemando%2Fscavenger-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemando%2Fscavenger-cli/lists"}