Hubtty
======
Hubtty is a console-based interface to the Github Code Review system.
As compared to the web interface, the main advantages are:
* Workflow -- the interface is designed to support a workflow similar
to reading network news or mail. In particular, it is designed to
deal with a large number of review requests across a large number
of repositories.
* Offline Use -- Hubtty syncs information about pull requests in subscribed
repositories to a local database and local git repos. All review
operations are performed against that database and then synced back
to Github.
* Speed -- user actions modify locally cached content and need not
wait for server interaction.
* Convenience -- because Hubtty downloads all pull requests to local git
repos, a single command instructs it to checkout a pull request into that
repo for detailed examination or testing of larger pull requests.
Installation
------------
Source
~~~~~~
When installing from source, it is recommended (but not required) to
install Hubtty in a virtualenv. To set one up::
virtualenv hubtty-env
source hubtty-env/bin/activate
To install the latest version from the cheeseshop::
pip install hubtty
To install from a git checkout::
pip install .
Hubtty uses a YAML based configuration file that it looks for at
``$XDG_CONFIG_HOME/hubtty/hubtty.yaml``. Several sample configuration files
are included. You can find them in the examples/ directory of the
`source distribution
<https://github.com/hubtty/hubtty/tree/master/examples>`_ or
the share/hubtty/examples directory after installation.
The sample config files are as follows:
**minimal-hubtty.yaml**
Only contains the parameters required for Hubtty to actually run.
**reference-hubtty.yaml**
An exhaustive list of all supported options with examples.
**openshift-hubtty.yaml**
A configuration designed for OpenShift reviews.
Hubtty uses local git repositories to perform much of its work. These
can be the same git repositories that you use when developing a
project. Hubtty will not alter the working directory or index unless
you request it to (and even then, the usual git safeguards against
accidentally losing work remain in place). You will need to supply
the name of a directory where Hubtty will find or clone git
repositories for your projects as the ``git-root`` parameter.
The config file is designed to support multiple Github instances. The
first one is used by default, but others can be specified by supplying
the name on the command line.
Usage
-----
After installing Hubtty, you should be able to run it by invoking
``hubtty``. If you installed it in a virtualenv, you can invoke it
without activating the virtualenv with ``/path/to/venv/bin/hubtty``
which you may wish to add to your shell aliases. Use ``hubtty
--help`` to see a list of command line options available.
Once Hubtty is running, you will need to start by subscribing to some
repositories. Use 'L' to list all of the repositories and then 's' to
subscribe to the ones you are interested in. Hit 'L' again to shrink
the list to your subscribed repositories.
In general, pressing the F1 key will show help text on any screen, and
ESC will take you to the previous screen.
Hubtty works seamlessly offline or online. All of the actions that it
performs are first recorded in a local database (in ``$XDG_DATA_HOME/hubtty/hubtty.db``
by default), and are then transmitted to Github. If Hubtty is unable
to contact Github for any reason, it will continue to operate against
the local database, and once it re-establishes contact, it will
process any pending changes.
The status bar at the top of the screen displays the current number of
outstanding tasks that Hubtty must perform in order to be fully up to
date. Some of these tasks are more complicated than others, and some
of them will end up creating new tasks (for instance, one task may be
to search for new pull requests in a repository which will then produce
5 new tasks if there are 5 new pull requests).
If Hubtty is offline, it will so indicate in the status bar. It will
retry requests if needed, and will switch between offline and online
mode automatically.
If you review a pull request while offline with a positive vote, and someone
else leaves a negative vote on that pull request before Hubtty is able to
upload your review, Hubtty will detect the situation and mark the pull request
as "held" so that you may re-inspect the pull request and any new comments
before uploading the review. The status bar will alert you to any held pull
requests and direct you to a list of them (the `F12` key by default). When
viewing a pull request, the "held" flag may be toggled with the exclamation key
(`!`). Once held, a pull request must be explicitly un-held in this manner for
your review to be uploaded.
If Hubtty encounters an error, this will also be indicated in the status bar.
You may wish to examine ``$XDG_DATA_HOME/hubtty/hubtty.log`` to see what the
error was. In many cases, Hubtty can continue after encountering an error.
The error flag will be cleared when you leave the current screen.
To select text (e.g., to copy to the clipboard), hold Shift while
selecting the text.
MacOS
~~~~~
The MacOS terminal blocks ctrl+o, which is the default search key combo in
Hubtty. To fix this, a custom keymap can be used on MacOS which modifies the
search key combo. For example::
keymaps:
- name: default # MacOS blocks ctrl+o
pr-search: 'ctrl s'
interactive-search: 'ctrl i'
Contributing
------------
For information on how to contribute to Hubtty, please see the
contents of the CONTRIBUTING.rst file.
Bugs
----
Bugs are handled at: https://github.com/hubtty/hubtty/issues
Raw data
{
"_id": null,
"home_page": "https://hubtty.github.io",
"name": "hubtty",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "github console urwid review",
"author": "The hubtty developers",
"author_email": "hubtty@mandre.org",
"download_url": "https://files.pythonhosted.org/packages/eb/bc/6f4c15dc09877cb46b2a32608c1d597ccb73baf53087e4d70fe2c70d379a/hubtty-0.3.5.tar.gz",
"platform": null,
"description": "Hubtty\n======\n\nHubtty is a console-based interface to the Github Code Review system.\n\nAs compared to the web interface, the main advantages are:\n\n * Workflow -- the interface is designed to support a workflow similar\n to reading network news or mail. In particular, it is designed to\n deal with a large number of review requests across a large number\n of repositories.\n\n * Offline Use -- Hubtty syncs information about pull requests in subscribed\n repositories to a local database and local git repos. All review\n operations are performed against that database and then synced back\n to Github.\n\n * Speed -- user actions modify locally cached content and need not\n wait for server interaction.\n\n * Convenience -- because Hubtty downloads all pull requests to local git\n repos, a single command instructs it to checkout a pull request into that\n repo for detailed examination or testing of larger pull requests.\n\nInstallation\n------------\n\nSource\n~~~~~~\n\nWhen installing from source, it is recommended (but not required) to\ninstall Hubtty in a virtualenv. To set one up::\n\n virtualenv hubtty-env\n source hubtty-env/bin/activate\n\nTo install the latest version from the cheeseshop::\n\n pip install hubtty\n\nTo install from a git checkout::\n\n pip install .\n\nHubtty uses a YAML based configuration file that it looks for at\n``$XDG_CONFIG_HOME/hubtty/hubtty.yaml``. Several sample configuration files\nare included. You can find them in the examples/ directory of the\n`source distribution\n<https://github.com/hubtty/hubtty/tree/master/examples>`_ or\nthe share/hubtty/examples directory after installation.\n\nThe sample config files are as follows:\n\n**minimal-hubtty.yaml**\n Only contains the parameters required for Hubtty to actually run.\n\n**reference-hubtty.yaml**\n An exhaustive list of all supported options with examples.\n\n**openshift-hubtty.yaml**\n A configuration designed for OpenShift reviews.\n\nHubtty uses local git repositories to perform much of its work. These\ncan be the same git repositories that you use when developing a\nproject. Hubtty will not alter the working directory or index unless\nyou request it to (and even then, the usual git safeguards against\naccidentally losing work remain in place). You will need to supply\nthe name of a directory where Hubtty will find or clone git\nrepositories for your projects as the ``git-root`` parameter.\n\nThe config file is designed to support multiple Github instances. The\nfirst one is used by default, but others can be specified by supplying\nthe name on the command line.\n\nUsage\n-----\n\nAfter installing Hubtty, you should be able to run it by invoking\n``hubtty``. If you installed it in a virtualenv, you can invoke it\nwithout activating the virtualenv with ``/path/to/venv/bin/hubtty``\nwhich you may wish to add to your shell aliases. Use ``hubtty\n--help`` to see a list of command line options available.\n\nOnce Hubtty is running, you will need to start by subscribing to some\nrepositories. Use 'L' to list all of the repositories and then 's' to\nsubscribe to the ones you are interested in. Hit 'L' again to shrink\nthe list to your subscribed repositories.\n\nIn general, pressing the F1 key will show help text on any screen, and\nESC will take you to the previous screen.\n\nHubtty works seamlessly offline or online. All of the actions that it\nperforms are first recorded in a local database (in ``$XDG_DATA_HOME/hubtty/hubtty.db``\nby default), and are then transmitted to Github. If Hubtty is unable\nto contact Github for any reason, it will continue to operate against\nthe local database, and once it re-establishes contact, it will\nprocess any pending changes.\n\nThe status bar at the top of the screen displays the current number of\noutstanding tasks that Hubtty must perform in order to be fully up to\ndate. Some of these tasks are more complicated than others, and some\nof them will end up creating new tasks (for instance, one task may be\nto search for new pull requests in a repository which will then produce\n5 new tasks if there are 5 new pull requests).\n\nIf Hubtty is offline, it will so indicate in the status bar. It will\nretry requests if needed, and will switch between offline and online\nmode automatically.\n\nIf you review a pull request while offline with a positive vote, and someone\nelse leaves a negative vote on that pull request before Hubtty is able to\nupload your review, Hubtty will detect the situation and mark the pull request\nas \"held\" so that you may re-inspect the pull request and any new comments\nbefore uploading the review. The status bar will alert you to any held pull\nrequests and direct you to a list of them (the `F12` key by default). When\nviewing a pull request, the \"held\" flag may be toggled with the exclamation key\n(`!`). Once held, a pull request must be explicitly un-held in this manner for\nyour review to be uploaded.\n\nIf Hubtty encounters an error, this will also be indicated in the status bar.\nYou may wish to examine ``$XDG_DATA_HOME/hubtty/hubtty.log`` to see what the\nerror was. In many cases, Hubtty can continue after encountering an error.\nThe error flag will be cleared when you leave the current screen.\n\nTo select text (e.g., to copy to the clipboard), hold Shift while\nselecting the text.\n\nMacOS\n~~~~~\n\nThe MacOS terminal blocks ctrl+o, which is the default search key combo in\nHubtty. To fix this, a custom keymap can be used on MacOS which modifies the\nsearch key combo. For example::\n\n keymaps:\n - name: default # MacOS blocks ctrl+o\n pr-search: 'ctrl s'\n interactive-search: 'ctrl i'\n\nContributing\n------------\n\nFor information on how to contribute to Hubtty, please see the\ncontents of the CONTRIBUTING.rst file.\n\nBugs\n----\n\nBugs are handled at: https://github.com/hubtty/hubtty/issues\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Hubtty is a console-based interface to the Github Code Review system.",
"version": "0.3.5",
"project_urls": {
"Homepage": "https://hubtty.github.io"
},
"split_keywords": [
"github",
"console",
"urwid",
"review"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e38ef395fd84cb8385b107d97f8ae206d24d10956c7b76cc30227637b71b9075",
"md5": "9e78a1a0238393307d7361bb402f18a6",
"sha256": "6c784ab21fbe3698dc37deeac3a66056fc031a4241c0b2a3e0561829d7b77b34"
},
"downloads": -1,
"filename": "hubtty-0.3.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9e78a1a0238393307d7361bb402f18a6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 119107,
"upload_time": "2024-11-09T13:55:46",
"upload_time_iso_8601": "2024-11-09T13:55:46.139603Z",
"url": "https://files.pythonhosted.org/packages/e3/8e/f395fd84cb8385b107d97f8ae206d24d10956c7b76cc30227637b71b9075/hubtty-0.3.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ebbc6f4c15dc09877cb46b2a32608c1d597ccb73baf53087e4d70fe2c70d379a",
"md5": "fc76aebd47e8c6550e313a23f25f1a1b",
"sha256": "4e094a4877838fb9b894ac33fabc745a1a8266012b99470377039887bcc2f9a5"
},
"downloads": -1,
"filename": "hubtty-0.3.5.tar.gz",
"has_sig": false,
"md5_digest": "fc76aebd47e8c6550e313a23f25f1a1b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 112564,
"upload_time": "2024-11-09T13:55:47",
"upload_time_iso_8601": "2024-11-09T13:55:47.251874Z",
"url": "https://files.pythonhosted.org/packages/eb/bc/6f4c15dc09877cb46b2a32608c1d597ccb73baf53087e4d70fe2c70d379a/hubtty-0.3.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-09 13:55:47",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "hubtty"
}