{ "info": { "author": "Raju Kadam", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "JIRA OAuth1 Setup and Usage\n====================\n\n### Python 3 Setup\n* Create Python 3 Virtual Environment\n```\nmkvirtualenv -p python3 jira_oauth1_py3_env\n```\n* Activate this environment to work on\n```\nworkon jira_oauth1_py3_env\n```\n* Install all required libraries\n```\npip install -r requirements.txt\n```\n\n### RSA Private and Public Key creations\n* Make sure you have **.oauthconfig** folder exists in your home directory\n* Create RSA Private key and store it in file **oauth.pem**\n```\nopenssl genrsa -out oauth.pem 1024\n```\n* Create RSA Public Key and store it in file **oauth.pub**\n```\nopenssl rsa -in oauth.pem -pubout -out oauth.pub\n```\n* Again make sure both files are *copied* to **.oauthconfig** folder in your home directory.\n* Also share RSA Public Key **oauth.pub** with your Jira Admin, as they need it during _Jira Application Link_ creation.\n\n\n### Jira Application Link Creation Steps\n* Logon as a Jira Administrator\n* Go to **Application links** section under **Application** area\n* Enter dummy url (as oauth token used for API access and not web access) *https://jira-oauth1-rest-api-access*\n* Click on **Create new link** button\n* Click **Continue** on next screen\n* Enter something like **Jira OAuth1 REST API access** as a *Application Name*\n* Don't need to fill any other information. Click on **Continue**\n* Now you should able to see new Application link with name **Jira OAuth1 REST API access** created and available under section *Configure Application Links* section\n* Click on *pencil* icon to configure **Incoming Authentication**\n * Enter **jira-oauth1-rest-api-access** (or any other appropriate string) as *Consumer Key*\n * Enter same string **jira-oauth1-rest-api-access** (or any other appropriate string) as *Consumer Name*\n * Enter content of RSA Public key (stored in file **oauth.pub**) as **Public Key**\n * Click on **Save**\n\n### Prepare for OAuth Dance\nCreate **starter_oauth.config** in **~/.oauthconfig** folder:\n```ini\n[oauth_config]\njira_base_url=https://jira.example.com\nconsumer_key=jira-oauth1-rest-api-access\ntest_jira_issue=EXJIRA-123\n```\n\nPerform Jira OAuth Dance\n================\n* Make sure you are in base directory of this Repo\n* Python Virtual Environment that we create earlier is active.\n* Run **jira_oauth_token_generator.py**\n```\n(jira_oauth1_py3_env) \u279c jira-oauth-generator git:(master) \u2717 python jira_oauth_generator/jira_oauth_token_generator.py\n```\n* Authenticate in browser as directed below and then click **y** for question *Have you authorized me?*\n* After successful oAuth generation, you will get another set of values for **oauth_token** and **oauth_token_secret**. These are you tokens that you need to use access Jira without passing credentials.\n```\n(jira_oauth1_py3_env) \u279c jira-oauth-generator git:(master) \u2717 python jira_oauth_generator/jira_oauth_token_generator.py\nRequest Token: oauth_token=6AOSSREyS9HaACqEcHjcD6RJVms2NjEr, oauth_token_secret=gnpJMfbgUyG8W4dKzFW4PKFbGttV2CWm\n\nGo to the following link in your browser: https://jira.example.com/plugins/servlet/oauth/authorize?oauth_token=6AOSSREyS9HaACqEcHjcD6RJVms2NjEr\nHave you authorized me? (y/n) y\n\nAccess Token: oauth_token=lmOh7LEdvZ2yxKIm5rdQY2ZfZqNdvUV4, oauth_token_secret=gnpJMfbgUyG8W4dKzFW4PKFbGttV2CWm\nYou may now access protected resources using the access tokens above.\n\nAccessing IDEV-1 using generated OAuth tokens:\nSuccess!\nIssue key: IDEV-1, Summary: Internal Devepment Issue #1\n```\n\n## Copy both oauth_token and oauth_token_secret to .oauth_jira_config. file.\n```\n(jira_oauth1_py3_env) \u279c .oauthconfig cat .oauth_jira_config.dev\n[oauth_token_config]\noauth_token=sdfPxIsdfsdfs$sdf234sdgssd$sresdf\noauth_token_secret=rswfsdfsdfjsdjlksjdfljsdlkfjsldfj\nconsumer_key=jira-export-rest-api-access\nuser_private_key_file_name=oauth.pem\n\n[server_info]\njira_base_url=https://jira-dev.teslamotors.com\n\n[jira_oauth_generator]\ntest_issue_key=ITDOS-145\n```\n\n### Using OAuth1 tokens in Sample Jira Script.\n* Using Python Requests library\n```\n(jira_oauth1_py3_env) \u279c jira-oauth-generator git:(master) \u2717 python jira_oauth_generator/access_using_requests_package.py dev\n(EXJIRA) Excitement for JIRA Project People\n(jira_oauth1_py3_env) \u279c jira-oauth-generator git:(master) \u2717\n```\n* Using Python JIRA library\n```\n(jira_oauth1_py3_env) \u279c jira-oauth-generator git:(master) \u2717 python jira_oauth_generator/access_using_jira_library.py prod\nReteriving Issue: ITEST-145\nIssue:ITEST-145, Summary: Test access request\nReteriving 1st three Jira Projects available to you:\nFirst 3 Projects are ['TES', 'TEst', 'TEST']\n```\n\n>Original implementation is available here:\n>\n> https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples under python/app.py\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rominf/jira-oauth-generator", "keywords": "", "license": "Apache-2.0", "maintainer": "Raju Kadam", "maintainer_email": "", "name": "jira-oauth-generator", "package_url": "https://pypi.org/project/jira-oauth-generator/", "platform": "", "project_url": "https://pypi.org/project/jira-oauth-generator/", "project_urls": { "Homepage": "https://github.com/rominf/jira-oauth-generator", "Repository": "https://github.com/rominf/jira-oauth-generator" }, "release_url": "https://pypi.org/project/jira-oauth-generator/0.1.7/", "requires_dist": [ "asn1crypto (>=0.24.0,<0.25.0)", "certifi (>=2018.11,<2019.0)", "cffi (>=1.11,<2.0)", "chardet (>=3.0,<4.0)", "click (>=7.0,<8.0)", "cryptography (>=2.4,<3.0)", "defusedxml (>=0.5.0,<0.6.0)", "httplib2 (>=0.12.0,<0.13.0)", "idna (>=2.8,<3.0)", "jira (>=2.0,<3.0)", "oauth2 (>=1.9,<2.0)", "oauthlib (>=2.1,<3.0)", "pbr (>=5.1,<6.0)", "pycparser (>=2.19,<3.0)", "PyJWT (>=1.7,<2.0)", "six (>=1.11,<2.0)", "tlslite (>=0.4.9,<0.5.0)", "urllib3 (>=1.24,<2.0)", "requests (>=2.15.1,<3.0.0)", "requests-oauthlib (>=1.0.0,<2.0.0)", "requests-toolbelt (>=0.8.0,<0.9.0)" ], "requires_python": ">=3.5,<4.0", "summary": "Generator of access token for Jira OAuth", "version": "0.1.7" }, "last_serial": 4571338, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9895b911d57ebc0b07766eec735b135e", "sha256": "28d860f82b9edceaea1b3d1b4b38596fa71f38912192510d038c928d22105c44" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9895b911d57ebc0b07766eec735b135e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 16097, "upload_time": "2018-12-06T14:13:07", "url": "https://files.pythonhosted.org/packages/92/e6/91e36151a69f1cb5765ad2223688d9d2b21afe0e1c313a14f01779b25573/jira_oauth_generator-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0a851276518ebb917b26d285a18fb7e", "sha256": "797fa31205a93159459fe344c8932ca55149866c71122873b8c3925bb318c5b1" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e0a851276518ebb917b26d285a18fb7e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 5630, "upload_time": "2018-12-06T14:13:05", "url": "https://files.pythonhosted.org/packages/47/45/6b665a287ab44888cf8b631fefae2e8c2f31ac2cbef1b5a42889663d3dd8/jira-oauth-generator-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "080a16067768eaafd0985bbdc92f4c0b", "sha256": "87baee3b44068cfd7c59149bf1ae9e8ce4edceccb1c60005d2dba30c12d8873f" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "080a16067768eaafd0985bbdc92f4c0b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18035, "upload_time": "2018-12-06T14:17:13", "url": "https://files.pythonhosted.org/packages/43/82/ecb6c920d7be5475a75423f4dfcdf79fc6d9a6454769b2c6bf122f44310f/jira_oauth_generator-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe857761b6ce8a0d6e8f8eea773f561f", "sha256": "0ac5f536c68d6685feb1afdf05ccc9a8b20abeb845fccb43f7e135fb5ea1d3f6" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fe857761b6ce8a0d6e8f8eea773f561f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7760, "upload_time": "2018-12-06T14:17:12", "url": "https://files.pythonhosted.org/packages/10/7c/58a6e4c997a55d99166fab34b91da376337410aa77d33b7e75eae242ecd3/jira-oauth-generator-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b8e1e1c1b622cfef2e86008f1caa997c", "sha256": "439ef37eac6731add800bd1107088f9a34e8d5b5a3505ddadfa498cee6c2c20a" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b8e1e1c1b622cfef2e86008f1caa997c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18146, "upload_time": "2018-12-06T15:36:16", "url": "https://files.pythonhosted.org/packages/c9/c6/adad8e553849d4f4c6dc3776e97482832ba9c9529ae81c7c32dd5180ee66/jira_oauth_generator-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ff04c876c18f4bbb90a4b7066c35bb8", "sha256": "11ba3bdb5b1ab827704aaf28d4629995a0a164e2b34a1054f0ca9f4c53841515" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6ff04c876c18f4bbb90a4b7066c35bb8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7762, "upload_time": "2018-12-06T15:36:15", "url": "https://files.pythonhosted.org/packages/7f/27/abb48681ec357fde677d6b41504261e5cd3cc1beb3f0f27921c070a2ef9b/jira-oauth-generator-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4e11bda0a0c2ace9554fe850768554b1", "sha256": "173a261f12e83208372be57ed0756bcf2e8bb339080a63d14b53539887a1fe2a" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4e11bda0a0c2ace9554fe850768554b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18249, "upload_time": "2018-12-06T16:00:46", "url": "https://files.pythonhosted.org/packages/60/34/d3fc578562e9a0c5b5e529a6b7ce1f4bdde532c3fab5db483a3dea40f81c/jira_oauth_generator-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6e6a87b468d64e68dbd1e2da6d50369", "sha256": "3c63a653f9958ba9d2b00cec623045ced93cbdb5a8c4d454aa4336c0d67f957e" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c6e6a87b468d64e68dbd1e2da6d50369", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7794, "upload_time": "2018-12-06T16:00:45", "url": "https://files.pythonhosted.org/packages/5d/8c/880ac8bfe79b4b8192656dfef1126becd865f96c88a1bddaf7245479ac32/jira-oauth-generator-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "71d3f5cf1a0eb0158e2be04b8187aee5", "sha256": "5bdee9e6a08025d21848d712eadabb22af62b9547ed20823bf4beac70f039af4" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "71d3f5cf1a0eb0158e2be04b8187aee5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18426, "upload_time": "2018-12-07T08:28:46", "url": "https://files.pythonhosted.org/packages/97/bf/3c9b107fd91181c4db636ab19a9775999b55737dac0c0a5371bb60307d68/jira_oauth_generator-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f24a4bfd73876691be141d1c0f413bb", "sha256": "fe456604e06192a61e02746aa099558add1c07b50b403c254a43f0fe705b0cac" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.4.tar.gz", "has_sig": false, "md5_digest": "0f24a4bfd73876691be141d1c0f413bb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7764, "upload_time": "2018-12-07T08:28:44", "url": "https://files.pythonhosted.org/packages/19/04/d6fbde6ca7dec1734cbd8817a51d5be02f47ee411bc68187d5636a254f43/jira-oauth-generator-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "7801557de766be389e39ffcd76532700", "sha256": "29df651aa7fc33c60becd767308c9037287728e7ab63f6750adf1945301f9578" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "7801557de766be389e39ffcd76532700", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18481, "upload_time": "2018-12-07T10:04:23", "url": "https://files.pythonhosted.org/packages/f2/db/fbcdce0b625493be7e8b9417699d8e24f1ca4f3fc7bd0a0d5db9dd7e9105/jira_oauth_generator-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0fcb8cc2547eda41446f31ba1940a79", "sha256": "08a033b254e25d6069eb9f31a68491892fd026257d99b35ed097ef991888b5d1" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.5.tar.gz", "has_sig": false, "md5_digest": "d0fcb8cc2547eda41446f31ba1940a79", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7757, "upload_time": "2018-12-07T10:04:21", "url": "https://files.pythonhosted.org/packages/95/48/a2a17197a51d950ea3e06dc8cf851da543c59658f98fcff8830a6f136396/jira-oauth-generator-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "1b453aedad497546a98bbc5b0bd333cb", "sha256": "72fd2e640be8557bea7a1cbcea337cf5924e7fabfd52d5cfc39b20ceacc183e6" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "1b453aedad497546a98bbc5b0bd333cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18505, "upload_time": "2018-12-07T10:18:47", "url": "https://files.pythonhosted.org/packages/f0/1e/0db7dddf176c6de48d2a4716f1bf71b1f9847050b3d92132203cd88ac331/jira_oauth_generator-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e0ed515eae5f9da1ee01af70a4fd588", "sha256": "fd42b6c971d37d3e3dd3ceebfc4012f525c1070eae3fdd10d900ce9e0a68f23a" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.6.tar.gz", "has_sig": false, "md5_digest": "0e0ed515eae5f9da1ee01af70a4fd588", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7777, "upload_time": "2018-12-07T10:18:45", "url": "https://files.pythonhosted.org/packages/3a/af/00b5e9b8fbdb2161a63f0de86b4ec74fcc6af0303b5d64f7ce8d941376e0/jira-oauth-generator-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "34a03e6173fb2ab90340db1f5677adb6", "sha256": "19b1023fe322610f3ebfb3d038c3471a8aa771e5cd622906765601ab3467a9f0" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "34a03e6173fb2ab90340db1f5677adb6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18647, "upload_time": "2018-12-07T10:21:36", "url": "https://files.pythonhosted.org/packages/e9/c3/8dbef344fc6ef4ababb4e789cd5a18921c1ec8a34e1f21d6aad54f2a4d6d/jira_oauth_generator-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0882b87faba791bae86304b73aab9cac", "sha256": "ce6ef7baaa7eb9b877c3935b607e60750d0e2517e2a211654220919fc05bb2be" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.7.tar.gz", "has_sig": false, "md5_digest": "0882b87faba791bae86304b73aab9cac", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7771, "upload_time": "2018-12-07T10:21:35", "url": "https://files.pythonhosted.org/packages/2e/b8/d087d7e1e77454cda3841e283909f1b7aa5ba63ce33d072fe0f7a4ccae8d/jira-oauth-generator-0.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "34a03e6173fb2ab90340db1f5677adb6", "sha256": "19b1023fe322610f3ebfb3d038c3471a8aa771e5cd622906765601ab3467a9f0" }, "downloads": -1, "filename": "jira_oauth_generator-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "34a03e6173fb2ab90340db1f5677adb6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 18647, "upload_time": "2018-12-07T10:21:36", "url": "https://files.pythonhosted.org/packages/e9/c3/8dbef344fc6ef4ababb4e789cd5a18921c1ec8a34e1f21d6aad54f2a4d6d/jira_oauth_generator-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0882b87faba791bae86304b73aab9cac", "sha256": "ce6ef7baaa7eb9b877c3935b607e60750d0e2517e2a211654220919fc05bb2be" }, "downloads": -1, "filename": "jira-oauth-generator-0.1.7.tar.gz", "has_sig": false, "md5_digest": "0882b87faba791bae86304b73aab9cac", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7771, "upload_time": "2018-12-07T10:21:35", "url": "https://files.pythonhosted.org/packages/2e/b8/d087d7e1e77454cda3841e283909f1b7aa5ba63ce33d072fe0f7a4ccae8d/jira-oauth-generator-0.1.7.tar.gz" } ] }