code: def post_log_artifacts(job_log):
      
      logger.debug("Downloading/parsing log for log %s", job_log.id)
  
      try:
          artifact_list = extract_text_log_artifacts(job_log)
      except LogSizeException as e:
          job_log.update_status(JobLog.SKIPPED_SIZE)
          logger.warning('Skipping parsing log for %s: %s', job_log.id, e)
          return
      except Exception as e:
          job_log.update_status(JobLog.FAILED)
  
          # Unrecoverable http error (doesn't exist or permission denied).
          # Apparently this can happen somewhat often with taskcluster if
          # the job fails (bug 1154248), so just warn rather than raising,
          # to prevent the noise/load from retrying.
          if isinstance(e, HTTPError) and e.response.status_code in (403, 404):
              logger.warning("Unable to retrieve log for %s: %s", job_log.id, e)
              return
  
          logger.error("Failed to download/parse log for %s: %s", job_log.id, e)
          raise
  
      try:
          serialized_artifacts = serialize_artifact_json_blobs(artifact_list)
          store_job_artifacts(serialized_artifacts)
          job_log.update_status(JobLog.PARSED)
          logger.debug("Stored artifact for %s %s", job_log.job.repository.name,
                       job_log.job.id)
      except Exception as e:
          logger.error("Failed to store parsed artifact for %s: %s", job_log.id, e)
          raise
docs: Post a list of artifacts to a job.