docs: def add_worklog(self,
                      issue,
                      timeSpent=None,
                      timeSpentSeconds=None,
                      adjustEstimate=None,
                      newEstimate=None,
                      reduceBy=None,
                      comment=None,
                      started=None,
                      user=None,
                      ):
          """Add a new worklog entry on an issue and return a Resource for it.
  
          :param issue: the issue to add the worklog to
          :param timeSpent: a worklog entry with this amount of time spent, e.g. "2d"
          :param adjustEstimate: (optional) allows the user to provide specific instructions to update the remaining
              time estimate of the issue. The value can either be ``new``, ``leave``, ``manual`` or ``auto`` (default).
          :param newEstimate: the new value for the remaining estimate field. e.g. "2d"
          :param reduceBy: the amount to reduce the remaining estimate by e.g. "2d"
          :param started: Moment when the work is logged, if not specified will default to now
          :param comment: optional worklog comment
          :rtype: Worklog
          """
          params = {}
          if adjustEstimate is not None:
              params['adjustEstimate'] = adjustEstimate
          if newEstimate is not None:
              params['newEstimate'] = newEstimate
          if reduceBy is not None:
              params['reduceBy'] = reduceBy
  
          data = {}
          if timeSpent is not None:
              data['timeSpent'] = timeSpent
          if timeSpentSeconds is not None:
              data['timeSpentSeconds'] = timeSpentSeconds
          if comment is not None:
              data['comment'] = comment
          elif user:
              # we log user inside comment as it doesn't always work
              data['comment'] = user
  
          if started is not None:
              # based on REST Browser it needs: "2014-06-03T08:21:01.273+0000"
              if started.tzinfo is None:
                  data['started'] = started.strftime("%Y-%m-%dT%H:%M:%S.000+0000")
              else:
                  data['started'] = started.strftime("%Y-%m-%dT%H:%M:%S.000%z")
          if user is not None:
              data['author'] = {"name": user,
                                'self': self.JIRA_BASE_URL + '/rest/api/latest/user?username=' + user,
                                'displayName': user,
                                'active': False
                                }
              data['updateAuthor'] = data['author']
          # report bug to Atlassian: author and updateAuthor parameters are
          # ignored.
          url = self._get_url('issue/{0}/worklog'.format(issue))
          r = self._session.post(url, params=params, data=json.dumps(data))
  
          return Worklog(self._options, self._session, json_loads(r))