code: def add_project(self, task, params={}, **options): 
          
          path = "/tasks/%s/addProject" % (task)
          return self.client.post(path, params, **options)
docs: Adds the task to the specified project, in the optional location
          specified. If no location arguments are given, the task will be added to
          the end of the project.
          
          `addProject` can also be used to reorder a task within a project or section that
          already contains it.
          
          At most one of `insert_before`, `insert_after`, or `section` should be
          specified. Inserting into a section in an non-order-dependent way can be
          done by specifying `section`, otherwise, to insert within a section in a
          particular place, specify `insert_before` or `insert_after` and a task
          within the section to anchor the position of this task.
          
          Returns an empty data block.
  
          Parameters
          ----------
          task : {Id} The task to add to a project.
          [data] : {Object} Data for the request
            - project : {Id} The project to add the task to.
            - [insert_after] : {Id} A task in the project to insert the task after, or `null` to
            insert at the beginning of the list.
            - [insert_before] : {Id} A task in the project to insert the task before, or `null` to
            insert at the end of the list.
            - [section] : {Id} A section in the project to insert the task into. The task will be
            inserted at the bottom of the section.