{ "info": { "author": "Alexander Dudko", "author_email": "alex.dudko@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Utilities" ], "description": "Introduction\n============\n\nThe key idea of jira-bulk-loader is an activity template.\n\nThe template is written in human language with a few markup rules.\njira-bulk-loader.py uses the prepared template to create the corresponding\nset of tasks easy and effortless.\n\n\nRequirements\n============\n\n#. Python 2.7, 3.4, 3.5\n#. JIRA REST API version 2 (i.e. JIRA v5.0 and above)\n\n\nLinux installation\n==================\n\nTo install jira-bulk-loader, simply run: ::bash\n\n $ pip install jira-bulk-loader\n\n\nWindows installation\n====================\n\nTo install jira-bulk-loader on Windows:\n\n#. Download and install the latest Python 2.7 - https://www.python.org/downloads/windows/\n#. Run C:\\\\Python27\\\\python.exe -m pip install -U pip jira-bulk-loader\n#. Run C:\\\\Python27\\\\Scripts\\\\jira-bulk-loader.py -h to verify installation\n\n\nVery simple case\n================\n\nTemplate:\n\n | \th5. First task summary \\*assignee\\*\n |\t=description line 1\n | \t=description line 2\n |\n | \th5. Second task summary \\*assignee\\*\n | \t=description line 3\n | \t=description line 4\n\ncommand:\n\n jira-bulk-loader.py -U -P \\\n -H jira.your_domain.org -W PRKEY template_file\n\ntwo tasks will be created and assigned to *assignee* in the project\nwith a project key *PRKEY*.\n\n\n\nOne more simple case\n====================\n\nTemplate:\n\n | \th5. Task summary \\*assignee\\*\n |\t=description line 1\n | \t=description line 2\n |\n | \t# First sub-task summary \\*assignee1\\* +watcher1+\n | \t=description line 3\n |\n |\t# Second sub-task summary \\*assignee2\\* %2012-09-18%\n | \t=description line 3\n\nand the command:\n\n jira-bulk-loader.py -U -P \\\n -H jira.your_domain.org -D 2016-10-20 -W PRKEY template_file\n\nIt will create a task with two subtasks.\nMoreover it sets due date 2016-10-01 (YYYY-mm-DD) for the 2nd sub-task.\nAll other created tasks will have due date set to 2016-10-20.\nUser 'watcher1' will be added to the list of watchers of the first task.\n\n\nLink issues\n===========\n\nA task can be `linked `_ to another task.\n\n | h5. Task1 summary \\*assignee\\* \n | h5. Task2 summary \\*assignee\\* \n | h5. Task3 summary \\*assignee\\* \n\nwhere 'Relates' and 'Blocks' are link types.\nIf it is not specified, default value 'Relates' will be used.\nFor the full list of possible link types see: https:///rest/api/2/issueLinkType\n\nIn this example Task1 will be included in JIRA-1234, JIRA-1234 will be blocked\nby Task2 and Task3 will be blocked by JIRA-1234.\n\n\nDry run option\n==============\n\njira-bulk-loader.py has an option *--dry*. If it is specified in command line,\njira-bulk-loader checks template syntax, verifies project name and assignees\nbut doesn't create tasks.\n\nI would strongly recommend using it every time.\n\n\n\nUser story and 'included in' tasks\n==================================\n\nSometime an activity is too complex and it is much easier and appropriate\nto create several tasks with sub-tasks and link them to a user story.\n\n | \th4. User story summary \\*assignee\\*\n |\t=description\n |\n | \th5. First task summary \\*assignee1\\*\n |\t=description\n | \t# Sub-task summary \\*assignee1\\*\n | \t=description\n |\n | \th5. Second task summary \\*assignee2\\*\n |\t=description\n | \t# Sub-task summary \\*assignee2\\*\n | \t=description\n\nIn this case h5 tasks will be linked to h4 user story.\n\n\n\nCreate subtask of existing task or user story\n==============================================\n\nIf you have a task in JIRA and want to create a subtask for it,\nuse the following syntax:\n\n | ... JIRA-1234\n | # Sub-task summary \\*assignee1\\*\n | =description\n\n\n\nTask parameters\n===============\n\nIt is possible to define task attributes in template:\n\n |\t{\"project\":{\"key\":\"PRKEY\"}}\n |\t{\"priority\": {\"name\": \"High\"}}\n |\t{\"duedate\": \"2012-09-20\"}\n |\t{\"components\": [{\"name\": \"Production\"}]}\n |\n | \th5. 1st task summary \\*assignee1\\*\n |\t=description\n |\n | \th5. 2nd task summary \\*assignee2\\* {\"components\": [{\"name\": \"Test\"}]}\n |\t=description\n |\n | \th5. 3rd task summary \\*assignee3\\*\n |\t=description\n\nIn the example *project*, *priority* and *duedate* will be applied to all\ntasks by default. The *component* 'Production' will be applied to task 1 and 3.\nHowever, the second task will use the *component* 'Localizations'.\n\n`This part `_ of Jira documentation could give a clue how to find out relevant parameters in your project and their format.\n\n\n\nA short summary\n===============\n\nLet me summarize what are the possible markups to begin a line with:\n\n- a user story: h4. summary \\*assignee\\*\n- a task: h5. summary \\*assignee\\*\n- existing user story: .. JIRA-1234\n- existing task: ... JIRA-1234\n- a sub-task: # summary \\*assignee\\*\n- one more sub-task: #* summary \\*assignee\\*\n- description: =\n\nEvery task definition can be followed by one or more inline auxiliary\nparameters:\n\n- %YYYY-MM-DD% - due date\n- +username+ - watchers (can be more than one: +watcher1+ +warcher2+ and etc)\n- or - link\n- {\"components\": [{\"name\": \"Localizations\"}]} - any json data that will be sent directly to JIRA API as a part of `create request `_.\n\n\n\nTemplate variables\n==================\n\n |\t[REVISION=194567]\n |\t[QA=John]\n |\n | \th5. First task summary \\*$QA\\*\n |\t=description $REVISION\n |\n | \th5. Second task summary \\*$QA\\*\n |\t=description $REVISION\n\nis equivalent to\n\n | \th5. First task summary \\*John\\*\n |\t=description 194567\n |\n | \th5. Second task summary \\*John\\*\n |\t=description 194567\n\nthe important difference is that you don't need to change assignee or\ndescription of each task in your template. You change variable value instead\nand it is applied to every line in the template.\n\n\nRun-time variables\n==================\n\nSometime it is necessary to create a reference to another task in the template.\nSuch requirement can be fulfilled with a help of template run-time variables.\n\n | h5. h5 task1 *assignee* [TASK_KEY1]\n | h5. h5 task2 *assignee* [TASK_KEY2]\n | h5. h5 task3 *assignee*\n | =description $TASK_KEY1\n | # Sub-task *assignee*\n | =description $TASK_KEY2\n\nWhen jira-bulk-loader creates 'h5 task1' and 'h5 task2' in Jira,\n$TASK_KEY1 and $TASK_KEY2 will be have their issue_id.\n\nThe only restriction is: you can't reference a task that has not been\ncreated yet, i.e. a template variable cannot be used before assignment.\n\n\nIssues and new ideas\n====================\n\nIf you found an issue or if you have an idea of improvement please visit `https://github.com/oktopuz/jira-bulk-loader/issues `_", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/oktopuz/jira-bulk-loader", "keywords": null, "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "jira-bulk-loader", "package_url": "https://pypi.org/project/jira-bulk-loader/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/jira-bulk-loader/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/oktopuz/jira-bulk-loader" }, "release_url": "https://pypi.org/project/jira-bulk-loader/0.3.1/", "requires_dist": null, "requires_python": null, "summary": "Create tasks in Jira via RESTful API", "version": "0.3.1" }, "last_serial": 2375451, "releases": { "0.1.6": [ { "comment_text": "", "digests": { "md5": "f61ab91d9a9da1bd5119d2ad9238b38f", "sha256": "7c8ee4add4d6047363c52da1801984a62cdd3a051d8c585da89771a2f162287a" }, "downloads": -1, "filename": "jira-bulk-loader-0.1.6.tar.gz", "has_sig": false, "md5_digest": "f61ab91d9a9da1bd5119d2ad9238b38f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13045, "upload_time": "2013-07-31T15:15:14", "url": "https://files.pythonhosted.org/packages/e6/61/bea24a1a0fb40cd122cdf525897964f885db57a3b8957479b53926f40fd4/jira-bulk-loader-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "8c29ee450d5e6aee8a994f423b7fd0a0", "sha256": "3264cdb04a86b855dca00828b9e620c0221bde2bf2aca9fb656ec513c4d72f32" }, "downloads": -1, "filename": "jira-bulk-loader-0.1.7.tar.gz", "has_sig": false, "md5_digest": "8c29ee450d5e6aee8a994f423b7fd0a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12503, "upload_time": "2013-08-03T11:25:41", "url": "https://files.pythonhosted.org/packages/ab/79/17e3ab16995bd9eccee73394883e3b28f7341c92200c4608fbd091fc13e4/jira-bulk-loader-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "5ca656b0978d5ea5d395f6cb7adbe9d0", "sha256": "f59323bead5678a2b8c8757523d97a5843f6cd953d1b741efa1a064088433ff4" }, "downloads": -1, "filename": "jira-bulk-loader-0.1.8.tar.gz", "has_sig": false, "md5_digest": "5ca656b0978d5ea5d395f6cb7adbe9d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12508, "upload_time": "2013-08-07T15:45:11", "url": "https://files.pythonhosted.org/packages/85/d6/49efed32a906e9e5b3efd5aa5f7f367e11bee80dd1a67fb85b51459e0fd5/jira-bulk-loader-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "8cad9c8d421ff6cffcde30a91ac88138", "sha256": "31d7c0878febd1c9f3fcfa147976c06fa8a673d2f7ab9ddb13563d43881ce0e2" }, "downloads": -1, "filename": "jira-bulk-loader-0.1.9.tar.gz", "has_sig": false, "md5_digest": "8cad9c8d421ff6cffcde30a91ac88138", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12564, "upload_time": "2013-08-13T20:59:07", "url": "https://files.pythonhosted.org/packages/4a/b0/e8e6f5690c79a6c079fec1897c5a11f98048d4e19cb2278a2680fe544756/jira-bulk-loader-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "68caf65d9f097e6063a7594e9385f5bc", "sha256": "563e6b79fcbc64c37de7ef024cd2e4046145908ac7f63390c648a0686e4f0319" }, "downloads": -1, "filename": "jira-bulk-loader-0.2.0.tar.gz", "has_sig": false, "md5_digest": "68caf65d9f097e6063a7594e9385f5bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12589, "upload_time": "2013-10-30T15:35:02", "url": "https://files.pythonhosted.org/packages/0b/5e/ec8b86e3e944c1284139c5fe6481f402a82e567694ce7c5802c0c9b32322/jira-bulk-loader-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "982cb75cd800d4c9b9df7e637685dc04", "sha256": "147c5e8dc203e27c8045a4add58e143bc0426c4fb8516e2da0cb808f487286fb" }, "downloads": -1, "filename": "jira-bulk-loader-0.2.1.tar.gz", "has_sig": false, "md5_digest": "982cb75cd800d4c9b9df7e637685dc04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12617, "upload_time": "2013-11-04T10:53:42", "url": "https://files.pythonhosted.org/packages/cd/8a/3e8582207d32ce651f06821031381f015b5af7291578fb13abce9bb22f0b/jira-bulk-loader-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "be38c53cbf7cc597be4dba5bedfae6a5", "sha256": "8a6affdf425c42c4ee36f56ed35563c8d8aff0b4b1d91a9ebae5769b5c906cbf" }, "downloads": -1, "filename": "jira-bulk-loader-0.2.2.tar.gz", "has_sig": false, "md5_digest": "be38c53cbf7cc597be4dba5bedfae6a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13433, "upload_time": "2014-06-11T17:39:21", "url": "https://files.pythonhosted.org/packages/43/57/a22105394bb979cb881c95f76cdfca787575ca86cd1199940492b910c27b/jira-bulk-loader-0.2.2.tar.gz" } ], "0.2.3": [], "0.2.4": [], "0.2.5": [ { "comment_text": "", "digests": { "md5": "418de23263384eca730225491d304939", "sha256": "106d99cb92bbf25897f4a20cf5fa5670e50260b5d454f7c16987a9e8bff7fb0a" }, "downloads": -1, "filename": "jira-bulk-loader-0.2.5.tar.gz", "has_sig": false, "md5_digest": "418de23263384eca730225491d304939", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13503, "upload_time": "2015-08-14T13:47:43", "url": "https://files.pythonhosted.org/packages/8c/b6/1207ec7918f6bb98c85e29541b3167da26472638867d65175f9c8889dbe6/jira-bulk-loader-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "59f622c703fe56df747324512a6be863", "sha256": "ab54a42c3b8680dcc5d47f194ee16294db57602f3893b0df9650bd7f504dd014" }, "downloads": -1, "filename": "jira-bulk-loader-0.2.6.tar.gz", "has_sig": false, "md5_digest": "59f622c703fe56df747324512a6be863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13484, "upload_time": "2015-08-14T15:32:45", "url": "https://files.pythonhosted.org/packages/b9/c3/32a1126e73b49f5327e10b1ebc44e04469f25daf710d7e5ab5e9c7e65ad3/jira-bulk-loader-0.2.6.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "89ea76ac5ee42a9a5ea43c037fce0d05", "sha256": "08f04eeed90615ed65697e03c0ac23a0b419c169131be03a5dc39b093e566981" }, "downloads": -1, "filename": "jira-bulk-loader-0.3.0.tar.gz", "has_sig": false, "md5_digest": "89ea76ac5ee42a9a5ea43c037fce0d05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8727, "upload_time": "2016-01-23T23:17:15", "url": "https://files.pythonhosted.org/packages/67/c9/1b764f1809faed7b5af4deef86d53f4c0818f8fec17dc5f4ecf9dfbc36ab/jira-bulk-loader-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "3626ed942a0629c684c9dde05e708333", "sha256": "af0504eee2ef0975ba2218f2d1e44210313a9e0b6f14f93be87fb9fd4570847f" }, "downloads": -1, "filename": "jira-bulk-loader-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3626ed942a0629c684c9dde05e708333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12333, "upload_time": "2016-10-02T00:20:08", "url": "https://files.pythonhosted.org/packages/31/0b/dfedce740f7cb3315837c18e7c648f43290ba7b46cb180ac33b53a0e6032/jira-bulk-loader-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3626ed942a0629c684c9dde05e708333", "sha256": "af0504eee2ef0975ba2218f2d1e44210313a9e0b6f14f93be87fb9fd4570847f" }, "downloads": -1, "filename": "jira-bulk-loader-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3626ed942a0629c684c9dde05e708333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12333, "upload_time": "2016-10-02T00:20:08", "url": "https://files.pythonhosted.org/packages/31/0b/dfedce740f7cb3315837c18e7c648f43290ba7b46cb180ac33b53a0e6032/jira-bulk-loader-0.3.1.tar.gz" } ] }