{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# jf_agent\n\nAn agent that can run on-premise and collect data to be sent to [Jellyfish](https://jellyfish.co/).\n\n## Usage\n\n1. In a python 3 environment, install jf_agent with `pip`:\n```bash\npip install jf_agent\n```\n\nor, depending how your python environment is set up,\n\n```bash\npip3 install jf_agent\n```\n\n2. For Jira: Gather your Jira credentials. You'll need a Jira username with read access to the right projects, along with the password for that user.\n\n3. Set up environment variables with your Jira credentials. Set `JIRA_USERNAME` and `JIRA_PASSWORD` to the username and password you found above.\n\n4. For Bitbucket: Gather your Bitbucket credentials. Set the `BITBUCKET_USERNAME` and `BITBUCKET_PASSWORD` environment variables to appropriate values.\n\n5. For Github: Create a personal access token (https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line). Set the `GITHUB_TOKEN` environment variable to the contents of your token.\n\n6. Create a YAML config file that tell jf_agent how to run. An example config file could be:\n\n```\nglobal:\n # Location to put output files\n out_dir: /tmp/agent\n\n # Set this to True to skip verification of server SSL certificates. This might\n # be useful if your Jira / Bitbucket server doesn't have a valid SSL certificate.\n no_verify_ssl: False\n\njira:\n # URL to jira\n url: https://jira.yourcompany.com\n\n # Uncomment this to print the list of available fields and exit\n # print_fields_only: True\n\n # GDPR mode: enable this if your Jira instance's API has User\n # endpoints modified in order to support GDPR. This should be True\n # for Atlassian Cloud hosted JIRA as of March 30, 2019.\n gdpr_active: False\n \n # only pull issues from specific projects. Comment this out\n # to pull issues from all projects.\n include_projects:\n - PROJ1\n - PROJ2\n\n # Uncomment this to pull issues from all but specific projects.\n # exclude_projects:\n # - PROJ1\n\n # Uncomment to pull issues from specific project categories only.\n # include_project_categories:\n # - Engineering\n\n # Uncomment this to pull issues from all but specific project categories.\n # exclude_project_categories:\n # - Support\n\n # Uncomment this to pull only issues matching a specific JQL filter\n # issue_jql: 'text ~ pattern and issuetype != \"Secret Type\"'\n\n # Uncomment this to pull only specific fields on issues.\n # include_fields:\n # - id\n # - summary\n\n # Uncomment this to pull all but specific fields on issues.\n # exclude_fields:\n # - description\n # - comment\n\n\ngit:\n # supported providers are `bitbucket_server` and `github`\n provider: bitbucket_server\n \n # URL to bitbucket or github. For github cloud, this should be https://api.github.com; otherwise, use the URL to your local git server.\n url: https://bitbucket.yourcompany.com\n \n # only pull from specific projects / organizations. Required for github; comment this out to pull from all projects for bitbucket server.\n include_projects:\n - PROJ1\n \n # Uncomment this to pull from all but specific projects (not supported for github).\n # exclude_projects:\n # - PROJ1\n \n # only pull from specific repos. Comment this out to pull from all repos.\n include_repos:\n - my_repository\n \n # Uncomment this to pull from all but specific repos.\n # exclude_repos:\n # - repo_to_skip\n \n # Strip out long-form text content (commit messages, PR text, etc)\n strip_text_content: False\n \n # Redact names and URLs for projects, repos, branches\n redact_names_and_urls: False\n```\n\n5. Run `jf_agent` with the path to your config file, optionally specifying constraints on time to pull git data:\n```\njf_agent -c jellyfish.yml [--since 2018-01-01] [--until 2019-04-02]\n```\n\n6. Collect the generated files from the output directory you specified, and send them to Jellyfish.\n\n\n## Fields\n\nIt is possible to configure the agent to pull a subset of fields from\nJira. This can be useful if, for example, certain fields contain\nsensitive data that you don't want to send to Jellyfish.\n\nThis can be controlled through the `include_fields` and `exclude_fields`\noptions in the config file. Note, however, that certain fields are required in order\nfor Jellyfish to work. These required fields are:\n\n```\nissuekey\nproject\nreporter\nassignee\ncreator\nissuetype\nresolution\nresolutiondate\nstatus\ncreated\nupdated\nsubtasks\n```\n\nSome of the Jira agile feature are built internally on \"custom fields\" that Jellyfish uses. These\ncustom fields have keys in the form `customfield_XXXXX`, but where the digits represented by X\nare different in each Jira installation. You can find the keys for your custom\nfields by running the agent with the `print_fields_only` option in the config file. The custom\nfields used by Jellyfish are the following:\n\n```\nEpic Link\nEpic Name\nSprint\nParent Link\nStory Points\nRank\n```\n\nMake sure that at least these fields are configured for Jellyfish to pull.\n\nAdditional Jellyfish functionality is enabled if the following fields are pulled:\n```\nsummary\ndescription\npriority\nworklog\ncomment\ntimetracking\nduedate\nlabels\nfixVersions\nversions\ncomponents\ntimeestimate\ntimeoriginalestimate\ntimespent\naggregatetimespent\naggregatetimeoriginalestimate\naggregatetimeestimate\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/Jellyfish-AI/jf_agent", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "jf-agent", "package_url": "https://pypi.org/project/jf-agent/", "platform": "", "project_url": "https://pypi.org/project/jf-agent/", "project_urls": { "Homepage": "https://github.com/Jellyfish-AI/jf_agent" }, "release_url": "https://pypi.org/project/jf-agent/0.0.22/", "requires_dist": null, "requires_python": "", "summary": "An agent for collecting data for jellyfish", "version": "0.0.22" }, "last_serial": 5507796, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "cc44fe7ec8cd682f35660fbd03ca5063", "sha256": "8577c35378b1218949eb6875d24c2b52c034bfb8caf3bc60fd3aa88f397afc65" }, "downloads": -1, "filename": "jf_agent-0.0.1.tar.gz", "has_sig": false, "md5_digest": "cc44fe7ec8cd682f35660fbd03ca5063", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5651, "upload_time": "2018-12-18T20:47:46", "url": "https://files.pythonhosted.org/packages/73/d1/2e53b1e28d64d2df5af13484cfa34c9d4766903e277b0ae24eba0037e0e8/jf_agent-0.0.1.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "136d6b03b02d30d0e2f06fdd695bb765", "sha256": "78f7b62b46c934834d93f1d933d334195b694ab49f67d8679030e21c4c226eac" }, "downloads": -1, "filename": "jf_agent-0.0.11.tar.gz", "has_sig": false, "md5_digest": "136d6b03b02d30d0e2f06fdd695bb765", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12191, "upload_time": "2019-04-23T18:17:58", "url": "https://files.pythonhosted.org/packages/ce/7c/5c01090a78b31fca2b89ef17a1634094526da99f45dcc4a5bc1046571926/jf_agent-0.0.11.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "5ec3e0e0ab4684228be9a00adeb1db28", "sha256": "55c081ee0dc496e10807ef037a93e5c263c68d29e8b968805b41e709bf2bf502" }, "downloads": -1, "filename": "jf_agent-0.0.13.tar.gz", "has_sig": false, "md5_digest": "5ec3e0e0ab4684228be9a00adeb1db28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12316, "upload_time": "2019-05-07T18:56:27", "url": "https://files.pythonhosted.org/packages/22/d5/a034fbf362a089b946789efde7c5973460abc6fa8bb2b6f767b03247ef61/jf_agent-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "96975d5b6027de18d61ce7ba1b122094", "sha256": "00337a68337b5314339bcc1ac193744d1c9be431ee31fec7bbe7bbd6dfa8a216" }, "downloads": -1, "filename": "jf_agent-0.0.14.tar.gz", "has_sig": false, "md5_digest": "96975d5b6027de18d61ce7ba1b122094", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13038, "upload_time": "2019-05-08T18:50:42", "url": "https://files.pythonhosted.org/packages/af/35/aec0d81279598b31bad771c24858056c84d9215b093d446b5395d889fc6a/jf_agent-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "bc83d1627bb00a410ffdc3f8e48b2cb6", "sha256": "dabd9798537aab8cad873bc1d0170e8997641fa6028faca12917a6e2103e8882" }, "downloads": -1, "filename": "jf_agent-0.0.15.tar.gz", "has_sig": false, "md5_digest": "bc83d1627bb00a410ffdc3f8e48b2cb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13559, "upload_time": "2019-05-10T13:58:27", "url": "https://files.pythonhosted.org/packages/59/1b/200017d3750caaf661b4ef1d57a3cf3e80215e95f61383170b492ee2f63b/jf_agent-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "d7c9464edbbc883460a4ad6be7904a89", "sha256": "3dfa0867c8e3b744a7fff64641e11b6c1bb485cdec51643521adf1791df3191b" }, "downloads": -1, "filename": "jf_agent-0.0.16.tar.gz", "has_sig": false, "md5_digest": "d7c9464edbbc883460a4ad6be7904a89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13998, "upload_time": "2019-05-23T18:35:35", "url": "https://files.pythonhosted.org/packages/52/5a/c99225648eb9644969e5f1d365d05fd8a59136d20de616eba05579cdb305/jf_agent-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "507690841aa8f76fcb49d7db391d806e", "sha256": "2551bce930732da090f03dcf0632cc1bc44c58ce906a42a9f6e48efe413b29e2" }, "downloads": -1, "filename": "jf_agent-0.0.17.tar.gz", "has_sig": false, "md5_digest": "507690841aa8f76fcb49d7db391d806e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14388, "upload_time": "2019-06-04T19:52:31", "url": "https://files.pythonhosted.org/packages/ba/5c/a6d2d6995e79d1a95897a7611ccc4ae131ef31c468fa89308ab20622e4b4/jf_agent-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "e91ad17d1972756ea9caad594a91c101", "sha256": "f76f405cbebbf89aca6d8e02a479341ff777ad10c2f9edec07112fe74f0d16c9" }, "downloads": -1, "filename": "jf_agent-0.0.18.tar.gz", "has_sig": false, "md5_digest": "e91ad17d1972756ea9caad594a91c101", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14453, "upload_time": "2019-06-06T19:16:10", "url": "https://files.pythonhosted.org/packages/13/54/a93052db48434706564e8fd88060428938a6e0455eac8201adcbb7b97794/jf_agent-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "089aef7fc9ba5819244bc286cb0584af", "sha256": "bb363ad88a09857f666bcd04b002759fd4b5b6b3103e4766421f05ea24a35aed" }, "downloads": -1, "filename": "jf_agent-0.0.19.tar.gz", "has_sig": false, "md5_digest": "089aef7fc9ba5819244bc286cb0584af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14541, "upload_time": "2019-06-07T18:15:20", "url": "https://files.pythonhosted.org/packages/cc/98/c39f2d1fd4db1b9e8a98621a53ce363740788c2d433b196f72a8b07afded/jf_agent-0.0.19.tar.gz" } ], "0.0.19b1": [ { "comment_text": "", "digests": { "md5": "107c04b467e099821cbf4f39fd207eff", "sha256": "4a194fef01e78f6eaa8bdc90bfcdeaed08d44b74788b11a035047a7048805e4d" }, "downloads": -1, "filename": "jf_agent-0.0.19b1.tar.gz", "has_sig": false, "md5_digest": "107c04b467e099821cbf4f39fd207eff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14339, "upload_time": "2019-06-07T15:32:35", "url": "https://files.pythonhosted.org/packages/27/cf/40ac79e99052cbeaef8de1ddbed5b4fadbc254b925e3a478242d477b1a09/jf_agent-0.0.19b1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "b966145196b685ddd442de891e75f42b", "sha256": "4a2e54c5129e9a7316076f7010f9d6b4b447b899bd3474bb2f2497cf135c833d" }, "downloads": -1, "filename": "jf_agent-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b966145196b685ddd442de891e75f42b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5698, "upload_time": "2018-12-18T21:06:06", "url": "https://files.pythonhosted.org/packages/a5/5a/4b434013d4127c5cde98edd911fff9b2de072b1c50965e93541f3202415d/jf_agent-0.0.2.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "25412bbaeaefd2ca5db208e2253fb72a", "sha256": "ca9b6c384917d8355c41c5c9d141b879aaab7d554dfefbced176de8d9f4c0d96" }, "downloads": -1, "filename": "jf_agent-0.0.20.tar.gz", "has_sig": false, "md5_digest": "25412bbaeaefd2ca5db208e2253fb72a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17841, "upload_time": "2019-06-27T19:35:31", "url": "https://files.pythonhosted.org/packages/14/9a/24ca3caf6c010eb6f438705c3608ef32664c031e18fd078451db1c361f9c/jf_agent-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "cf12b7400e612ed0f68ce28853c82776", "sha256": "cfc577381136b5510519babf0713c5cd9068026c469b84fc5352d7cd68948e17" }, "downloads": -1, "filename": "jf_agent-0.0.21post1.tar.gz", "has_sig": false, "md5_digest": "cf12b7400e612ed0f68ce28853c82776", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18168, "upload_time": "2019-07-03T22:59:32", "url": "https://files.pythonhosted.org/packages/e1/74/6b3c2fd1931b3bffda854d51d02917810fd0039c4f45a2f300ef99dbafad/jf_agent-0.0.21post1.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "9c957f63847781cadd3e3c389b18a0c8", "sha256": "1fd4d121f3b220077afbcbaf8eb953dc49145716ea8516702bec35f93cdd431c" }, "downloads": -1, "filename": "jf_agent-0.0.22.tar.gz", "has_sig": false, "md5_digest": "9c957f63847781cadd3e3c389b18a0c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18310, "upload_time": "2019-07-09T15:38:40", "url": "https://files.pythonhosted.org/packages/99/de/62840ec9f6c1fefc4c1493dc05a6ca52e2314227921fde465e39555c9cee/jf_agent-0.0.22.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "500b3f912861adac4f9ddc7a237cda3b", "sha256": "f744c873c15f63e01c1a4f42f585bf8f1350203b3b6709bb9a304fd7bdf779c2" }, "downloads": -1, "filename": "jf_agent-0.0.3.tar.gz", "has_sig": false, "md5_digest": "500b3f912861adac4f9ddc7a237cda3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5693, "upload_time": "2018-12-18T23:46:39", "url": "https://files.pythonhosted.org/packages/87/e8/a574d8be37c48b05e6edb4e58e3b74078673e9c3784c63fc0dfe6422fc0c/jf_agent-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "05aa17e7bdf83ce748e8dd7dddda5a4d", "sha256": "d4332ae07e01fd5130b0e6aa9e7bdbeff4691b6206d90001d0f48d072c91dd93" }, "downloads": -1, "filename": "jf_agent-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "05aa17e7bdf83ce748e8dd7dddda5a4d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10063, "upload_time": "2019-01-09T18:59:58", "url": "https://files.pythonhosted.org/packages/6f/5a/6ad525d1982019de4ab4a7ba03a926a066ed422601fed87b973e8d6f8be3/jf_agent-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9d27b6a315306556ea343dc15b13df1", "sha256": "df20ebe661d71fa3664f9cbe850487cd137f3fec41daa339f04ed7cd0da4877d" }, "downloads": -1, "filename": "jf_agent-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e9d27b6a315306556ea343dc15b13df1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8067, "upload_time": "2019-01-09T18:59:59", "url": "https://files.pythonhosted.org/packages/0d/a0/b74d18ec4ac3a375f4596e8916591d64b1b9f6030745bfee63fe65484149/jf_agent-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "abf9d263021b329298ae302994916831", "sha256": "d78fbef56cdd710657472e64b2feafce26ff46e19b193d45e5b2a5357c19f448" }, "downloads": -1, "filename": "jf_agent-0.0.5-py3.7.egg", "has_sig": false, "md5_digest": "abf9d263021b329298ae302994916831", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 9063, "upload_time": "2019-02-26T18:37:29", "url": "https://files.pythonhosted.org/packages/e8/f4/41cecbe2b38a6a8a6131d6b89c9763a58e870d1791b58534e07c0da48f18/jf_agent-0.0.5-py3.7.egg" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "2c6b95d2396973224f4540efdd48e465", "sha256": "645ca97f63cd39f23551cc649b648963725e319b0985bf5f55b98599a9bc4d78" }, "downloads": -1, "filename": "jf_agent-0.0.6.tar.gz", "has_sig": false, "md5_digest": "2c6b95d2396973224f4540efdd48e465", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11183, "upload_time": "2019-02-28T15:20:25", "url": "https://files.pythonhosted.org/packages/b4/97/2dcf5398bdb8a0d7f971afdd0959259f8a161e8ed280fd483d90646b63f6/jf_agent-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "c1a4101743056a9bdea544b312da7037", "sha256": "17ea4946a562d7a56c4d5c0148458f79fa417b899b23fa5c9fd372b8637630e9" }, "downloads": -1, "filename": "jf_agent-0.0.7.tar.gz", "has_sig": false, "md5_digest": "c1a4101743056a9bdea544b312da7037", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11363, "upload_time": "2019-03-01T21:39:56", "url": "https://files.pythonhosted.org/packages/48/5d/2606e7a2404aba06f9981c2782dbdd96f49aa910498fa2d06f1a96eaf10f/jf_agent-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "05a72690edd0809f0fd1daacab85cf6a", "sha256": "82741a5b585c1e3de0e59379b7dd0661f2c08136601f4ed08723b5944cd742b0" }, "downloads": -1, "filename": "jf_agent-0.0.8.tar.gz", "has_sig": false, "md5_digest": "05a72690edd0809f0fd1daacab85cf6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11577, "upload_time": "2019-03-08T21:39:44", "url": "https://files.pythonhosted.org/packages/ae/82/ebe84d8cd514587998e094f33c25ec684f5f14d63e4c72c2d7896f4caa36/jf_agent-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "23e040d12c0dbc2fd52796ca53caded6", "sha256": "85619b79188d9e48a26ed498b9577f5a86ae828db957f478e41af43cfcc6b6f5" }, "downloads": -1, "filename": "jf_agent-0.0.9.tar.gz", "has_sig": false, "md5_digest": "23e040d12c0dbc2fd52796ca53caded6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11702, "upload_time": "2019-03-14T13:45:17", "url": "https://files.pythonhosted.org/packages/55/dd/1ec3114f410147167b672f73e54492d1631f1633b121c71516e57da65503/jf_agent-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9c957f63847781cadd3e3c389b18a0c8", "sha256": "1fd4d121f3b220077afbcbaf8eb953dc49145716ea8516702bec35f93cdd431c" }, "downloads": -1, "filename": "jf_agent-0.0.22.tar.gz", "has_sig": false, "md5_digest": "9c957f63847781cadd3e3c389b18a0c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18310, "upload_time": "2019-07-09T15:38:40", "url": "https://files.pythonhosted.org/packages/99/de/62840ec9f6c1fefc4c1493dc05a6ca52e2314227921fde465e39555c9cee/jf_agent-0.0.22.tar.gz" } ] }