Metadata-Version: 2.0
Name: yagocd
Version: 0.4.0
Summary: Yet another Python client for ThoughtWorks GOCD REST API.
Home-page: https://github.com/grundic/yagocd
Author: Grigory Chernyshev
Author-email: systray@yandex.ru
License: MIT
Keywords: yagocd
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: six
Requires-Dist: requests
Requires-Dist: easydict

|gocd_logo| Yet another GoCD python client
==========================================

    .. image:: https://travis-ci.org/grundic/yagocd.svg?branch=master
       :target: https://travis-ci.org/grundic/yagocd

    .. image:: https://coveralls.io/repos/github/grundic/yagocd/badge.svg?branch=master
       :target: https://coveralls.io/github/grundic/yagocd?branch=master

    .. image:: https://badge.fury.io/py/yagocd.svg
       :target: https://badge.fury.io/py/yagocd

    .. image:: https://readthedocs.org/projects/yagocd/badge/?version=latest
       :target: http://yagocd.readthedocs.io

Introduction
------------
This library is a high level python API wrapper upon ThoughtWorks GoCD REST API.
>From the official documentation:

    Go Continuous Delivery is continuous integration/deployment server,
    which helps you automate and streamline the build-test-release cycle for worry-free.

Using it, you can access to internals of the Pipelines, check their statuses, download Artifacts and more.
It is designed with maximum comfort and productivity from the user perspective, so it should be very easy
to use it in your own project.
More information is available at official `documentation <http://yagocd.readthedocs.io>`_

Installation
------------
.. code-block:: bash

    $ pip install yagocd

Quick example
-------------

.. code-block:: python

    from yagocd import Yagocd

    go = Yagocd(
        server='https://example.com',
        auth=('user', 'password'),
        options={
            'verify': False  # skip verification for SSL certificates.
        }
    )

    for pipeline in go.pipelines:
        for instance in pipeline:
            for stage in instance:
                for job in stage:
                    # print artifact urls for each job
                    for artifact in job.artifacts:
                        for file_obj in artifact.files():
                            print(file_obj.data.url)

                    # print property of each job
                    for key, value in job.properties.items():
                        print "{} => {}".format(key, value)

Different implementations of GoCD API
-------------------------------------
Here is list of similar projects, that implements GoCD API:

- `py-gocd [python] <https://github.com/gaqzi/py-gocd/>`_: A Python API for interacting with Go Continuous Delivery
- `gocdapi [python] <https://github.com/joaogbcravo/gocdapi>`_: A Python API for accessing resources and configuring Go (thoughtworks) continuous-delivery servers
- `gomatic [python] <https://github.com/SpringerSBM/gomatic>`_: A Python API for configuring GoCD
- `goapi [ruby] <https://github.com/ThoughtWorksStudios/goapi>`_: Go (http://www.go.cd) API ruby client
- `gocd-api [NodeJS] <https://github.com/birgitta410/gocd-api>`_: Access http://www.go.cd API via nodeJS
- `gocd-api [GoLang] <https://github.com/christer79/gocd-api>`_: An implementation of the gocd API

Licence
-------
`MIT <https://raw.githubusercontent.com/grundic/yagocd/master/LICENSE>`_

.. |gocd_logo| image:: https://raw.githubusercontent.com/grundic/yagocd/master/img/gocd_logo.png


.. :changelog:

Release History
---------------

0.4.0 (2016-10-01)
++++++++++++++++++

**Improvements**
- Added support for pipeline config API.
- Added support for version API.
- Added support for plugin info API.
- Added support for environments API.
- Added methods for getting different internal information (undocumented): `support` and `process_list`.
- Added magic methods for iterating and key based access for some classes.
- All classes and their methods are now decorated with `@since` decorator, which adds possibility to check
at run-time whether given functionality already supported in the GoCD server and let's dynamically select
correct headers.

** Testing **
- Now tests are executed for GoCD version, running in Docker container, which add possibility
to test for any available version of the server. Also cassettes are also saved individually for
each GoCD version.
- Added testing for PEP8 and other checks via `flake8`.

0.3.2 (2016-07-26)
++++++++++++++++++

**Improvements**
- Added support of `value_stream_map` functionality.

**Bugfixes**

- Fix return value of `Artifact.fetch` method from text to binary.


0.2.0 (2016-05-24)
++++++++++++++++++

**Improvements**
- Added support of getting server version through parsing `/about` page.
- Added `Confirm: true` header to some API calls.



