code: def get_file_list(self, prefix, filter=None):
      url = (
          f"https://api.github.com/repos/{self._repository}/"
          f"releases/tags/{self._tag}"
      )
      print("Fetching release from", url)
      request = urllib.request.Request(
          url,
          method="GET",
          headers={
              "Accept": "application/vnd.github+json",
          },
      )
      raw_response = urllib.request.urlopen(request).read().decode()
      response = json.loads(raw_response)
  
      files = []
      for asset in response["assets"]:
          if filter and not filter(asset["name"]):
              continue
          # Don't use the API URL since it has a fairly strict rate
          # limit unless logged in, and we have a lot of tiny
          # artifacts
          url = (
              f"https://github.com/{self._repository}/"
              f"releases/download/{self._tag}/{asset['name']}"
          )
          files.append((asset["name"], url))
      return files
  
imports: import argparse
  import concurrent.futures
  import functools
  import json
  import os
  import random
  import re
  import subprocess
  import time
  import urllib.request
label_desc: Use image node_id 2 for calling the GitHub obj's underlying member method code with example usage: obj.get_file_list(prefix, filter) and returns: files