{"id":16541171,"url":"https://github.com/mjswensen/shoulders","last_synced_at":"2025-07-22T02:35:51.160Z","repository":{"id":40733274,"uuid":"211577964","full_name":"mjswensen/shoulders","owner":"mjswensen","description":"💛 Quickly view a list of your dependencies' open issues.","archived":false,"fork":false,"pushed_at":"2022-06-28T22:45:25.000Z","size":1661,"stargazers_count":64,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-27T12:37:53.890Z","etag":null,"topics":["contributing","hacktoberfest","issues","javascript","node-modules","npx","open-source","package-json"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/mjswensen.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-09-29T00:27:21.000Z","updated_at":"2024-11-26T04:20:49.000Z","dependencies_parsed_at":"2022-09-06T21:41:29.392Z","dependency_job_id":null,"html_url":"https://github.com/mjswensen/shoulders","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjswensen%2Fshoulders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjswensen%2Fshoulders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjswensen%2Fshoulders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjswensen%2Fshoulders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjswensen","download_url":"https://codeload.github.com/mjswensen/shoulders/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243826792,"owners_count":20354220,"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","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":["contributing","hacktoberfest","issues","javascript","node-modules","npx","open-source","package-json"],"created_at":"2024-10-11T18:54:18.819Z","updated_at":"2025-03-16T19:32:14.671Z","avatar_url":"https://github.com/mjswensen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e If I have seen a little further it is by standing on the shoulders of giants.\n\n_—Isaac Newton, John of Salisbury, and others before them_\n\n# shoulders\n\nQuickly view a list of open issues for the open-source packages that your project depends on.\n\n![shoulders demo](https://cdn.jsdelivr.net/gh/mjswensen/shoulders@500d434533d0bc296ba12e12cfa819c964b5bcd9/assets/demo.gif)\n\n_Terminal theme: [Rivet](https://themer.dev/?colors.dark.shade0=%230A0216\u0026colors.dark.shade7=%23FAF9FC\u0026colors.dark.accent0=%23F54456\u0026colors.dark.accent1=%23FC7022\u0026colors.dark.accent2=%23D6CD00\u0026colors.dark.accent3=%2391E827\u0026colors.dark.accent4=%2300C580\u0026colors.dark.accent5=%23305DFB\u0026colors.dark.accent6=%237635DE\u0026colors.dark.accent7=%23F98FD1\u0026colors.light.shade0=%23FFFFFF\u0026colors.light.shade7=%230A0216\u0026colors.light.accent0=%23B20718\u0026colors.light.accent1=%23D55913\u0026colors.light.accent2=%23938C00\u0026colors.light.accent3=%234BAD00\u0026colors.light.accent4=%233F9373\u0026colors.light.accent5=%230029BB\u0026colors.light.accent6=%234300AC\u0026colors.light.accent7=%23A63F80\u0026activeColorSet=dark\u0026calculateIntermediaryShades.dark=true\u0026calculateIntermediaryShades.light=true) by [themer](https://github.com/mjswensen/themer)_\n\n## Usage\n\n```sh\nnpx shoulders\n```\n\n`shoulders` will find dependencies in the `node_modules` folder, identify corresponding repositories on GitHub, and query GitHub's API for open issues.\n\nIf your project depends on many packages you will likely run into rate limiting errors from the GitHub API; you can increase the limit by using a [personal access token](https://github.com/settings/tokens/new) (the only scope needed is `public_repo`) and passing it to `shoulders` via the `$GITHUB_TOKEN` environment variable:\n\n```sh\nGITHUB_TOKEN='\u003cyour token\u003e' npx shoulders\n```\n\n## Parameters\n\n| Name                          | Type     | Short description                    |\n| ----------------------------- | -------- | ------------------------------------ |\n| [--labels](#issue-filtering)  | `string` | Filter issues by labels              |\n| [--depth](#controlling-depth) | `number` | Look for issues only `n` levels deep |\n| [--format](#output-format)    | `string` | Format the output                    |\n\n### Issue Filtering\n\nIn addition to listing all open issues, you can optionally include\na comma-separated list of labels to use. For example, to see only\nissues with the `bug` label:\n\n```sh\nnpx shoulders --labels bug\n```\n\nOr to include multiple labels, you can do:\n\n```sh\nnpx shoulders --labels=\"bug,good first issue\"\n```\n\n### Controlling Depth\n\nIf you wish to look for issues only `n` levels deep, you can specify\na depth parameter:\n\n```sh\n# Look for issues in your direct dependencies\nnpx shoulders --depth=0\n```\n\n### Output Format\n\nYou can format the output by passing a format parameter:\n\n```sh\nnpx shoulders --format html\n```\n\nIf you'd like to create a new file you can pipe the output like this:\n\n```sh\nnpx shoulders --format html \u003e output.html\n```\n\nThe available formats are currently `console` (default), `html` and `md` (markdown).\n\n## Why?\n\nModern software would not be possible without the mountains of previous work by others—much of it open source—as its foundation. In the spirit of [Hacktoberfest 2019](https://hacktoberfest.digitalocean.com), this simple script makes it a little bit easier to find a way to support the projects that we depend on so heavily.\n\n## License\n\nMIT \u0026copy; [Matt Swensen](https://mjswensen.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjswensen%2Fshoulders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjswensen%2Fshoulders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjswensen%2Fshoulders/lists"}