{"id":13393668,"url":"https://github.com/sociomantic-tsunami/git-hub","last_synced_at":"2025-03-13T19:31:44.269Z","repository":{"id":9893805,"uuid":"11899462","full_name":"sociomantic-tsunami/git-hub","owner":"sociomantic-tsunami","description":"Git command line interface to GitHub","archived":false,"fork":false,"pushed_at":"2022-01-26T17:36:00.000Z","size":812,"stargazers_count":127,"open_issues_count":48,"forks_count":45,"subscribers_count":16,"default_branch":"v2.x.x","last_synced_at":"2024-08-10T01:06:46.592Z","etag":null,"topics":["cli","git","github","github-api","python","sociomantic","tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sociomantic-tsunami.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["llucax"]}},"created_at":"2013-08-05T13:56:11.000Z","updated_at":"2024-04-22T17:30:53.000Z","dependencies_parsed_at":"2022-09-24T04:51:40.528Z","dependency_job_id":null,"html_url":"https://github.com/sociomantic-tsunami/git-hub","commit_stats":null,"previous_names":["sociomantic/git-hub"],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sociomantic-tsunami%2Fgit-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sociomantic-tsunami%2Fgit-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sociomantic-tsunami%2Fgit-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sociomantic-tsunami%2Fgit-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sociomantic-tsunami","download_url":"https://codeload.github.com/sociomantic-tsunami/git-hub/tar.gz/refs/heads/v2.x.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243469192,"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":["cli","git","github","github-api","python","sociomantic","tool"],"created_at":"2024-07-30T17:00:58.415Z","updated_at":"2025-03-13T19:31:43.223Z","avatar_url":"https://github.com/sociomantic-tsunami.png","language":"Python","funding_links":["https://github.com/sponsors/llucax"],"categories":["Command line","Python"],"sub_categories":[],"readme":"======================================\nA Git command line interface to GitHub\n======================================\n\n.. image:: https://img.shields.io/debian/v/git-hub/unstable\n   :target: https://packages.debian.org/source/unstable/git-hub\n   :alt: Debian package\n\n.. image:: https://img.shields.io/ubuntu/v/git-hub\n   :target: https://packages.ubuntu.com/search?keywords=git-hub\u0026searchon=names\u0026suite=all\u0026section=all\n   :alt: Ubuntu package\n\n.. contents::\n   :depth: 1\n   :local:\n\n\nDescription\n===========\n\n**git hub** is a simple command line interface to GitHub_, enabling most useful\nGitHub_ tasks (like creating and listing pull request or issues) to be accessed\ndirectly through the Git_ command line.\n\nAlthough probably the most outstanding feature (and the one that motivated the\ncreation of this tool) is the ``pull rebase`` command, which is the *rebasing*\nversion of the `GitHub Merge (TM) button`__. This enables an easy workflow that\ndoesn't involve thousands of merges which makes the repository history\nunreadable.\n\n__ https://github.com/blog/843-the-merge-button\n\nAnother *unique* feature is the ability to transform an issue into a pull\nrequest by attaching commits to it (this is something offered by the `GitHub\nAPI`__ but not by the web interface).\n\n__ https://developer.github.com/\n\n\nUsage\n=====\n\nHere are some usage examples, for more information about all the supported\ncommand an options, please refer to the man page using ``git hub --help`` or\nlooking at the `online version`__ (this is for the latest development snapshot\nthough).\n\n__ https://github.com/sociomantic-tsunami/git-hub/blob/master/man.rst\n\nOne time global setup to get the credentials\n--------------------------------------------\n\nTo use this tool you most likely will need a GitHub PAT (personal access token).\nIf you don't have one you regularly use, you can `create a new one`__ (check\n`GitHub docs`__ if you need more help).\n\nMake sure your PAT has at least **repo** and **user** scope.\n\nThen you can use ``git hub setup`` to save it.\n\n__ https://github.com/settings/tokens/new\n__ https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token\n\n::\n\n  $ git hub setup --global --user octocat\n\n  You need to use a GitHub Personal Access Token to do almost anything useful.\n  To create one you can go to: https://github.com/settings/tokens/new.\n  More help at: https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token.\n\n  GitHub token: ******\n  Saved git config hub.username\n  Saved git config hub.oauthtoken\n\nYou can revoke this credentials at any time in the `GitHub Applications Settings\npage`__.\n\n__ https://github.com/settings/applications\n\nClone (and fork) a project\n--------------------------\n::\n\n  $ git hub clone -t sociomantic-tsunami/git-hub\n  Forking sociomantic-tsunami/git-hub to octocat/git-hub\n  Cloning git@github.com:sociomantic-tsunami/git-hub.git to git-hub\n  Fetching from fork (git@github.com:octocat/git-hub.git)\n\nThe fork will happen only if you haven't fork the project before, of course. And\nwe are using the *triangular workflow* option (``-t`` / ``--triangular``), so we\ncan pull from the *parent* repo but push to our fork by default.\n\nUsing a pre-existing cloned repository\n--------------------------------------\n::\n\n  $ git config hub.upstream sociomantic-tsunami/git-hub\n\nThis sets the *master* GitHub_ project. It's where we query for issues and pull\nrequests and where we create new pull requests, etc.\n\nThis is only necessary if you didn't clone your repository using ``git hub\nclone`` and is a one time only setup step.\n\nList issues\n-----------\n::\n\n  $ git hub issue list\n  [3] pull: Use the tracking branch as default base branch (leandro-lucarella-sociomantic)\n      https://github.com/sociomantic-tsunami/git-hub/issues/3\n  [1] bash-completion: Complete with IDs only when is appropriate according to command line arguments (leandro-lucarella-sociomantic)\n      https://github.com/sociomantic-tsunami/git-hub/issues/1\n\nUpdate an issue\n---------------\n::\n\n  $ git hub issue update --label important --label question \\\n        -m 'New Title' --assign octocat --open --milestone v0.5 1\n  [1] New Title (leandro-lucarella-sociomantic)\n      https://github.com/sociomantic-tsunami/git-hub/issues/1\n\nCreate a new pull request\n-------------------------\n::\n\n  $ git hub pull new -b experimental -c mypull\n  Pushing master to mypull in myfork\n  [4] Some pull request (octocat)\n      https://github.com/sociomantic-tsunami/git-hub/pull/4\n\nThis creates a pull request against the upstream branch ``experimental`` using\nthe current ``HEAD``, but creating a new topic branch called ``mypull`` to store\nthe actual pull request (assuming our ``HEAD`` is in the branch ``master``).\n\nAttach code to an existing issue\n--------------------------------\n::\n\n  $ git hub pull attach -b experimental -c mypull 1\n  Pushing master to mypull in myfork\n  [1] Some issue (octocat)\n      https://github.com/sociomantic-tsunami/git-hub/pull/1\n\nSame as before, but this time attach the commits to issue 2 (effectively\nconverting the issue into a pull request).\n\nRebase a pull request\n---------------------\n::\n\n  $ git hub pull rebase 4\n  Fetching mypull from git@github.com:octocat/git-hub.git\n  Rebasing to master in git@github.com:sociomantic-tsunami/git-hub.git\n  Pushing results to master in git@github.com:sociomantic-tsunami/git-hub.git\n  [4] Some pull request (octocat)\n      https://github.com/sociomantic-tsunami/git-hub/pull/4\n\nIf the rebase fails, you can use ``git hub pull rebase --continue`` as you would\ndo with a normal rebase.\n\n\nDownload\n========\n\nYou can get this tool from the `GitHub project`__. If you want to grab\na release, please remember to visit the Release__ section.\n\n__ https://github.com/sociomantic-tsunami/git-hub\n__ https://github.com/sociomantic-tsunami/git-hub/releases\n\n\nInstallation\n============\n\nDependencies\n------------\n\n* Python_ 3.x\n\n* Git_ \u003e= 1.7.7 (if you use Ubuntu_ you can easily get the latest Git version\n  using the `Git stable PPA`__)\n\n* Docutils_ (\u003e= 0.8, although it might work with older versions too, only needed\n  to build the man page)\n\n* FPM_ (\u003e= 1.0.1, although it might work with older versions too, only needed to\n  build the Debian package)\n\n__ https://launchpad.net/~git-core/+archive/ppa\n\nBuilding\n--------\n\nOnly the man page and *bash completion* script need to be built. Type ``make``\nto build them.\n\nAlternatively, you can build a Debian_/Ubuntu_ package. Use ``make deb`` for\nthat.\n\nInstalling\n----------\n\nIf you built the Debian_/Ubuntu_ package, you can just install the package\n(``dpkg -i ../git-hub_VER_all.deb``).\n\nOtherwise you can type ``make install`` to install the tool, man page, *bash\ncompletion* and VIM_ *ftdetect* plugin (by default in ``/usr/local``, but you\ncan pick a different location by passing the ``prefix`` variable to ``make``\n(for example ``make install prefix=/usr``). To pick a location for the\ncompletion scripts (by default in ``/etc``), use the ``sysconfdir`` variable.\n\nIf Docutils_ is installed using ``pip`` the environment variable ``RST2MAN``\nshould be set to ``rst2man.py``.\n\nThe installation locations might be too specific for Debian_/Ubuntu_ though.\nPlease report any failed installation attempts.\n\nTo enjoy the *bash completion* you need to re-login (or re-load the\n``/etc/bash_completion`` script).\n\nTo have syntax highlight in VIM_ when editing **git-hub** messages, you need to\nactivate the *ftdetect* plugin by copying or symbolic-linking it to\n``~/.vim/ftdetect/githubmsg.vim``::\n\n  mkdir -p ~/.vim/ftdetect\n  ln -s $(prefix)/share/vim/addons/githubmsg.vim ~/.vim/ftdetect/\n  # or if you are copying from the sources:\n  # ln -s ftdetect.vim ~/.vim/ftdetect/githubmsg.vim\n\n\nSimilar Projects\n================\n\nWe explored other alternatives before starting this project, but none of\nthese tools do (or are targeted) at what we needed. But here are the ones we\nfound, in case they are a better fit for you:\n\n* `hub \u003chttps://hub.github.com/\u003e`_: Is the *official* tool, but it completely\n  replaces the Git command, adding special syntax for official git commands.\n\n* `gh \u003chttps://github.com/cli/cli\u003e`_: Another *official* tool, that tries to bring\n  all the GitHub UI features but with a CLI interface. It works side-by-side\n  with git.\n\n* `ghi \u003chttps://github.com/stephencelis/ghi\u003e`_:  This only handle issues. It\n  seems a bit abandoned (at the time of writing it was last updated in October\n  2016).\n\n* `git-spindle \u003chttps://github.com/seveas/git-spindle\u003e`_: This tool was\n  discovered after we started and published this project. It covers similar\n  ground, but doesn't offer rebase capabilities (this, of course, could have\n  been implemented as an extension). Sadly, it also extends the Git command-line\n  adding the ``hub`` command, which can introduce a lot of confusion to users.\n  We might try to merge our code into that project eventually, if there is\n  interest.\n\nContact\n=======\n\nIf you want to contact us, either because you are a user and have questions, or\nbecause you want to contribute to the project, you can subscribe to the mailing\nlist.\n\nSubscription happens automatically (after confirmation) the first time you write\nto: git.hub@librelist.com (this first e-mail will be dropped).\n\nYou can always visit the `mailing list archives`__ to check if your questions\nwere already answered in the past :)\n\n__ http://librelist.com/browser/git.hub/\n\nYou can also use GMANE__ to get a `better list archive`__ (both threaded__ and\n`blog-like`__ interfaces available) or to `read the list using NNTP`__.\n\n__ http://www.gmane.org/\n__ http://dir.gmane.org/gmane.comp.version-control.git.git-hub\n__ http://news.gmane.org/gmane.comp.version-control.git.git-hub\n__ http://blog.gmane.org/gmane.comp.version-control.git.git-hub\n__ nntp://news.gmane.org/gmane.comp.version-control.git.git-hub\n\nIf you want to report a bug, just `create an issue`__ please (if you use this\ntool I'm sure you already have a GitHub_ account ;).\n\n__ https://github.com/sociomantic-tsunami/git-hub/issues/new\n\n\n.. _Python: https://www.python.org/\n.. _Docutils: http://docutils.sourceforge.net/\n.. _Git: https://www.git-scm.com/\n.. _GitHub: https://www.github.com/\n.. _Ubuntu: http://www.ubuntu.com/\n.. _Debian: https://www.debian.org/\n.. _VIM: http://www.vim.org/\n.. _FPM: https://github.com/jordansissel/fpm\n\n.. vim: set et sw=2 tw=80 :\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsociomantic-tsunami%2Fgit-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsociomantic-tsunami%2Fgit-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsociomantic-tsunami%2Fgit-hub/lists"}