From f9a882fcae5e07be8167de95acef6c50eb7edb25 Mon Sep 17 00:00:00 2001 From: Vincent Jacques Date: Fri, 24 Feb 2012 12:04:09 +0000 Subject: [PATCH] Milestone.get_labels --- IntegrationTest.py | 2 +- ReferenceOfApis.md | 2 +- ReferenceOfClasses.md | 1 + github/GithubObjects.py | 5 +++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/IntegrationTest.py b/IntegrationTest.py index 5e145a1a..9c4533b8 100644 --- a/IntegrationTest.py +++ b/IntegrationTest.py @@ -215,7 +215,7 @@ class IntegrationTest: print base64.b64decode( blob.content ), print print " Labels:", ", ".join( l.name + " (" + l.color + ")" for l in r.get_labels() ) - print " Milestones:", ", ".join( m.title + " (created by " + m.creator.login + ")" for m in r.get_milestones() ) + print " Milestones:", ", ".join( m.title + " (created by " + m.creator.login + ", " + ", ".join( l.name for l in m.get_labels() ) + ")" for m in r.get_milestones() ) print " Closed milestones:", ", ".join( m.title for m in r.get_milestones( state = "closed" ) ) print sys.stdout.flush() diff --git a/ReferenceOfApis.md b/ReferenceOfApis.md index 8ca9fba9..6a0938b2 100644 --- a/ReferenceOfApis.md +++ b/ReferenceOfApis.md @@ -316,7 +316,7 @@ API `/repos/:user/:repo/milestones/:number` API `/repos/:user/:repo/milestones/:number/labels` ============================================== -* GET: (TODO SOON) +* GET: `Milestone.get_labels()`: list of `Label` API `/repos/:user/:repo/pulls` ============================== diff --git a/ReferenceOfClasses.md b/ReferenceOfClasses.md index b40bda2f..40718b69 100644 --- a/ReferenceOfClasses.md +++ b/ReferenceOfClasses.md @@ -157,6 +157,7 @@ Class `Milestone` * Attributes: see [API](http://developer.github.com/v3/issues/milestones/#get-a-single-milestone) * `edit( ... )`: see [API](http://developer.github.com/v3/issues/milestones/#update-a-milestone) for parameters * `delete()` +* `get_labels()`: list of `Label` Class `Team` ============ diff --git a/github/GithubObjects.py b/github/GithubObjects.py index f01897aa..9de6fc0e 100644 --- a/github/GithubObjects.py +++ b/github/GithubObjects.py @@ -138,6 +138,7 @@ Milestone = GithubObject( ComplexAttribute( "creator", NamedUser ), Editable( [ "title" ], [ "state", "description", "due_on" ] ), Deletable(), + ListAttribute( "labels", Label, ListGetable( [], [], lambda obj, attributes: dict( itertools.chain( attributes.iteritems(), { "_repo": obj._repo }.iteritems() ) ) ) ), ) __modifyAttributesForObjectsReferingRepo = lambda obj, attributes: dict( itertools.chain( attributes.iteritems(), { "_repo": obj }.iteritems() ) ) @@ -181,12 +182,12 @@ Repository = GithubObject( ElementCreatable( "git_tag", [ "tag", "message", "object", "type" ], [ "tagger" ], __modifyAttributesForObjectsReferingRepo ) ), ListAttribute( "labels", Label, - ListGetable( [], [] ), + ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ), ElementGetable( "label", lambda repo, name: { "_repo": repo, "name": name } ), ElementCreatable( "label", [ "name", "color" ], [], __modifyAttributesForObjectsReferingRepo ), ), ListAttribute( "milestones", Milestone, - ListGetable( [], [ "state", "sort", "direction" ] ), + ListGetable( [], [ "state", "sort", "direction" ], __modifyAttributesForObjectsReferingRepo ), ElementGetable( "milestone", lambda repo, number: { "_repo": repo, "number": number } ), ElementCreatable( "milestone", [ "title" ], [ "state", "description", "due_on" ], __modifyAttributesForObjectsReferingRepo ) )