[Python-modules-commits] [python-jira] 01/02: New upstream version 1.0.10
Sophie Brun
sbrun-guest at moszumanska.debian.org
Thu Oct 26 13:06:31 UTC 2017
This is an automated email from the git hooks/post-receive script.
sbrun-guest pushed a commit to branch debian/master
in repository python-jira.
commit 01eb974867961334a03ab345ee156c0d7576a0ac
Author: Sophie Brun <sophie at freexian.com>
Date: Thu Oct 26 11:03:09 2017 +0200
New upstream version 1.0.10
---
.coveragerc | 14 +
.coveralls.yml | 1 +
.gitchangelog.rc | 180 +++
.gitignore | 28 +
.gitreview | 5 +
.travis.yml | 70 +
AUTHORS.rst | 12 +
LICENSE | 19 +
MANIFEST.in | 5 +
Makefile | 124 ++
README.rst | 125 ++
build/.gitignore | 4 +
dist/.gitignore | 4 +
docs/Makefile | 153 +++
docs/_static/.placeholder | 0
docs/_static/python-16.png | Bin 0 -> 1404 bytes
docs/_static/python-256.png | Bin 0 -> 11455 bytes
docs/_static/python-32.png | Bin 0 -> 1374 bytes
docs/_static/python-64.png | Bin 0 -> 2596 bytes
docs/advanced.rst | 29 +
docs/api.rst | 37 +
docs/conf.py | 248 ++++
docs/contributing.rst | 17 +
docs/examples.rst | 353 +++++
docs/extra/jira.xml | 4 +
docs/index.rst | 40 +
docs/installation.rst | 40 +
docs/jirashell.rst | 63 +
docs/templates/.placeholder | 0
examples/basic_auth.py | 22 +
examples/basic_use.py | 50 +
examples/greenhopper.py | 27 +
hooks/pre-commit | 4 +
jira/__init__.py | 36 +
jira/client.py | 3079 +++++++++++++++++++++++++++++++++++++++++++
jira/config.py | 98 ++
jira/exceptions.py | 62 +
jira/jirashell.py | 261 ++++
jira/resilientsession.py | 168 +++
jira/resources.py | 904 +++++++++++++
jira/utils/LICENSE | 27 +
jira/utils/__init__.py | 84 ++
jira/utils/lru_cache.py | 170 +++
jira/utils/version.py | 82 ++
pytest.ini | 19 +
release.sh | 61 +
requirements-all.txt | 3 +
requirements-dev.txt | 27 +
requirements-opt.txt | 9 +
requirements.txt | 13 +
setup.cfg | 85 ++
setup.py | 37 +
test.local | 18 +
tests/icon.png | Bin 0 -> 13123 bytes
tests/id_rsa | 51 +
tests/id_rsa.pub | 1 +
tests/start-jira.sh | 12 +
tests/stop-jira.sh | 5 +
tests/test_client.py | 129 ++
tests/tests.py | 2119 +++++++++++++++++++++++++++++
tox.ini | 38 +
61 files changed, 9276 insertions(+)
diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000..c2ac531
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,14 @@
+[run]
+data_file = .coverage
+source = jira
+branch = True
+
+[report]
+exclude_lines =
+ pragma: no cover
+ def __repr__
+ raise AssertionError
+ raise NotImplementedError
+ if __name__ == .__main__.:
+
+ignore_errors = True
diff --git a/.coveralls.yml b/.coveralls.yml
new file mode 100644
index 0000000..56ddab6
--- /dev/null
+++ b/.coveralls.yml
@@ -0,0 +1 @@
+repo_token: TagM2COnwKYL3YaS7He9DkBPA7GFDQwsH
diff --git a/.gitchangelog.rc b/.gitchangelog.rc
new file mode 100644
index 0000000..4bda93d
--- /dev/null
+++ b/.gitchangelog.rc
@@ -0,0 +1,180 @@
+##
+## Format
+##
+## ACTION: [AUDIENCE:] COMMIT_MSG [!TAG ...]
+##
+## Description
+##
+## ACTION is one of 'chg', 'fix', 'new'
+##
+## Is WHAT the change is about.
+##
+## 'chg' is for refactor, small improvement, cosmetic changes...
+## 'fix' is for bug fixes
+## 'new' is for new features, big improvement
+##
+## AUDIENCE is optional and one of 'dev', 'usr', 'pkg', 'test', 'doc'
+##
+## Is WHO is concerned by the change.
+##
+## 'dev' is for developpers (API changes, refactors...)
+## 'usr' is for final users (UI changes)
+## 'pkg' is for packagers (packaging changes)
+## 'test' is for testers (test only related changes)
+## 'doc' is for doc guys (doc only changes)
+##
+## COMMIT_MSG is ... well ... the commit message itself.
+##
+## TAGs are additionnal adjective as 'refactor' 'minor' 'cosmetic'
+##
+## They are preceded with a '!' or a '@' (prefer the former, as the
+## latter is wrongly interpreted in github.) Commonly used tags are:
+##
+## 'refactor' is obviously for refactoring code only
+## 'minor' is for a very meaningless change (a typo, adding a comment)
+## 'cosmetic' is for cosmetic driven change (re-indentation, 80-col...)
+## 'wip' is for partial functionality but complete subfunctionality.
+##
+## Example:
+##
+## new: usr: support of bazaar implemented
+## chg: re-indentend some lines !cosmetic
+## new: dev: updated code to be compatible with last version of killer lib.
+## fix: pkg: updated year of licence coverage.
+## new: test: added a bunch of test around user usability of feature X.
+## fix: typo in spelling my name in comment. !minor
+##
+## Please note that multi-line commit message are supported, and only the
+## first line will be considered as the "summary" of the commit message. So
+## tags, and other rules only applies to the summary. The body of the commit
+## message will be displayed in the changelog without reformatting.
+
+
+##
+## ``ignore_regexps`` is a line of regexps
+##
+## Any commit having its full commit message matching any regexp listed here
+## will be ignored and won't be reported in the changelog.
+##
+ignore_regexps = [
+ # ignore trivial fixes
+ r'Auto-generating.*',
+ r'spelling|typo',
+ r'bump.*version',
+ # all merged commits in the PR will appear in changelog anyway so
+ # the PR merge commit is not needed.
+ r'Merge pull request #\d+ from.*'
+]
+
+
+## ``section_regexps`` is a list of 2-tuples associating a string label and a
+## list of regexp
+##
+## Commit messages will be classified in sections thanks to this. Section
+## titles are the label, and a commit is classified under this section if any
+## of the regexps associated is matching.
+##
+section_regexps = [
+ ('Other', None), ## Match all lines
+]
+
+
+## ``body_process`` is a callable
+##
+## This callable will be given the original body and result will
+## be used in the changelog.
+##
+## Available constructs are:
+##
+## - any python callable that take one txt argument and return txt argument.
+##
+## - ReSub(pattern, replacement): will apply regexp substitution.
+##
+## - Indent(chars=" "): will indent the text with the prefix
+## Please remember that template engines gets also to modify the text and
+## will usually indent themselves the text if needed.
+##
+## - Wrap(regexp=r"\n\n"): re-wrap text in separate paragraph to fill 80-Columns
+##
+## - noop: do nothing
+##
+## - ucfirst: ensure the first letter is uppercase.
+## (usually used in the ``subject_process`` pipeline)
+##
+## - final_dot: ensure text finishes with a dot
+## (usually used in the ``subject_process`` pipeline)
+##
+## - strip: remove any spaces before or after the content of the string
+##
+## Additionally, you can `pipe` the provided filters, for instance:
+#body_process = Wrap(regexp=r'\n(?=\w+\s*:)') | Indent(chars=" ")
+#body_process = Wrap(regexp=r'\n(?=\w+\s*:)')
+#body_process = noop
+empty_string = lambda _: ''
+body_process = empty_string
+
+
+## ``subject_process`` is a callable
+##
+## This callable will be given the original subject and result will
+## be used in the changelog.
+##
+## Available constructs are those listed in ``body_process`` doc.
+subject_process = (strip |
+ ReSub(r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n@]*)(@[a-z]+\s+)*$', r'\4') |
+ ucfirst | final_dot)
+
+
+## ``tag_filter_regexp`` is a regexp
+##
+## Tags that will be used for the changelog must match this regexp.
+##
+tag_filter_regexp = r'^[0-9]+\.[0-9]+(\.[0-9]+)?$'
+
+
+## ``unreleased_version_label`` is a string
+##
+## This label will be used as the changelog Title of the last set of changes
+## between last valid tag and HEAD if any.
+unreleased_version_label = "Upcoming release (unreleased changes)"
+
+
+## ``output_engine`` is a callable
+##
+## This will change the output format of the generated changelog file
+##
+## Available choices are:
+##
+## - rest_py
+##
+## Legacy pure python engine, outputs ReSTructured text.
+## This is the default.
+##
+## - mustache(<template_name>)
+##
+## Template name could be any of the available templates in
+## ``templates/mustache/*.tpl``.
+## Requires python package ``pystache``.
+## Examples:
+## - mustache("markdown")
+## - mustache("restructuredtext")
+##
+## - makotemplate(<template_name>)
+##
+## Template name could be any of the available templates in
+## ``templates/mako/*.tpl``.
+## Requires python package ``mako``.
+## Examples:
+## - makotemplate("restructuredtext")
+##
+output_engine = rest_py
+#output_engine = mustache("restructuredtext")
+#output_engine = mustache("markdown")
+#output_engine = makotemplate("restructuredtext")
+
+
+## ``include_merge`` is a boolean
+##
+## This option tells git-log whether to include merge commits in the log.
+## The default is to include them.
+include_merge = True
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..73124ac
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,28 @@
+.idea/
+*.bak
+*.egg
+*.egg-info/
+*.pyc
+.cache/
+.coverage
+.coverage.*
+.eggs/
+.tox/
+amps-standalone
+coverage.xml
+docs/_build
+docs/build
+encrypt-credentials.sh
+reports
+reports/
+setenv.sh
+settings.py
+test-quick
+tests/settings.py
+tests/test-reports-*/*
+**/*.log
+/.python-version
+/CHANGELOG
+/ChangeLog
+/AUTHORS
+/tests/build
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..168150f
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=review.gerrithub.io
+port=29418
+project=pycontribs/jira.git
+defaultbranch=develop
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..0579639
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,70 @@
+language: python
+sudo: false
+matrix:
+ fast_finish: false
+os:
+- linux
+python:
+- '2.7'
+- '3.4'
+- '3.5'
+- '3.6'
+install:
+- pip -q --log dist/pip.log install --upgrade pip setuptools tox-travis py wheel
+- python setup.py sdist bdist_wheel install
+- pip install ./dist/jira-*.whl
+- pip --version
+script:
+- export PACKAGE_NAME=$(python setup.py --name)
+- export PACKAGE_VERSION=$(python setup.py --version)
+- python setup.py --version
+- tox --installpkg ./dist/jira-*.whl --travis-after
+# validates that the build source distribution is installable using the old easy_install
+- pip uninstall -y jira && easy_install ./dist/jira-*.tar.gz
+after_success:
+- coveralls
+- bash <(curl -s https://codecov.io/bash)
+- requires.io update-site -t ac3bbcca32ae03237a6aae2b02eb9411045489bb -r
+notifications:
+ email:
+ - pycontribs at googlegroups.com
+ - sorin.sbarnea at gmail.com
+deploy:
+- provider: releases
+ api_key:
+ secure: gr9iOcQjdoAyUAim6FWKzJI9MBaJo9XKfGQGu7wdPXUFhg80Rp6GLJsowP+aU94NjXM1UQlVHDAy627WtjBlLH2SvmVEIIr7+UKBopBYuXG5jJ1m3wOZE+4f1Pqe9bqFc1DxgucqE8qF0sC24fIbNM2ToeyYrxrS6RoL2gRrX2I=
+ file:
+ - dist/$PACKAGE_NAME-$PACKAGE_VERSION*
+ - ChangeLog
+ skip_cleanup: true
+ on:
+ tags: false
+ python: 2.7
+ condition: $TOXENV != docs
+- provider: pypi
+ user: sorin
+ password:
+ secure: E0cjANF7SLBdYrsnWLK8X/xWznqkF0JrP/DVfDazPzUYH6ynFeneyofzNJQPLTLsqe1eKXhuUJ/Sbl+RHFB0ySo/j/7NfYd/9pm8hpUkGCvR09IwtvMLgWKp3k10NWab03o2GOkSJSrLvZofyZBGR40wwu2O9uXPCb2rvucCGbw=
+ distributions: sdist bdist_wheel
+ skip_cleanup: true
+ on:
+ tags: true
+ python: 2.7
+ condition: $TOXENV != docs
+ branch: master
+- provider: pypi
+ server: https://testpypi.python.org/pypi
+ user: sorins
+ password:
+ secure: E0cjANF7SLBdYrsnWLK8X/xWznqkF0JrP/DVfDazPzUYH6ynFeneyofzNJQPLTLsqe1eKXhuUJ/Sbl+RHFB0ySo/j/7NfYd/9pm8hpUkGCvR09IwtvMLgWKp3k10NWab03o2GOkSJSrLvZofyZBGR40wwu2O9uXPCb2rvucCGbw=
+ distributions: sdist bdist_wheel
+ skip_cleanup: true
+ on:
+ tags: false
+ python: 2.7
+ condition: $TOXENV != docs
+ branch: develop
+env:
+ global:
+ - secure: fuXwQL+KHQ96XkAFl2uQc8eK8dAjrgkup46tck/UGjVpdv1PT/yHmBKrvpFjDa50ueGbtBwTdKAwhyAmYuiZCk2IYHzdvBylCZBBji2FSpaTM59CVwgkVT6tx3HHO83X0mEX6ih9TJvZD5XhX+YUjopnseRXRq3ey3JZJXWN4RM=
+ - secure: "pGQGM5YmHvOgaKihOyzb3k6bdqLQnZQ2OXO9QrfXlXwtop3zvZQi80Q+01l230x2psDWlwvqWTknAjAt1w463fYXPwpoSvKVCsLSSbjrf2l56nrDqnoir+n0CBy288+eIdaGEfzcxDiuULeKjlg08zrqjcjLjW0bDbBrlTXsb5U="
diff --git a/AUTHORS.rst b/AUTHORS.rst
new file mode 100644
index 0000000..8d2a106
--- /dev/null
+++ b/AUTHORS.rst
@@ -0,0 +1,12 @@
+If you are a contributor, and you are not listed here, feel free to add your name via a pull request.
+
+Development Team (PyContribs)
+`````````````````````````````
+- Ben Speakmon <ben.speakmon at gmail.com> - Original Author
+- Sorin Sbarnea <sorin.sbarnea at gmail.com> _ Current Maintainer
+
+Patches and Suggestions
+```````````````````````
+- ... and many others.
+
+Thank you!
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..3cd17f7
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2012, Atlassian Pty Ltd.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
+following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following
+disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..ef01a05
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,5 @@
+include LICENSE README.rst
+include requirements.txt
+include requirements-dev.txt
+include requirements-opt.txt
+prune tests
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..10afc3f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,124 @@
+all: info clean flake8 test docs upload release
+.PHONY: all docs upload info req
+
+PACKAGE_NAME := $(shell python setup.py --name)
+PACKAGE_VERSION := $(shell python setup.py --version)
+PYTHON_PATH := $(shell which python)
+PLATFORM := $(shell uname -s | awk '{print tolower($0)}')
+DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+PYTHON_VERSION := $(shell python3 -c "import sys; print('py%s%s' % sys.version_info[0:2] + ('-conda' if 'conda' in sys.version or 'Continuum' in sys.version else ''))")
+PYENV_HOME := $(DIR)/.tox/$(PYTHON_VERSION)-$(PLATFORM)/
+ifneq (,$(findstring conda,$(PYTHON_VERSION)))
+CONDA:=1
+endif
+
+ifndef GIT_BRANCH
+GIT_BRANCH=$(shell git branch | sed -n '/\* /s///p')
+endif
+
+info:
+ @echo "INFO: Building $(PACKAGE_NAME):$(PACKAGE_VERSION) on $(GIT_BRANCH) branch"
+ @echo "INFO: Python $(PYTHON_VERSION) from $(PYENV_HOME) [$(CONDA)]"
+
+clean:
+ @find . -name "*.pyc" -delete
+ @rm -rf .tox/*-$(PLATFORM) .tox/docs dist/* .tox/dist .tox/log docs/build/*
+
+package:
+ python setup.py sdist bdist_wheel build_sphinx
+
+req:
+ @$(PYENV_HOME)/bin/requires.io update-site -t ac3bbcca32ae03237a6aae2b02eb9411045489bb -r $(PACKAGE_NAME)
+
+install: prepare
+ $(PYENV_HOME)/bin/pip install .
+
+install-sdk:
+ # https://developer.atlassian.com/docs/getting-started/set-up-the-atlassian-plugin-sdk-and-build-a-project/install-the-atlassian-sdk-on-a-linux-or-mac-system#InstalltheAtlassianSDKonaLinuxorMacsystem-Homebrew
+ which atlas-run-standalone || brew tap atlassian/tap && brew install atlassian/tap/atlassian-plugin-sdk
+
+uninstall:
+ $(PYENV_HOME)/bin/pip uninstall -y $(PACKAGE_NAME)
+
+venv: $(PYENV_HOME)/bin/activate
+
+# virtual environment depends on requriements files
+$(PYENV_HOME)/bin/activate: requirements*.txt
+ @echo "INFO: (Re)creating virtual environment..."
+ifdef CONDA
+ test -e $(PYENV_HOME)/bin/activate || conda create -y --prefix $(PYENV_HOME) pip
+else
+ test -e $(PYENV_HOME)/bin/activate || virtualenv --python=$(PYTHON_PATH) --system-site-packages $(PYENV_HOME)
+endif
+ $(PYENV_HOME)/bin/pip install -q -r requirements.txt -r requirements-opt.txt -r requirements-dev.txt
+ touch $(PYENV_HOME)/bin/activate
+
+prepare: venv
+ pyenv install -s 2.7.13
+ pyenv install -s 3.4.5
+ pyenv install -s 3.5.2
+ pyenv install -s 3.6.0
+ pyenv local 2.7.13 3.4.5 3.5.2 3.6.0
+ @echo "INFO: === Prearing to run for package:$(PACKAGE_NAME) platform:$(PLATFORM) py:$(PYTHON_VERSION) dir:$(DIR) ==="
+ if [ -f ${HOME}/testspace/testspace ]; then ${HOME}/testspace/testspace config url ${TESTSPACE_TOKEN}@pycontribs.testspace.com/jira/tests ; fi;
+
+testspace:
+ ${HOME}/testspace/testspace publish build/results.xml
+
+flake8: venv
+ @echo "INFO: flake8"
+ $(PYENV_HOME)/bin/python -m flake8
+ $(PYENV_HOME)/bin/python -m flake8 --install-hook 2>/dev/null || true
+
+test: prepare flake8
+ @echo "INFO: test"
+ $(PYENV_HOME)/bin/python setup.py build test build_sphinx sdist bdist_wheel check --restructuredtext --strict
+
+test-cli:
+ $(PYENV_HOME)/bin/ipython -c "import jira; j = jira.JIRA('https://pycontribs.atlassian.net'); j.server_info()" -i
+
+test-all:
+ @echo "INFO: test-all (extended/matrix tests)"
+ # tox should not run inside virtualenv because it does create and use multiple virtualenvs
+ pip install -q tox tox-pyenv
+ python -m tox --skip-missing-interpreters true
+
+
+docs:
+ @echo "INFO: Building the docs"
+ $(PYENV_HOME)/bin/pip install sphinx
+ $(PYENV_HOME)/bin/python setup.py build_sphinx
+ @mkdir -p docs/build/docset
+ @mkdir -p docs/build/html/docset
+# cannot put doc2dash into requirements.txt file because is using pinned requirements
+# @DOC2DASH_OPTS=$(shell [ -d "$HOME/Library/Application Support/doc2dash/DocSets" ] && echo '--add-to-global')
+# doc2dash --force --name jira docs/build/html --destination docs/build/docset --icon docs/_static/python-32.png --online-redirect-url https://jira.readthedocs.io/en/stable/ $(DOC2DASH_OPTS)
+# cd docs/build/docset && tar --exclude='.DS_Store' -czf ../html/docset/jira.tgz jira.docset
+# # TODO: publish the docs
+
+tag:
+ bumpversion --feature --no-input
+ git push origin master
+ git push --tags
+
+release: req
+ifeq ($(GIT_BRANCH),master)
+ tag
+else
+ upload
+ web
+
+ @echo "INFO: Skipping release on this branch."
+endif
+
+upload:
+ifeq ($(GIT_BRANCH),develop)
+ @echo "INFO: Upload package to testpypi.python.org"
+ $(PYENV_HOME)/bin/python setup.py check --restructuredtext --strict
+ $(PYENV_HOME)/bin/python setup.py sdist bdist_wheel upload -r https://testpypi.python.org/pypi
+endif
+ifeq ($(GIT_BRANCH),master)
+ @echo "INFO: Upload package to pypi.python.org"
+ $(PYENV_HOME)/bin/python setup.py check --restructuredtext --strict
+ $(PYENV_HOME)/bin/python setup.py sdist bdist_wheel upload
+endif
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..7658627
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,125 @@
+===================
+JIRA Python Library
+===================
+
+.. image:: https://img.shields.io/pypi/v/jira.svg
+ :target: https://pypi.python.org/pypi/jira/
+
+.. image:: https://img.shields.io/pypi/l/jira.svg
+ :target: https://pypi.python.org/pypi/jira/
+
+.. image:: https://img.shields.io/pypi/dm/jira.svg
+ :target: https://pypi.python.org/pypi/jira/
+
+.. image:: https://img.shields.io/pypi/wheel/Django.svg
+ :target: https://pypi.python.org/pypi/jira/
+
+------------
+
+.. image:: https://readthedocs.org/projects/jira/badge/?version=master
+ :target: http://jira.readthedocs.io
+
+.. image:: https://api.travis-ci.org/pycontribs/jira.svg?branch=master
+ :target: https://travis-ci.org/pycontribs/jira
+
+.. image:: https://img.shields.io/pypi/status/jira.svg
+ :target: https://pypi.python.org/pypi/jira/
+
+.. image:: https://codecov.io/gh/pycontribs/jira/branch/develop/graph/badge.svg
+ :target: https://codecov.io/gh/pycontribs/jira
+
+.. image:: https://img.shields.io/bountysource/team/pycontribs/activity.svg
+ :target: https://www.bountysource.com/teams/pycontribs/issues?tracker_ids=3650997
+
+.. image:: https://requires.io/github/pycontribs/jira/requirements.svg?branch=master
+ :target: https://requires.io/github/pycontribs/jira/requirements/?branch=master
+ :alt: Requirements Status
+
+
+This library eases the use of the JIRA REST API from Python and it has been used in production for years.
+
+As this is an open-source project that is community maintained, do not be surprised if some bugs or features are not implemented quickly enough. You are always welcomed to use BountySource_ to motivate others to help.
+
+.. _BountySource: https://www.bountysource.com/teams/pycontribs/issues?tracker_ids=3650997
+
+
+Quickstart
+----------
+
+Feeling impatient? I like your style.
+
+.. code-block:: python
+
+ from jira import JIRA
+
+ jira = JIRA('https://jira.atlassian.com')
+
+ issue = jira.issue('JRA-9')
+ print issue.fields.project.key # 'JRA'
+ print issue.fields.issuetype.name # 'New Feature'
+ print issue.fields.reporter.displayName # 'Mike Cannon-Brookes [Atlassian]'
+
+
+Installation
+~~~~~~~~~~~~
+
+Download and install using ``pip install jira`` or ``easy_install jira``
+
+You can also try ``pip install --user --upgrade jira`` which will install or
+upgrade jira to your user directory. Or maybe you ARE using a virtualenv_
+right?
+
+.. _virtualenv: http://www.virtualenv.org/en/latest/index.html
+
+
+Usage
+~~~~~
+
+See the documentation_ for full details.
+
+.. _documentation: http://jira.readthedocs.org/en/latest/
+
+
+Development
+~~~~~~~~~~~
+
+Development takes place on GitHub_, where the git-flow_ branch structure is used:
+
+* ``master`` - contains the latest released code.
+* ``develop`` - (default branch) is used for development of the next release.
+* ``feature/XXX`` - feature branches are used for development of new features before they are merged to ``develop``.
+
+.. _GitHub: https://github.com/pycontribs/jira
+.. _git-flow: http://nvie.com/posts/a-successful-git-branching-model/
+
+
+Credits
+-------
+
+In additions to all the contributors we would like to thank to these companies:
+
+* Atlassian_ for developing such a powerful issue tracker and for providing a free on-demand JIRA_ instance that we can use for continous integration testing.
+* JetBrains_ for providing us with free licenses of PyCharm_
+* Travis_ for hosting our continous integration
+* Navicat_ for providing us free licenses of their powerful database client GUI tools.
+* Citrix_ for providing maintenance of the library.
+
+.. _Atlassian: https://www.atlassian.com/
+.. _JIRA: https://pycontribs.atlassian.net
+.. _JetBrains: http://www.jetbrains.com
+.. _PyCharm: http://www.jetbrains.com/pycharm/
+.. _Travis: https://travis-ci.org/
+.. _navicat: https://www.navicat.com/
+.. _Citrix: http://www.citrix.com/
+
+.. image:: https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&refresh=3600&resize_h=50&url=https://www.atlassian.com/dms/wac/images/press/Atlassian-logos/logoAtlassianPNG.png
+ :target: http://www.atlassian.com
+
+.. image:: https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&refresh=3600&resize_h=50&url=http://blog.jetbrains.com/pycharm/files/2015/12/PyCharm_400x400_Twitter_logo_white.png
+ :target: http://www.jetbrains.com/
+
+.. image:: https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&refresh=3600&resize_h=50&url=https://upload.wikimedia.org/wikipedia/en/9/90/PremiumSoft_Navicat_Premium_Logo.png
+ :target: http://www.navicat.com/
+
+.. image:: https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&refresh=3600&resize_h=50&url=https://www.citrix.com/content/dam/citrix/en_us/images/logos/citrix/citrix-logo-black.jpg
+ :target: http://www.citrix.com/
diff --git a/build/.gitignore b/build/.gitignore
new file mode 100644
index 0000000..5e7d273
--- /dev/null
+++ b/build/.gitignore
@@ -0,0 +1,4 @@
+# Ignore everything in this directory
+*
+# Except this file
+!.gitignore
diff --git a/dist/.gitignore b/dist/.gitignore
new file mode 100644
index 0000000..5e7d273
--- /dev/null
+++ b/dist/.gitignore
@@ -0,0 +1,4 @@
+# Ignore everything in this directory
+*
+# Except this file
+!.gitignore
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..0aece53
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,153 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = build
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/JIRAPythonClient.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/JIRAPythonClient.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/JIRAPythonClient"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/JIRAPythonClient"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/docs/_static/.placeholder b/docs/_static/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/docs/_static/python-16.png b/docs/_static/python-16.png
new file mode 100644
index 0000000..d1c07f0
Binary files /dev/null and b/docs/_static/python-16.png differ
diff --git a/docs/_static/python-256.png b/docs/_static/python-256.png
new file mode 100644
index 0000000..e0d06ff
Binary files /dev/null and b/docs/_static/python-256.png differ
diff --git a/docs/_static/python-32.png b/docs/_static/python-32.png
new file mode 100644
index 0000000..c9a60f3
Binary files /dev/null and b/docs/_static/python-32.png differ
diff --git a/docs/_static/python-64.png b/docs/_static/python-64.png
new file mode 100644
index 0000000..68ec727
Binary files /dev/null and b/docs/_static/python-64.png differ
diff --git a/docs/advanced.rst b/docs/advanced.rst
new file mode 100644
index 0000000..78fc73f
--- /dev/null
+++ b/docs/advanced.rst
@@ -0,0 +1,29 @@
+Advanced
+********
+
+Resource Objects and Properties
+===============================
+
+The library distinguishes between two kinds of data in the JIRA REST API: *resources* and *properties*.
+
+A *resource* is a REST entity that represents the current state of something that the server owns; for example,
+the issue called "ABC-123" is a concept managed by JIRA which can be viewed as a resource obtainable at the URL
+*http://jira-server/rest/api/latest/issue/ABC-123*. All resources have a *self link*: a root-level property called *self*
+which contains the URL the resource originated from. In jira-python, resources are instances of the *Resource* object
+(or one of its subclasses) and can only be obtained from the server using the ``find()`` method. Resources may be
+connected to other resources: the issue *Resource* is connected to a user *Resource* through the ``assignee`` and
+``reporter`` fields, while the project *Resource* is connected to a project lead through another user *Resource*.
+
+.. important::
+ A resource is connected to other resources, and the client preserves this connection. In the above example,
+ the object inside the ``issue`` object at ``issue.fields.assignee`` is not just a dict -- it is a full-fledged
+ user *Resource* object. Whenever a resource contains other resources, the client will attempt to convert them
+ to the proper subclass of *Resource*.
+
+A *properties object* is a collection of values returned by JIRA in response to some query from the REST API. Their
+structure is freeform and modeled as a Python dict. Client methods return this structure for calls that do not
+produce resources. For example, the properties returned from the URL *http://jira-server/rest/api/latest/issue/createmeta*
+are designed to inform users what fields (and what values for those fields) are required to successfully create
+issues in the server's projects. Since these properties are determined by JIRA's configuration, they are not resources.
+
+The JIRA client's methods document whether they will return a *Resource* or a properties object.
diff --git a/docs/api.rst b/docs/api.rst
new file mode 100644
index 0000000..269a9fb
--- /dev/null
+++ b/docs/api.rst
@@ -0,0 +1,37 @@
+API Documentation
+*****************
+
+.. module:: jira
+
+.. contents:: Contents
+ :local:
+
+JIRA
+====
+
+.. autoclass:: JIRA
+
+Priority
+========
+
+.. autoclass:: Priority
+
+Comment
+=======
+
+.. autoclass:: Comment
+
+Worklog
+=======
+
+.. autoclass:: Worklog
+
+Watchers
+========
+
+.. autoclass:: Watchers
+
+JIRAError
+=========
+
+.. autoclass:: JIRAError
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..4a15bb2
--- /dev/null
+++ b/docs/conf.py
... 8697 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-jira.git
More information about the Python-modules-commits
mailing list