1- pyral - A Python toolkit for the Rally REST API
2- ===============================================
1+ pyral - A Python toolkit for the Agile Central ( Rally) REST API
2+ ===============================================================
33
44
55The `pyral <http://github.com/RallyTools/RallyRestToolkitForPython >`_ package enables you to push, pull
6- and otherwise wrangle the data in your Rally subscription using the popular
6+ and otherwise wrangle the data in your Agile Central (formerly named Rally) subscription using the popular
77and productive Python language.
88The ``pyral `` package provides a smooth and easy to use veneer on top
9- of the Rally REST Web Services API using JSON.
9+ of the Agile Central ( Rally) REST Web Services API using JSON.
1010
1111As of July 2015, the Rally Software Development company was acquired by CA Technologies.
1212The Rally product itself has been rebranded as 'Agile Central'. Over time, the documentation
@@ -18,9 +18,9 @@ will transition from using the term 'Rally' to using 'Agile Central'.
1818Getting started
1919---------------
2020
21- Rally has created a Python package that you can quickly leverage to interact with the data in your
21+ Agile Central ( Rally) has created a Python package that you can quickly leverage to interact with the data in your
2222subscription via the REST web services API. You can create, read, update, and delete the common
23- artifacts and other entities via the Python toolkit for Rally.
23+ artifacts and other entities via the Python toolkit for Agile Central ( Rally) .
2424
2525Download
2626````````
@@ -39,7 +39,7 @@ Obtain the requests_ package and install it according to that package's directio
3939As of requests-2.0.0, there is support for HTTPS over HTTP proxy via the CONNECT request.
4040Use of requests-2.x or better is recommended for use with pyral.
4141The requests _ package can be found via the Python Package Index site (http://pypi/python.org/index).
42- The most recent release of pyral (1.2.3 ) has been tested using requests 2.8.1.
42+ The most recent release of pyral (1.2.4 ) has been tested using requests 2.8.1.
4343
4444Obtain and install the six _ module (available from PyPI at https://pypi.python.org/pypi/six)
4545
@@ -63,11 +63,11 @@ relevant packages.
6363::
6464
6565 $ python
66- Python 3.5.1 [other Python interpreter info elided ...]
66+ Python 3.5.2 [other Python interpreter info elided ...]
6767 >> import requests
6868 >> import pyral
6969 >> pyral.__version__
70- (1, 2, 3 )
70+ (1, 2, 4 )
7171
7272
7373
@@ -85,13 +85,13 @@ assigned to the name **story**, the following code iterates over the tasks.
8585
8686There is no need to make a separate call to fetch all the tasks for the story.
8787When you follow domain model attributes in the Python code, the Python toolkit for
88- Rally REST API machinery automatically loads in the necessary objects for you.
88+ Agile Central ( Rally) REST API machinery automatically loads in the necessary objects for you.
8989
9090
9191Full Documentation
9292``````````````````
9393
94- The complete documentation for the Python toolkit for Rally REST API
94+ The complete documentation for the Python toolkit for Agile Central ( Rally) REST API
9595is in the doc/build/html subdirectory in the repository.
9696The rendered version of this is also available at
9797http://pyral.readthedocs.io/en/latest/
@@ -102,13 +102,13 @@ Sample code
102102
103103Common setup code ::
104104
105- import sys
106- from pyral import Rally, rallyWorkset
107- options = [arg for arg in sys.argv[1:] if arg.startswith('--')]
108- args = [arg for arg in sys.argv[1:] if arg not in options]
109- server, user, password, apikey, workspace, project = rallyWorkset(options)
110- rally = Rally(server, user, password, apikey=apikey, workspace=workspace, project=project)
111- rally.enableLogging('mypyral.log')
105+ import sys
106+ from pyral import Rally, rallyWorkset
107+ options = [arg for arg in sys.argv[1:] if arg.startswith('--')]
108+ args = [arg for arg in sys.argv[1:] if arg not in options]
109+ server, user, password, apikey, workspace, project = rallyWorkset(options)
110+ rally = Rally(server, user, password, apikey=apikey, workspace=workspace, project=project)
111+ rally.enableLogging('mypyral.log')
112112
113113Show a TestCase identified by the **FormattedID ** value.
114114 Copy the above boilerplate and the following code fragment and save it in a file named gettc.py
@@ -133,12 +133,12 @@ Get a list of workspaces and projects for your subscription
133133
134134::
135135
136- workspaces = rally.getWorkspaces()
137- for wksp in workspaces:
138- print "%s %s" % (wksp.oid, wksp.Name)
139- projects = rally.getProjects(workspace=wksp.Name)
140- for proj in projects:
141- print " %12.12s %s" % (proj.oid, proj.Name)
136+ workspaces = rally.getWorkspaces()
137+ for wksp in workspaces:
138+ print "%s %s" % (wksp.oid, wksp.Name)
139+ projects = rally.getProjects(workspace=wksp.Name)
140+ for proj in projects:
141+ print " %12.12s %s" % (proj.oid, proj.Name)
142142
143143- Run the script
144144
@@ -149,12 +149,12 @@ Get a list of all users in a specific workspace
149149
150150::
151151
152- all_users = rally.getAllUsers()
153- for user in all_users:
154- tz = user.UserProfile.TimeZone or 'default'
155- role = user.Role or '-No Role-'
156- values = (int(user.oid), user.Name, user.UserName, role, tz)
157- print("%12.12d %-24.24s %-30.30s %-12.12s" % values)
152+ all_users = rally.getAllUsers()
153+ for user in all_users:
154+ tz = user.UserProfile.TimeZone or 'default'
155+ role = user.Role or '-No Role-'
156+ values = (int(user.oid), user.Name, user.UserName, role, tz)
157+ print("%12.12d %-24.24s %-30.30s %-12.12s" % values)
158158
159159- Run the script
160160
@@ -201,11 +201,11 @@ Update an existing Defect
201201 "TargetDate" : target_date,
202202 "Notes" : notes
203203 }
204- try:
205- defect = rally.update('Defect', defect_data)
206- except Exception, details:
207- sys.stderr.write('ERROR: %s \n' % details)
208- sys.exit(1)
204+ try:
205+ defect = rally.update('Defect', defect_data)
206+ except Exception, details:
207+ sys.stderr.write('ERROR: %s \n' % details)
208+ sys.exit(1)
209209
210210 print "Defect %s updated" % defect.FormattedID
211211
@@ -262,18 +262,26 @@ The item names in config files **are** case sensitive.
262262Prerequisites
263263-------------
264264
265- * Python 2.6 or 2.7 (2.7 is preferred ) OR
266- * Python 3.5 (this package not tested with earlier versions of Python 3.x )
265+ * Python 3.5 (this package not tested with earlier versions of Python 3.x ) OR
266+ * Python 2.6 or 2.7 (2.7 is preferred )
267267 * The requests _ package, 2.0.0 or better (2.0.0 finally includes support for https proxy),
268268 requests 2.8.1 is recommended.
269269 * The six _ package.
270270
271271.. _requests : http://github.com/kennethreitz/requests
272- .. _six : https://bitbucket/gutworth/six
272+ .. _six : https://bitbucket.org /gutworth/six
273273
274274Versions
275275--------
276276
277+ **1.2.4 **
278+ Fixed handling of projectScopeUp and projectScopeDown keyword arguments for get operation.
279+ Fixed Peristable's __getattr__ method to more properly handle getting the salient item
280+ out of a response to a getResourceByOID request when the item retrieved is a PortfolioItem sub-type.
281+ Fixed defect in SchemaItemAttribute where self._allowed_values_resolved was not always set.
282+ Fixed defect in RallyRestResponse in __repr__ method where on a response that has no qualifying items
283+ an attempt is made to get the Results out of the returned response without going through the QueryResult key.
284+
277285 **1.2.3 **
278286 Fixed restapi.py Rally.getAllowedValues method to accommodate custom fields
279287 Allow attribute payload for put and post to have a list of pyral.Entity instances
@@ -310,22 +318,39 @@ Versions
310318
311319TODO
312320----
313- * Investigate permanent location for web-access to rendered documentation
314- * Dynamically construct the Rally schema hierarchy economically.
321+ * Dynamically construct the Agile Central (Rally) schema class hierarchy economically.
315322
316323
317324License
318325-------
319326
320- BSD3-style license. Copyright (c) 2015-2016 CA Technologies, 2010-2015 Rally Software Development.
327+ BSD3-style license. Copyright (c) 2015-2017 CA Technologies, 2010-2015 Rally Software Development.
321328
322329See the LICENSE file provided with the source distribution for full details.
323330
331+
332+ Warranty
333+ --------
334+ None. See the LICENSE file for full text regarding this issue.
335+
336+
337+ Support
338+ -------
339+
340+ The use of this package is on an *as-is * basis and there is no official support offered by CA Technologies.
341+ The author of this module periodically checks the GitHub repository issues for this package in the
342+ interests of providing defect fixes and small feature enhancements as time permits, but is not obligated to
343+ respond or take action.
344+ Posts to Stack Overflow (http://stackoverflow.com/questions/ask?tags=rally) are another avenue to engage
345+ others who have some exposure to ``pyral `` and might be able to offer useful information.
346+
347+
324348Author
325349------
326350
327351328352
353+
329354Additional Credits
330355------------------
331356
0 commit comments