{"id":13393661,"url":"https://github.com/phillipalexander/ghi","last_synced_at":"2026-01-18T13:39:55.818Z","repository":{"id":12621813,"uuid":"15293033","full_name":"phillipalexander/ghi","owner":"phillipalexander","description":"GitHub Interface - a minimal command-line tool ","archived":false,"fork":false,"pushed_at":"2016-10-03T22:13:35.000Z","size":39,"stargazers_count":42,"open_issues_count":1,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-15T07:50:14.424Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phillipalexander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-18T20:06:32.000Z","updated_at":"2021-01-25T13:05:30.000Z","dependencies_parsed_at":"2022-09-19T07:51:10.878Z","dependency_job_id":null,"html_url":"https://github.com/phillipalexander/ghi","commit_stats":null,"previous_names":["phillipalexander/forkchop","macroscope/ghi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phillipalexander/ghi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipalexander%2Fghi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipalexander%2Fghi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipalexander%2Fghi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipalexander%2Fghi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phillipalexander","download_url":"https://codeload.github.com/phillipalexander/ghi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipalexander%2Fghi/sbom","scorecard":{"id":731568,"data":{"date":"2025-08-11","repo":{"name":"github.com/phillipalexander/ghi","commit":"36e1d9e84c457e2726a76d1891b23ef0939fb75e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 4/28 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T14:35:14.443Z","repository_id":12621813,"created_at":"2025-08-22T14:35:14.443Z","updated_at":"2025-08-22T14:35:14.443Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28536767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T13:04:05.990Z","status":"ssl_error","status_checked_at":"2026-01-18T13:01:44.092Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-07-30T17:00:58.247Z","updated_at":"2026-01-18T13:39:55.798Z","avatar_url":"https://github.com/phillipalexander.png","language":"JavaScript","funding_links":[],"categories":["Command line"],"sub_categories":[],"readme":"# ghi\nGitHub Interface - an awesome command line tool\n\n## Description\n\nSimple command line tool created to automate the repetitive GitHub operations I perform regularly.\n\n## Installation\n\n### Developer (you want to contribute)\nIf you'd like to contribute to the repo:\n  1. clone down the repo\n\n    ```sh\n    git clone git@github.com:phillipalexander/ghi.git\n    ```\n\n  1. cd to the root directory of the project\n\n    ```sh\n    cd ./ghi\n    ```\n\n  1. use [npm-link](https://www.npmjs.org/doc/cli/npm-link.html) to create a local link to the github repo so that you can develop on it more effectively\n\n    ```sh\n    npm link\n    ```\n\n  1. start hacking!\n\n### Basic (you just want it to work)\n\nIf you're not interested in contributing right now, just use npm to install ghi:\n\n```\n$ npm install -g ghi\n```\n\n## Configuration\n\nTo use the ghi tool, you must configure the config.json file in the root directory. To do so, run any of the commands below and follow the instructions when prompted.\n\nThe default configuration file contains the following:\n\n```json\n{\n  \"github\": {\n    \"token\": \"OAUTH_TOKEN\",\n    \"webhook\": \"WEBHOOK_CONFIG_OBJECT\"\n  },\n  \"settings\": {\n    \"openurls\": false\n  }\n}\n```\n\n## Commands\n\n### Configuration Commands\n\n#### c (configure)\n\n```sh\nUsage: c\nDescription: Configure: edit application settings\nExample: ghi c\nOptions:\n\n  -h, --help     output usage information\n  -V, --version  output the version number\n```\n\n### Repo Commands\n\n#### rc (repo create)\n\n```sh\nUsage: rc \u003corgname/reponame\u003e\nDescription: Repo Create: Create a repo on GitHub\nExample: ghi rc macroscope/blog\nOptions:\n\n  -h, --help     output usage information\n  -V, --version  output the version number\n```\n\n##### Things to Note:\n  - If `settings.openurls = true` in `config.json`, when running `ghi rc \u003corgname\u003e/reponame\u003e` the resulting github page will be opened automatically in your default browser.\n  - If you replace `\"WEBHOOK_CONFIG_OBJECT\"` in `config.json` with a properly formated GitHub webhook configuration object, when running `ghi rc \u003corgname\u003e/reponame\u003e` that webhook will automatically be set on all repos created within orgs.\n\n#### rd (repo destroy)\n\n```sh\nUsage: rd \u003corgname/reponame\u003e\nDescription: Repo Destroy: Destroy a repo on GitHub\nExample: ghi rd macroscope/blog\nOptions:\n\n  -h, --help     output usage information\n  -V, --version  output the version number\n```\n\n#### rhc (repo hook add)\n\n```sh\nUsage: rhc \u003corgname/reponame\u003e\nDescription: Repo Hook Create: Add webhook defined in config.json to a repo\nExample: ghi rhc macroscope/blog\nOptions:\n\n  -h, --help     output usage information\n  -V, --version  output the version number\n```\n\n#### rpn (repo patch name)\n\n```sh\nUsage: rpn [options]\nDescription: Repo Patch Name: change the name of an existing repo\nExample: ghi rpn -o \"macroscope\" -r \"venus\" -p \"mars\"\nOptions:\n\n  -h, --help               output usage information\n  -o, --org \u003corgname\u003e      GitHub OrgName\n  -r, --repo \u003creponame\u003e    GitHub RepoName\n  -p, --patch \u003cpatchdata\u003e  Updated RepoName\n```\n\n#### rs (repo sync)\n\n```sh\nUsage: rs [options]\nDescription: Repo Sync: sync a repo across owners using force push\nExample: ghi rs -s \"macroscope\" -t \"phillipalexander\" -r \"mars\"\n  Options:\n\n    -h, --help                       output usage information\n    -s, --ownersource \u003cownersource\u003e  GitHub Source Owner\n    -t, --ownertarget \u003cownertarget\u003e  GitHub Target Owner\n    -r, --reponame \u003creponame\u003e        RepoName\n```\n\n### Team Commands\n\n#### tua (team user add)\n\n```sh\nUsage: tua [options]\nDescription: Team User Add: Add a GitHub user to an existing team\nExample: ghi tua -o \"macroscope\" -t \"awesome force\" -u \"jasper\"\nOptions:\n\n  -h, --help             output usage information\n  -o, --org \u003corgname\u003e    GitHub OrgName\n  -t, --team \u003cteamname\u003e  GitHub TeamName\n  -u, --user \u003cusername\u003e  GitHub UserName\n```\n\n#### tra (team repo add)\n\n```sh\nUsage: tra [options]\nDescription: Team Repo Add: Add a GitHub repo to an existing team\nExample: ghi tra -o \"macroscope\" -t \"awesome force\" -r \"blog\"\nOptions:\n\n  -h, --help             output usage information\n  -o, --org \u003corgname\u003e    GitHub OrgName\n  -t, --team \u003cteamname\u003e  GitHub TeamName\n  -u, --repo \u003creponame\u003e  GitHub RepoName\n```\n\n### Org Commands\n\n#### ogt (team get all)\n\n```sh\nUsage: ogt \u003corgname\u003e\nDescription: Org Get Teams: Get the first 100 teams associated with an Org\nExample: ghi ogt macroscope\nOptions:\n\n  -h, --help     output usage information\n  -V, --version  output the version number\n```\n\n#### ogr (org get repos)\n\n```sh\nUsage: ogr \u003corgname\u003e\nDescription: Org Get Repos: Get the first 100 repos associated with an Org\nExample: ghi ogr macroscope\nOptions:\n\n  -h, --help     output usage information\n  -V, --version  output the version number\n```\n\nFor additional usage instructions, run\n\n```\nghi --help\n```\n\n## License\n\nCopyright (c) 2015 Phillip Alexander\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphillipalexander%2Fghi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphillipalexander%2Fghi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphillipalexander%2Fghi/lists"}