code: def get_identities(self, item):
          def add_sh_github_identity(user, user_field, rol):
              github_repo = None
              if GITHUB in item['origin']:
                  github_repo = item['origin'].replace(GITHUB, '')
                  github_repo = re.sub('.git$', '', github_repo)
              if not github_repo:
                  return
              user_data = item['data'][user_field]
              sh_identity = SortingHat.get_github_commit_username(self.sh_db, user, SH_GIT_COMMIT)
              if not sh_identity:
                  gh_username = self.get_github_login(user_data, rol, commit_hash, github_repo)
                  logger.debug("Adding new identity %s to SH %s: %s", gh_username, SH_GIT_COMMIT, user)
                  user = self.get_sh_identity(user_data)
                  user['username'] = gh_username
                  SortingHat.add_identity(self.sh_db, user, SH_GIT_COMMIT)
              else:
                  if user_data not in self.github_logins:
                      self.github_logins[user_data] = sh_identity['username']
                      logger.debug("GitHub-commit exists. username:%s user:%s",
                                   sh_identity['username'], user_data)
          commit_hash = item['data']['commit']
          if item['data']['Author']:
              m = self.AUTHOR_P2P_REGEX.match(item['data']["Author"])
              n = self.AUTHOR_P2P_NEW_REGEX.match(item['data']["Author"])
              if (m or n) and self.pair_programming:
                  authors = self.__get_authors(item['data']["Author"])
                  for author in authors:
                      user = self.get_sh_identity(author)
                      yield user
              else:
                  user = self.get_sh_identity(item['data']["Author"])
                  yield user
                  if self.github_token:
                      add_sh_github_identity(user, 'Author', 'author')
          if item['data']['Commit']:
              m = self.AUTHOR_P2P_REGEX.match(item['data']["Commit"])
              n = self.AUTHOR_P2P_NEW_REGEX.match(item['data']["Author"])
              if (m or n) and self.pair_programming:
                  committers = self.__get_authors(item['data']['Commit'])
                  for committer in committers:
                      user = self.get_sh_identity(committer)
                      yield user
              else:
                  user = self.get_sh_identity(item['data']['Commit'])
                  yield user
                  if self.github_token:
                      add_sh_github_identity(user, 'Commit', 'committer')
          if 'Signed-off-by' in item['data'] and self.pair_programming:
              signers = item['data']["Signed-off-by"]
              for signer in signers:
                  user = self.get_sh_identity(signer)
                  yield user