docs: def run_process(self, process):
          """Runs a single action."""
          message = u'#{bright}'
          message += u'{} '.format(str(process)[:68]).ljust(69, '.')
  
          stashed = False
          if self.unstaged_changes and not self.include_unstaged_changes:
              out, err, code = self.git.stash(keep_index=True, quiet=True)
              stashed = code == 0
  
          try:
              result = process(files=self.files, cwd=self.cwd, fix=self.fix)
  
              # Check for modified files
              out, err, code = self.git.status(porcelain=True, untracked_files='no')
              for line in out.splitlines():
                  file_status = Status(line)
  
                  # Make sure the file is one of the files that was processed
                  if file_status.path in self.files and file_status.is_modified:
                      mtime = os.path.getmtime(file_status.path) if os.path.exists(file_status.path) else 0
                      if mtime > self.file_mtimes.get(file_status.path, 0):
                          self.file_mtimes[file_status.path] = mtime
                          result.add_modified_file(file_status.path)
                          if self.stage_modified_files:
                              self.git.add(file_status.path)
  
          except:  # noqa: E722
              raise
          finally:
              if stashed:
                  self.git.reset(hard=True, quiet=True)
                  self.git.stash.pop(index=True, quiet=True)
  
          if result.is_success:
              message += u' #{green}[SUCCESS]'
          elif result.is_failure:
              message += u' #{red}[FAILURE]'
          elif result.is_skip:
              message += u' #{cyan}[SKIPPED]'
          elif result.is_error:
              message += u' #{red}[ERROR!!]'
  
          return result, message