{ "info": { "author": "Lars Kreisz", "author_email": "lars.kreisz@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "about\n=====\nYou're using hamster to track your work? let your hamster log your work to your favorite bug tracker. ok, JIRA & Redmine\nfor now :)\n\nsetup\n=====\nAs you probably installed hamster via your systems package manager you should install this python package to your root\npython environment or (and that is recommended) create a virtualenv with system-packages (to ensure this package can\ntalk to the hamster instance).\n\ncreate virtualenv with system packages::\n\n virtualenv --system-site-packages path/to/hamster-bridge-env\n source path/to/hamster-bridge-env/bin/activate\n\nJIRA\n----\n\ninstall via pip::\n\n pip install hamster-bridge\n\nthen run it with::\n\n hamster-bridge jira\n\nRedmine\n-------\n\ninstall via pip::\n\n pip install hamster-bridge[redmine]\n\nthen run it with::\n\n hamster-bridge redmine\n\nIt will ask you for your server and login and will save that data for next starts in :code:`~/.hamster-bridge.cfg`.\n\nusage\n=====\n\n* Start hamster and the hamster-bridge.\n* Create tasks and place a JIRA/Redmine issue name inside the task title or it's tags.\n* When you're done, stop this task.\n\nWhen you stop, the hamster-bridge becomes active and search for a valid ticket name. For JIRA that's something like\n\"ABC-34\" (the actually regex is `[A-Z][A-Z0-9]+-[0-9]+`). It will search the title first, when there's none, it\nlooks into the tags. It will use the issue name only when it really exists, f.e. in a task with the title \"Fixing the\nSTUDIO-54 error message\" with the tag \"DISCO-433\", there will be an existence check of \"STUDIO-54\", if it does not exist\nit will read through to issue in the tag.\nOnce *one* valid ticket is found, the hamster-bridge will log the spent time to this issue together with the hamster\ntask description as comment.\n\nsensitive data (passwords)\n--------------------------\n\nSince version 0.6 by default no sensitive data is stored in the config file\n(e.g. :code:`~/.hamster-bridge.cfg`). Currently the only data marked as\n*sensitive* is the JIRA password.\n\nEvery time you start the application it will use all values found in the config\nfile and interactively ask you for the missing values (e.g. JIRA password).\n\nIf you want to force saving this *sensitive* data in the config file you can\nuse the **--save-passwords** option. You can also manually add the data to the\nconfig file. If you are upgrading from an older version of **hamster-bridge**\n(where all data was stored in the config file by default) then it will continue\nto work like before because all required values are in the config file.\n\nSSL/TLS certificates\n--------------------\n\nThe **verify_ssl** config entry has 3 possible values: 'y' to enable\ncertificate verification with the default CA, 'n' to disable certificate\nverification (not recommended!) and the path to a CA (Certificate Authority)\nbundle containing SSL/TLS certificates. When setting a path use the **full\npath** to prevent errors.\n\nThis is very valuable if the CA store that your Python environment uses by\ndefault does not include the CA or intermediate CA that signed the certificate\nof your JIRA/Redmine site. This is also the case if your JIRA/Redmine site uses\na self-signed certificate.\n\nHow to set it up? Get your certificate or certificate chain and store it in a\nfile. Specify the path to that file in the config.\n\nFor instance your can do this with *Google Chrome* by:\n\n* opening your JIRA/Redmine site\n* clicking on the small lock icon (View site information) in the address bar\n* selecting \"Connection\", \"Certificate information\", \"Details\"\n* clicking on \"Export\" and choosing \"Base64-encoded ASCII, certificate chain\"\n* remembering the path you stored the file under and specifying that path in\n the **hamster-bridge** config\n\nIf your JIRA/Redmine site uses a certificate signed by a globally trusted root\nCA you might want to try using a standard CA bundle. For example:\n\n* With Linux Debian based systems (e.g. Ubuntu) you could use the\n path */etc/ssl/certs/ca-certificates.crt*\n* Download the `certifi bundle `_ and use it\n\nFor Redmine the **verify_ssl** option existed already and has been extended to\nalso allow you to specify a CA cert bundle path. If you had previously\nspecified y/n in the config it will continue to work as before.\n\nIf **verify_ssl** is set to an unknown value or to an invalid path then the\nfallback is SSL/TLS certificate verification with the default CA bundle.\n\n\nauto start\n----------\n\nIt is possible both for JIRA and Redmine to 'auto start' (i.e. mark as in\nprogress or something equivalent) an issue when you start tracking time for it.\n\nSimply set the corresponding config option to 'y' to activate auto start and to\n'n' to disable it.\n\nIn the case of JIRA a third value is possible. This value implicitly assumes\n'y' and uses the value you set as the name of the transition. For example if\nyou want to use the transition 'Working' you can set the config value to\nprecisely that value. The same goes if you want to the set the transition to\n'In Progress'. Per default 'Start Progress' is used (i.e. when you specify\n'y').\n\n\nproblems?\n---------\n\nDon't work for you? Open up an `issue on GitHub `_ together with the\ndebug output (start the bridge with \"-d\").\n\n\nhints on redmine\n----------------\n\nRedmine behaves slightly different than JIRA. For each time entry that is created, an activity has to be chosen. Within the Redmine installation a default\nactivity *can* be defined but usually this is not the way the installation is set up. Therefore one must be able to select the activity when creating a time\nentry. As the hamster does not offer any field for such activity, we instead use the tags field.\nUpon start of the hamster-bridge, all activities will be listed::\n\n 2015-03-01 14:23:31,003 INFO: ### Available Redmine activities for using as tag value:\n 2015-03-01 14:23:31,229 INFO: ### Development\n 2015-03-01 14:23:31,229 INFO: ### Design\n 2015-03-01 14:23:31,230 INFO: ### Deployment\n\nIf you set the name of an activity as tag, it will be used for the created time entry. If you do not specify a tag, the first activity (and usually the default\none in Redmine) will be used. If you specify more than one activity as tag value, the first found will be used (but see the hints below!).\nYou can mix the activity tags with other tags - the first found tag that matches the name of an activity will be used for the entry (see the hints, too).\n\n*Important hints:*\n\n* activity names are case sensitive\n* hamster is sorting the tags alphabetically\n * if you e.g. set the tags \"Development\" and \"Design\" in this order, hamster will sort them to ['Design', 'Development'] thus the time entry will be attached to \"Design\"\n\n\nlicense\n=======\nMIT-License, see LICENSE file.\n\n\nchanges\n=======\n\n0.7\n---\n* feature: Use fact starting time for jira work log (#27)\n\n0.6\n---\n* feature: don't store sensitive data such as passwords in the config file\n (can be overridden with **--save-passwords**)\n* feature: add **verify_ssl** config option for JIRA and extend it for Redmine.\n It is now possible to specify [y/n/path] where path is the path to a CA\n certificate bundle\n* feature: extend **auto_start** config option for JIRA.\n It is now possible to specify [y/n/TRANSITION_NAME] where TRANSITION_NAME is\n the name of the transition to use instead of 'Start Progress' (default)\n* special thx to @omarkohl for PR #21\n\n0.5.2\n-----\n* bugfix: packaging error (#19)\n\n0.5.1\n-----\n* bugfix: fixed redmine missing dependency (#18)\n\n0.5.0\n-----\n* feature: map hamster's task description field to jira worklog comment (#11)\n* feature: improved logging a lot, added --debug switch (#12)\n* feature: added flag to set the hamster check interval\n* bugfix/feature: switched library from \"jira-python\" to \"jira\" to support current jira versions (#10)\n* bugfix: bigger redmine reafactoring (#15, thx to @dArignac)\n* bugfix: force sensitive file permissions for config file\n\n0.4.0\n-----\n* feature: added support to lookup jira issue name in hamster tags (#9, thx to @toggm)\n\n0.3.1\n-----\n* bugfix: console_script linking caused error starting hamster-bridge\n\n0.3.0\n-----\n* new supported tracker: redmine (english & german) (contributed by dArignac)\n* NEW: required positional parameter: name of bugtracker name (\"jira\" oder \"redmine\")\n\n0.2.0\n-----\n* feature: autostart the jira issue when starting the task in hamster\n\n0.1.0\n-----\n* feature: axtract issue from hamster activity be regex\n* bugfix: logging of exceptions communicating with jira server\n\n0.0.1\n-----\n* first release\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kraiz/hamster-bridge", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hamster-bridge", "package_url": "https://pypi.org/project/hamster-bridge/", "platform": "", "project_url": "https://pypi.org/project/hamster-bridge/", "project_urls": { "Homepage": "https://github.com/kraiz/hamster-bridge" }, "release_url": "https://pypi.org/project/hamster-bridge/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "let your hamster log your work to your favorite bugtracker", "version": "0.7.0" }, "last_serial": 2689257, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6c1a6ff9a90a164765f6d449d72b8c12", "sha256": "51a62c462581110ed1ed38c1b1f5750da635abe7b917f55c9f9666fe28e51153" }, "downloads": -1, "filename": "hamster-bridge-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6c1a6ff9a90a164765f6d449d72b8c12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3435, "upload_time": "2013-05-03T15:53:10", "url": "https://files.pythonhosted.org/packages/34/6d/99309b3bdc3b49e4315227cfd219c00d655362f4896ae3786b15d645d1e5/hamster-bridge-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c623856c27e21f13039f45d33b39a7db", "sha256": "675d55abeff9031746eda78ee4e85e524d16674505425bd9486748c4da8cf9c7" }, "downloads": -1, "filename": "hamster-bridge-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c623856c27e21f13039f45d33b39a7db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3784, "upload_time": "2013-05-07T20:41:23", "url": "https://files.pythonhosted.org/packages/7e/6e/9ca8c3040a813be7a22b57bd217763ffd403e59e7e84036f0d6645dfcbc5/hamster-bridge-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1c0f54195efaeceef915d3d92fbeae31", "sha256": "f0aaf81233d644bc0a6e442440ed04400c450f63312d2aca262c0d8402ff6750" }, "downloads": -1, "filename": "hamster-bridge-0.2.0.tar.gz", "has_sig": false, "md5_digest": "1c0f54195efaeceef915d3d92fbeae31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3935, "upload_time": "2013-05-07T21:10:54", "url": "https://files.pythonhosted.org/packages/bd/93/e6dd3877d3c4c03fe5541972fe9698eb58029316d478d4694e39263017c1/hamster-bridge-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "7ff71ddf347b176811ff0237687a0d3f", "sha256": "f7b9f8b5068d70ce7b9f8f88533e795b1ee90d2e279958539f77d1b4c92e459f" }, "downloads": -1, "filename": "hamster-bridge-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7ff71ddf347b176811ff0237687a0d3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6233, "upload_time": "2013-06-01T19:14:54", "url": "https://files.pythonhosted.org/packages/43/f1/c0ea7bd076cde2dcf3048d1405a405a86968b5c7cb757393da3b00aa61c0/hamster-bridge-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a3ba38af5c1a8869cacd4d4c8f61c97c", "sha256": "e07ad59234530bafd8bbc89c449998a4f240b429c4b3f5e96e571dadb825d22d" }, "downloads": -1, "filename": "hamster-bridge-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a3ba38af5c1a8869cacd4d4c8f61c97c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6244, "upload_time": "2013-06-03T16:46:19", "url": "https://files.pythonhosted.org/packages/c4/26/26dc9e75d75587462180ca750607c991825ee09043b6b735648700b32ae9/hamster-bridge-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9cfbab009eab5e566775b357cd39866c", "sha256": "1085d291a66fc70ad3c0f8d54c0fdf0fa74e5d8000f6b580f86bde22a33d6747" }, "downloads": -1, "filename": "hamster-bridge-0.4.0.tar.gz", "has_sig": false, "md5_digest": "9cfbab009eab5e566775b357cd39866c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6542, "upload_time": "2014-05-22T15:52:41", "url": "https://files.pythonhosted.org/packages/31/39/40deced476e2c68f8ea57ce1d850a582fbf98683af3f0e2132a0c9d22d4b/hamster-bridge-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "7f64d81f3ea3067c1f3a23275383f3ee", "sha256": "b075409a79c2a6a6316eddf584d8d22e61f284fa590d27f139b3c693a0d55c8b" }, "downloads": -1, "filename": "hamster_bridge-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7f64d81f3ea3067c1f3a23275383f3ee", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13088, "upload_time": "2015-03-08T10:32:49", "url": "https://files.pythonhosted.org/packages/38/a8/34d2bf066b3270b06fb0abb5b847b3bbf4ba1546604cb5c04ba410a9ca9f/hamster_bridge-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12f7172541914996620dc0a6ce3bedcf", "sha256": "8fce6758cbf3ec3b455e6a66f21dfee407fde453ef4c3a6983f5a597a227b67c" }, "downloads": -1, "filename": "hamster-bridge-0.5.0.tar.gz", "has_sig": false, "md5_digest": "12f7172541914996620dc0a6ce3bedcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8307, "upload_time": "2015-03-08T10:32:46", "url": "https://files.pythonhosted.org/packages/54/e7/defd1833f429a6923f0fdd6ebc96822065ee62e621a28fc8e88d3b04cbaa/hamster-bridge-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "24a89bd676c23d2dc4ef25ef33ee93a1", "sha256": "92836491d4c9040a689de9cfd638b87332f476c2ee9c2db286d34aa84e68677e" }, "downloads": -1, "filename": "hamster-bridge-0.5.1.tar.gz", "has_sig": false, "md5_digest": "24a89bd676c23d2dc4ef25ef33ee93a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8458, "upload_time": "2015-10-06T19:39:18", "url": "https://files.pythonhosted.org/packages/b2/51/9447972da3523bfa9b0725ec4344247f529ead0a159c1a6f6e5558aaefd5/hamster-bridge-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "92e1d275d41c90479d0afdd19f18f797", "sha256": "00955db02b877a2c334d2288529d05941212e59d3d1e9d7cf912b9700d94bfcd" }, "downloads": -1, "filename": "hamster-bridge-0.5.2.tar.gz", "has_sig": false, "md5_digest": "92e1d275d41c90479d0afdd19f18f797", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8618, "upload_time": "2016-02-10T18:51:32", "url": "https://files.pythonhosted.org/packages/e7/88/5989442c27860b2842956b0de0b6d6a8a2aed312b9e1b2ddc69a1e5e1029/hamster-bridge-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "1c7eb08ec9e55e46475d916662753c9e", "sha256": "f5660a93a6d208b65c1584c22ce788ee4ce92fcb32af24ff93c778523953658d" }, "downloads": -1, "filename": "hamster-bridge-0.6.0.tar.gz", "has_sig": false, "md5_digest": "1c7eb08ec9e55e46475d916662753c9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11508, "upload_time": "2016-04-08T18:48:35", "url": "https://files.pythonhosted.org/packages/f5/67/eef70b8c64e7c28e19282746e30c5425a9cafc21bcc225b15312c8e7728d/hamster-bridge-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "fb4f86f3091cb01f85cb965392600090", "sha256": "319caae6dcc930a8da124173109f6befa153a6f07f5c96b4d87b60ec8b85c9e4" }, "downloads": -1, "filename": "hamster-bridge-0.7.0.tar.gz", "has_sig": false, "md5_digest": "fb4f86f3091cb01f85cb965392600090", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14933, "upload_time": "2017-03-07T16:40:21", "url": "https://files.pythonhosted.org/packages/21/b8/b2e3629d987996c67b4d3de8cf8faee67a1197ba8770c54c2de194808973/hamster-bridge-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fb4f86f3091cb01f85cb965392600090", "sha256": "319caae6dcc930a8da124173109f6befa153a6f07f5c96b4d87b60ec8b85c9e4" }, "downloads": -1, "filename": "hamster-bridge-0.7.0.tar.gz", "has_sig": false, "md5_digest": "fb4f86f3091cb01f85cb965392600090", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14933, "upload_time": "2017-03-07T16:40:21", "url": "https://files.pythonhosted.org/packages/21/b8/b2e3629d987996c67b4d3de8cf8faee67a1197ba8770c54c2de194808973/hamster-bridge-0.7.0.tar.gz" } ] }