{"id":13393652,"url":"https://github.com/c9s/App-gh","last_synced_at":"2025-03-13T19:31:41.567Z","repository":{"id":984375,"uuid":"788174","full_name":"c9s/App-gh","owner":"c9s","description":"GitHub Command-line Utility.","archived":false,"fork":false,"pushed_at":"2017-02-13T15:35:08.000Z","size":676,"stargazers_count":53,"open_issues_count":34,"forks_count":19,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-03-10T20:04:58.288Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Perl","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/c9s.png","metadata":{"files":{"readme":"README.mkd","changelog":"Changes","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":"2010-07-21T05:58:00.000Z","updated_at":"2025-03-01T16:42:04.000Z","dependencies_parsed_at":"2022-08-16T11:45:08.365Z","dependency_job_id":null,"html_url":"https://github.com/c9s/App-gh","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c9s%2FApp-gh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c9s%2FApp-gh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c9s%2FApp-gh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c9s%2FApp-gh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c9s","download_url":"https://codeload.github.com/c9s/App-gh/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243469186,"owners_count":20295704,"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":[],"created_at":"2024-07-30T17:00:58.133Z","updated_at":"2025-03-13T19:31:41.542Z","avatar_url":"https://github.com/c9s.png","language":"Perl","funding_links":[],"categories":["Command line"],"sub_categories":[],"readme":"# App::gh\n\nApp::gh is an utility helps you operate commands through\nGitHub's API, currently App::gh is migrating to GitHub API v3.\n\n\n## Installation\n\nApp::gh is written in Perl, so you might need a cpanminus to\ninstall CPAN modules, to install cpanminus:\n\n```bash\n    $ curl -L http://cpanmin.us | perl - --sudo App::cpanminus\n```\n\nNow you have `cpanm`, you can install App::gh\n\n```bash\n    $ sudo cpanm https://github.com/c9s/App-gh/zipball/develop\n```\n\n## Setup\n\nTo use App::gh, you need to configure your password or OAuth\ntoken in your `.gitconfig` file, just drop the lines below\nto setup your password:\n\n```ini\n    [github]\n        user = c9s\n        password = your password\n```\n\nTo use OAuth token, you need to set your OAuth access token:\n\n```ini\n    [github]\n        user = c9s\n        access_token = SHA1601f1889667efaebb33b8c12572835da3f027f78\n```\n\n## Commands\n\n### clone\n\nTo clone a repository, use below command form:\n\n```bash\n    $ gh clone [user]/[repo]\n    $ gh clone [user] [repo]\n```\n\nWhen cloning repository from others, the default URI is \nHTTP, which is `read-only`.\n\nWhen cloning repository from yourself, the default URI is \nSSH, which is `read \u0026 write`.\n\nTo specify URI type, you can simply pass options like \n`--http` for HTTP, `--https` for HTTPS, `--ssh` for SSH,\n`--ro` for read-only URI.  e.g.:\n\n```bash\n    $ gh clone miyagawa Plack\n\n    $ gh clone user repo --http\n\n    $ gh clone user repo --https\n\n    $ gh clone user repo --ssh\n\n    $ gh clone clkao Web-Hippie --ro\n```\n\nClone from SSH URI:\n\n```bash\n    $ gh clone miyagawa/Plack --ssh\n```\n\nTo fetch related remote of forks, you can specify\n`--forks` option. this command allows you to download \ncommits from others' fork.\n\n```bash\n    $ gh clone c9s App-gh --forks\n```\n\nTo clone repository and set the default remote name instead \nof `origin`, you can specify `--origin` option:\n\n```bash\n    $ gh clone c9s App-gh --origin github\n```\n\n### all\n\nBy using the `all` command, you can clone all repositories\nfrom an user.\n\nBelow is the basic form:\n\n```bash\n    $ gh all [user] [type]\n```\n\nThe `[type]` can be `member`, `all`, `owner`. if you specify \n`all` then all repositories including fork projects will be \ncloned. if you specify `owner`, then only the owner's\nprojects will be cloned.\n\nFor example, to clone all repositories of miyagawa:\n\n```bash\n    $ gh all miyagawa\n```\n\nTo clone all repositories that owned by facebook:\n\n```bash\n    $ gh all facebook owner\n```\n\nBy specifing `--into` option, you can clone these \nrepositories into a specific directory, for example:\n\n```bash\n    $ gh all facebook owner --into path/to/facebook\n\n    $ gh all perl6 --into perl6-stuff\n```\n\nTo prompt before cloning each repository:\n\n```bash\n    $ gh all perl6 --prompt\n```\n\nTo also fetch tags, you can specify `--tags` option:\n\n```bash\n    $ gh all facebook --tags\n```\n\nYou can also specify a prefix to each repo:\n\n```bash\n    $ gh all facebook --prefix=facebook-prefix-\n```\n\nTo clone these repositories as bared:\n\n```bash\n    $ gh all facebook --bare\n```\n\nTo recursively clone submodules:\n\n```bash\n    $ gh all perl6 --recursive\n```\n\n\n### import\n\nBy using the `import` command, you can import your git\nrepository to your GitHub account.\n\nYou can simply type below line the upload your project:\n\n```bash\n    $ gh import\n```\n\nTo specify remote name for GitHub, you can use `--remote`\noption.\n\n```bash\n    $ gh import --remote github\n```\n\n### search\n\nTo search repositories, simply use `search` command:\n\n```bash\n    $ gh search keyword\n```\n\n### update\n\nSometimes you need to update remote refs, branches, tags,\nyou might run `git remote update --prune`, and run pull with\n--rebase option to rebase changes on your local branch.\n\nWith App::gh, you can do simpler with the `update` command.\n\n```bash\n    $ gh update\n```\n\nThe command above actually runs:\n\n```bash\n    git remote update --prune\n    git remote | while read remote; do\n        git pull --rebase $remote $(git rev-parse --abbrev-ref HEAD)\n    done\n```\n\n\u003c!--\n### fork\n\nto fork project:\n\n    $ gh fork clkao AnyMQ\n\nto fork current project:\n\n    $ cd clkao/AnyMQ\n    $ gh fork\n\n### network\n\nto show fork network:\n\n    $ cd App-gh/\n    $ gh network\n        c9s/App-gh - watchers(4) forks(1)\n      foo/App-gh - watchers(1) forks(0)\n\n### pull\n\nPull command behavior\n\n    - Add remote for a fork\n    - Fetch remote\n    - Merge from fork branch if --merge option is specified.\n    - Create a branch if --branch is specified.\n\nFirst , switch path to your repository:\n\n    $ cd App-gh/\n\nShow up the network by running pull command with no arguments:\n\n    $ gh pull\n    ....\n\nTo pull from foo and add remote:\n\n    $ gh pull foo\n    $ git log foo/master   # to show changes\n\nTo pull from foo and merge changes:\n\n    $ gh pull foo -m\n\nTo merge foo/feature1 to local/master\n\n    $ gh pull foo feature1 -m\n\nTo merge changes from foo/master and create a tracked branch:\n\n    $ gh pull foo --merge --branch\n    $ gh pull foo -m -b\n\n\n### Pull Requests: pullreq\n\nTo show pull requests of the project:\n\n    $ cd tokuhirom/Amon\n    $ gh pullreq list\n\n    * Issue 1: Test - Cornelius (c9s)\n      Diff: https://github.com/c9s/App-gh/pull/29.diff\n      Body: Test\n    * Issue 2: Test - Cornelius (c9s)\n      Diff: https://github.com/c9s/App-gh/pull/29.diff\n      Body: Test\n      ...\n\nAnd show the pull request\n\n    $ cd gfx/p5-Text-Xslate\n    $ gh pullreq show 3\n\nIf you want to send pull request about current branch:\n\n    $ cd yappo/p5-AnySan\n    $ git checkout -b experimental\n    $ vi lib/AnySan.pm\n    $ git commit -m \"bug fix about ...\"\n    $ gh pullreq send\n\n### update\n\nRun (pull/push) repository changes from/to remotes, and `git remote update --prune`\n\n    $ gh update\n\n### issue\n\nTo show issues of the project:\n\n    $ cd mattn/p5-Growl-Any\n    $ gh issue list\n\nAnd show the issue\n\n    $ cd mattn/p5-Growl-GNTP\n    $ gh issue show 3\n\nIf you want to create issue:\n\n    $ cd mattn/p5-Growl-GNTP\n    $ gh issue edit\n\nOr edit issue\n\n    $ gh issue edit 3\n\nAnd comment to the issue\n\n    $ gh issue comment 3\n\n## COMMAND ALIAS\n\n    \"a\"  =\u003e \"all\"\n    \"ci\" =\u003e \"commit\"\n    \"fo\" =\u003e \"fork\"\n    \"is\" =\u003e \"issue\"\n    \"ne\" =\u003e \"network\"\n    \"pr\" =\u003e \"pullreq\"\n    \"pu\" =\u003e \"pull\"\n    \"se\" =\u003e \"search\"\n    \"up\" =\u003e \"update\"\n--\u003e\n\n## INSTALLATION\n\nTo install this module, run the following commands:\n\n    # Makefile.PL needs this\n    cpan Module::Install::AuthorTests\n\n\tperl Makefile.PL\n\tmake\n\tmake test\n\tmake install\n\n## COMPLETION\n\n### zsh\n\n    $ mkdir ~/.zsh/functions\n    $ cp completion/zsh/_gh  ~/.zsh/functions\n\nadd ~/.zsh/functions to your fpath\n\n    $ vim ~/.zshrc\n\n    fpath=(~/.zsh/functions/ $fpath)\n\n## DEVELOPMENT\n\nplease keep the dependency simple and less.\n\n\n## CONTRIBUTORS\n\n    Alexandr Ciornii alexchorny@gmail.com\n    Breno G. de Oliveira garu@cpan.org\n    Chris Weyl cweyl@alumni.drew.edu\n    Fuji, Goro gfuji@cpan.org\n    Ryan C. Thompson rct@thompsonclan.org\n    Tokuhiro Matsuno tokuhirom@gmail.com\n    Yo-An Lin cornelius.howl@gmail.com\n    Zak B. Elep zakame@zakame.net\n    c9s cornelius.howl@gmail.com\n    chocolateboy chocolate@cpan.org\n    mattn mattn.jp@gmail.com\n    tokuhirom tokuhirom@gmail.com\n    tyru tyru.exe@gmail.com\n    xaicron xaicron@gmail.com\n    yj liyuray@gmail.com\n\n## SUPPORT AND DOCUMENTATION\n\nAfter installing, you can find documentation for this module with the\nperldoc command.\n\n    perldoc App::gh\n\nYou can also look for information at:\n\n    RT, CPAN's request tracker\n        http://rt.cpan.org/NoAuth/Bugs.html?Dist=App-gh\n\n    AnnoCPAN, Annotated CPAN documentation\n        http://annocpan.org/dist/App-gh\n\n    CPAN Ratings\n        http://cpanratings.perl.org/d/App-gh\n\n    Search CPAN\n        http://search.cpan.org/dist/App-gh/\n\n\n## LICENSE AND COPYRIGHT\n\nCopyright (C) 2010 Cornelius\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of either: the GNU General Public License as published\nby the Free Software Foundation; or the Artistic License.\n\nSee http://dev.perl.org/licenses/ for more information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc9s%2FApp-gh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc9s%2FApp-gh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc9s%2FApp-gh/lists"}