prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Attributes "maintain" and "triage" missing in class "Permissions"
  Current Github API returns a permission values for `admin`, `push`, `maintain`, `triage` and `pull` (see <https://docs.github.com/en/free-pro-team@latest/rest/reference/teams#check-team-permissions-for-a-repository>).
  PyGithub so far only supports  `admin`, `push` and `pull`.
  
  This is a feature request to add the two missing attributes to class `github.Permissions.Permissions`.
  https://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github/Permissions.py#L34
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `github/Permissions.py`
  Content:
  ```
  1 ############################ Copyrights and license ############################
  2 #                                                                              #
  3 # Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net>                 #
  4 # Copyright 2012 Zearin <zearin@gonk.net>                                      #
  5 # Copyright 2013 AKFish <akfish@gmail.com>                                     #
  6 # Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net>                 #
  7 # Copyright 2014 Vincent Jacques <vincent@vincent-jacques.net>                 #
  8 # Copyright 2016 Jannis Gebauer <ja.geb@me.com>                                #
  9 # Copyright 2016 Peter Buckley <dx-pbuckley@users.noreply.github.com>          #
  10 # Copyright 2018 Wan Liuyang <tsfdye@gmail.com>                                #
  11 # Copyright 2018 sfdye <tsfdye@gmail.com>                                      #
  12 #                                                                              #
  13 # This file is part of PyGithub.                                               #
  14 # http://pygithub.readthedocs.io/                                              #
  15 #                                                                              #
  16 # PyGithub is free software: you can redistribute it and/or modify it under    #
  17 # the terms of the GNU Lesser General Public License as published by the Free  #
  18 # Software Foundation, either version 3 of the License, or (at your option)    #
  19 # any later version.                                                           #
  20 #                                                                              #
  21 # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY  #
  22 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    #
  23 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #
  24 # details.                                                                     #
  25 #                                                                              #
  26 # You should have received a copy of the GNU Lesser General Public License     #
  27 # along with PyGithub. If not, see <http://www.gnu.org/licenses/>.             #
  28 #                                                                              #
  29 ################################################################################
  30 
  31 import github.GithubObject
  32 
  33 
  34 class Permissions(github.GithubObject.NonCompletableGithubObject):
  35     """
  36     This class represents Permissions
  37     """
  38 
  39     def __repr__(self):
  40         return self.get__repr__(
  41             {
  42                 "admin": self._admin.value,
  43                 "pull": self._pull.value,
  44                 "push": self._push.value,
  45             }
  46         )
  47 
  48     @property
  49     def admin(self):
  50         """
  51         :type: bool
  52         """
  53         return self._admin.value
  54 
  55     @property
  56     def pull(self):
  57         """
  58         :type: bool
  59         """
  60         return self._pull.value
  61 
  62     @property
  63     def push(self):
  64         """
  65         :type: bool
  66         """
  67         return self._push.value
  68 
  69     def _initAttributes(self):
  70         self._admin = github.GithubObject.NotSet
  71         self._pull = github.GithubObject.NotSet
  72         self._push = github.GithubObject.NotSet
  73 
  74     def _useAttributes(self, attributes):
  75         if "admin" in attributes:  # pragma no branch
  76             self._admin = self._makeBoolAttribute(attributes["admin"])
  77         if "pull" in attributes:  # pragma no branch
  78             self._pull = self._makeBoolAttribute(attributes["pull"])
  79         if "push" in attributes:  # pragma no branch
  80             self._push = self._makeBoolAttribute(attributes["push"])
  81
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/github/Permissions.py b/github/Permissions.py
  --- a/github/Permissions.py
  +++ b/github/Permissions.py
  @@ -40,8 +40,10 @@
           return self.get__repr__(
               {
                   "admin": self._admin.value,
  +                "maintain": self._maintain.value,
                   "pull": self._pull.value,
                   "push": self._push.value,
  +                "triage": self._triage.value,
               }
           )
   
  @@ -52,6 +54,13 @@
           """
           return self._admin.value
   
  +    @property
  +    def maintain(self):
  +        """
  +        :type: bool
  +        """
  +        return self._maintain.value
  +
       @property
       def pull(self):
           """
  @@ -66,15 +75,28 @@
           """
           return self._push.value
   
  +    @property
  +    def triage(self):
  +        """
  +        :type: bool
  +        """
  +        return self._triage.value
  +
       def _initAttributes(self):
           self._admin = github.GithubObject.NotSet
  +        self._maintain = github.GithubObject.NotSet
           self._pull = github.GithubObject.NotSet
           self._push = github.GithubObject.NotSet
  +        self._triage = github.GithubObject.NotSet
   
       def _useAttributes(self, attributes):
           if "admin" in attributes:  # pragma no branch
               self._admin = self._makeBoolAttribute(attributes["admin"])
  +        if "maintain" in attributes:  # pragma no branch
  +            self._maintain = self._makeBoolAttribute(attributes["maintain"])
           if "pull" in attributes:  # pragma no branch
               self._pull = self._makeBoolAttribute(attributes["pull"])
           if "push" in attributes:  # pragma no branch
               self._push = self._makeBoolAttribute(attributes["push"])
  +        if "triage" in attributes:  # pragma no branch
  +            self._triage = self._makeBoolAttribute(attributes["triage"])
  
verification_info: {"golden_diff": "diff --git a/github/Permissions.py b/github/Permissions.py\n--- a/github/Permissions.py\n+++ b/github/Permissions.py\n@@ -40,8 +40,10 @@\n         return self.get__repr__(\n             {\n                 \"admin\": self._admin.value,\n+                \"maintain\": self._maintain.value,\n                 \"pull\": self._pull.value,\n                 \"push\": self._push.value,\n+                \"triage\": self._triage.value,\n             }\n         )\n \n@@ -52,6 +54,13 @@\n         \"\"\"\n         return self._admin.value\n \n+    @property\n+    def maintain(self):\n+        \"\"\"\n+        :type: bool\n+        \"\"\"\n+        return self._maintain.value\n+\n     @property\n     def pull(self):\n         \"\"\"\n@@ -66,15 +75,28 @@\n         \"\"\"\n         return self._push.value\n \n+    @property\n+    def triage(self):\n+        \"\"\"\n+        :type: bool\n+        \"\"\"\n+        return self._triage.value\n+\n     def _initAttributes(self):\n         self._admin = github.GithubObject.NotSet\n+        self._maintain = github.GithubObject.NotSet\n         self._pull = github.GithubObject.NotSet\n         self._push = github.GithubObject.NotSet\n+        self._triage = github.GithubObject.NotSet\n \n     def _useAttributes(self, attributes):\n         if \"admin\" in attributes:  # pragma no branch\n             self._admin = self._makeBoolAttribute(attributes[\"admin\"])\n+        if \"maintain\" in attributes:  # pragma no branch\n+            self._maintain = self._makeBoolAttribute(attributes[\"maintain\"])\n         if \"pull\" in attributes:  # pragma no branch\n             self._pull = self._makeBoolAttribute(attributes[\"pull\"])\n         if \"push\" in attributes:  # pragma no branch\n             self._push = self._makeBoolAttribute(attributes[\"push\"])\n+        if \"triage\" in attributes:  # pragma no branch\n+            self._triage = self._makeBoolAttribute(attributes[\"triage\"])\n", "issue": "Attributes \"maintain\" and \"triage\" missing in class \"Permissions\"\nCurrent Github API returns a permission values for `admin`, `push`, `maintain`, `triage` and `pull` (see <https://docs.github.com/en/free-pro-team@latest/rest/reference/teams#check-team-permissions-for-a-repository>).\r\nPyGithub so far only supports  `admin`, `push` and `pull`.\r\n\r\nThis is a feature request to add the two missing attributes to class `github.Permissions.Permissions`.\r\nhttps://github.com/PyGithub/PyGithub/blob/34d097ce473601624722b90fc5d0396011dd3acb/github/Permissions.py#L34\r\n\n", "before_files": [{"content": "############################ Copyrights and license ############################\n#                                                                              #\n# Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net>                 #\n# Copyright 2012 Zearin <zearin@gonk.net>                                      #\n# Copyright 2013 AKFish <akfish@gmail.com>                                     #\n# Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net>                 #\n# Copyright 2014 Vincent Jacques <vincent@vincent-jacques.net>                 #\n# Copyright 2016 Jannis Gebauer <ja.geb@me.com>                                #\n# Copyright 2016 Peter Buckley <dx-pbuckley@users.noreply.github.com>          #\n# Copyright 2018 Wan Liuyang <tsfdye@gmail.com>                                #\n# Copyright 2018 sfdye <tsfdye@gmail.com>                                      #\n#                                                                              #\n# This file is part of PyGithub.                                               #\n# http://pygithub.readthedocs.io/                                              #\n#                                                                              #\n# PyGithub is free software: you can redistribute it and/or modify it under    #\n# the terms of the GNU Lesser General Public License as published by the Free  #\n# Software Foundation, either version 3 of the License, or (at your option)    #\n# any later version.                                                           #\n#                                                                              #\n# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY  #\n# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    #\n# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n# details.                                                                     #\n#                                                                              #\n# You should have received a copy of the GNU Lesser General Public License     #\n# along with PyGithub. If not, see <http://www.gnu.org/licenses/>.             #\n#                                                                              #\n################################################################################\n\nimport github.GithubObject\n\n\nclass Permissions(github.GithubObject.NonCompletableGithubObject):\n    \"\"\"\n    This class represents Permissions\n    \"\"\"\n\n    def __repr__(self):\n        return self.get__repr__(\n            {\n                \"admin\": self._admin.value,\n                \"pull\": self._pull.value,\n                \"push\": self._push.value,\n            }\n        )\n\n    @property\n    def admin(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._admin.value\n\n    @property\n    def pull(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._pull.value\n\n    @property\n    def push(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._push.value\n\n    def _initAttributes(self):\n        self._admin = github.GithubObject.NotSet\n        self._pull = github.GithubObject.NotSet\n        self._push = github.GithubObject.NotSet\n\n    def _useAttributes(self, attributes):\n        if \"admin\" in attributes:  # pragma no branch\n            self._admin = self._makeBoolAttribute(attributes[\"admin\"])\n        if \"pull\" in attributes:  # pragma no branch\n            self._pull = self._makeBoolAttribute(attributes[\"pull\"])\n        if \"push\" in attributes:  # pragma no branch\n            self._push = self._makeBoolAttribute(attributes[\"push\"])\n", "path": "github/Permissions.py"}], "after_files": [{"content": "############################ Copyrights and license ############################\n#                                                                              #\n# Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net>                 #\n# Copyright 2012 Zearin <zearin@gonk.net>                                      #\n# Copyright 2013 AKFish <akfish@gmail.com>                                     #\n# Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net>                 #\n# Copyright 2014 Vincent Jacques <vincent@vincent-jacques.net>                 #\n# Copyright 2016 Jannis Gebauer <ja.geb@me.com>                                #\n# Copyright 2016 Peter Buckley <dx-pbuckley@users.noreply.github.com>          #\n# Copyright 2018 Wan Liuyang <tsfdye@gmail.com>                                #\n# Copyright 2018 sfdye <tsfdye@gmail.com>                                      #\n#                                                                              #\n# This file is part of PyGithub.                                               #\n# http://pygithub.readthedocs.io/                                              #\n#                                                                              #\n# PyGithub is free software: you can redistribute it and/or modify it under    #\n# the terms of the GNU Lesser General Public License as published by the Free  #\n# Software Foundation, either version 3 of the License, or (at your option)    #\n# any later version.                                                           #\n#                                                                              #\n# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY  #\n# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    #\n# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n# details.                                                                     #\n#                                                                              #\n# You should have received a copy of the GNU Lesser General Public License     #\n# along with PyGithub. If not, see <http://www.gnu.org/licenses/>.             #\n#                                                                              #\n################################################################################\n\nimport github.GithubObject\n\n\nclass Permissions(github.GithubObject.NonCompletableGithubObject):\n    \"\"\"\n    This class represents Permissions\n    \"\"\"\n\n    def __repr__(self):\n        return self.get__repr__(\n            {\n                \"admin\": self._admin.value,\n                \"maintain\": self._maintain.value,\n                \"pull\": self._pull.value,\n                \"push\": self._push.value,\n                \"triage\": self._triage.value,\n            }\n        )\n\n    @property\n    def admin(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._admin.value\n\n    @property\n    def maintain(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._maintain.value\n\n    @property\n    def pull(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._pull.value\n\n    @property\n    def push(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._push.value\n\n    @property\n    def triage(self):\n        \"\"\"\n        :type: bool\n        \"\"\"\n        return self._triage.value\n\n    def _initAttributes(self):\n        self._admin = github.GithubObject.NotSet\n        self._maintain = github.GithubObject.NotSet\n        self._pull = github.GithubObject.NotSet\n        self._push = github.GithubObject.NotSet\n        self._triage = github.GithubObject.NotSet\n\n    def _useAttributes(self, attributes):\n        if \"admin\" in attributes:  # pragma no branch\n            self._admin = self._makeBoolAttribute(attributes[\"admin\"])\n        if \"maintain\" in attributes:  # pragma no branch\n            self._maintain = self._makeBoolAttribute(attributes[\"maintain\"])\n        if \"pull\" in attributes:  # pragma no branch\n            self._pull = self._makeBoolAttribute(attributes[\"pull\"])\n        if \"push\" in attributes:  # pragma no branch\n            self._push = self._makeBoolAttribute(attributes[\"push\"])\n        if \"triage\" in attributes:  # pragma no branch\n            self._triage = self._makeBoolAttribute(attributes[\"triage\"])\n", "path": "github/Permissions.py"}]}