code: def iter_changes(self, issue, include_resolution_changes=True):
          
  
          is_resolved = False
  
          # Find the first status change, if any
          try:
              status_changes = list(filter(
                  lambda h: h.field == 'status',
                  itertools.chain.from_iterable([c.items for c in issue.changelog.histories])))
          except AttributeError:
              return
          last_status = status_changes[0].fromString if len(status_changes) > 0 else issue.fields.status.name
          last_resolution = None
  
          # Issue was created
          yield IssueSnapshot(
              change=None,
              key=issue.key,
              date=dateutil.parser.parse(issue.fields.created),
              status=last_status,
              resolution=None,
              is_resolved=is_resolved
          )
  
          for change in issue.changelog.histories:
              change_date = dateutil.parser.parse(change.created)
  
              resolutions = list(filter(lambda i: i.field == 'resolution', change.items))
              is_resolved = (resolutions[-1].to is not None) if len(resolutions) > 0 else is_resolved
  
              for item in change.items:
                  if item.field == 'status':
                      # Status was changed
                      last_status = item.toString
                      yield IssueSnapshot(
                          change=item.field,
                          key=issue.key,
                          date=change_date,
                          status=last_status,
                          resolution=last_resolution,
                          is_resolved=is_resolved
                      )
                  elif item.field == 'resolution':
                      last_resolution = item.toString
                      if include_resolution_changes:
                          yield IssueSnapshot(
                              change=item.field,
                              key=issue.key,
                              date=change_date,
                              status=last_status,
                              resolution=last_resolution,
                              is_resolved=is_resolved
                          )
docs: Yield an IssueSnapshot for each time the issue changed status or
          resolution