Repository: sigmavirus24/github3.py

Issue:
Milestone objects don't have id attributes
```py
>>> r = g.repository('rcbops', 'rpc-openstack')
>>> milestones = list(r.milestones())
>>> milestones
[<Milestone [kilo 11.0.0]>, <Milestone [next]>, <Milestone [icehouse 9.0.10]>, <Milestone [juno 10.1.10]>, <Milestone [Kilo 11.1.0]>, <Milestone [Kilo 11.2.0]>]
>>> milestones[0].id
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Milestone' object has no attribute 'id'
```

Discussion:

Patch:
diff --git a/AUTHORS.rst b/AUTHORS.rst
index 49e1c5b7..117a8194 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -94,3 +94,5 @@ Contributors
 - Antoine Giraudmaillet (@antoine-g)
 
 - Paulus Schoutsen (@balloob)
+
+- Nolan Bruabker (@nrb)
diff --git a/github3/issues/milestone.py b/github3/issues/milestone.py
index 9c2726e6..96114ddb 100644
--- a/github3/issues/milestone.py
+++ b/github3/issues/milestone.py
@@ -38,6 +38,8 @@ class Milestone(GitHubCore):
         self.due_on = self._strptime(mile.get('due_on'))
         #: datetime object representing when the milestone was updated.
         self.updated_at = self._strptime(mile.get('updated_at'))
+        #: string representing the milestone's ID.
+        self.id = str(mile.get('id'))
 
     def _repr(self):
         return '<Milestone [{0}]>'.format(self)


Test patch:
diff --git a/tests/test_issues.py b/tests/test_issues.py
index e85aa48c..c58275c4 100644
--- a/tests/test_issues.py
+++ b/tests/test_issues.py
@@ -77,6 +77,9 @@ class TestMilestone(BaseCase):
     def test_str(self):
         assert str(self.m) == 'v1.0.0'
 
+    def test_id(self):
+        assert self.m.id== '219754'
+
     def test_delete(self):
         self.response('', 204)
         self.delete(self.api)