We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Game Creator RC initialised with wrong game API URL
The `REPLACE_ME` change in one of the latest PR's has broken the game on minikube level in `minikube.py`.  The URL is incorrect so minikube does not work and prohibits testing. 



--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 from setuptools import find_packages, setup
3 
4 import versioneer
5 
6 setup(
7     name='aimmo',
8     cmdclass=versioneer.get_cmdclass(),
9     packages=find_packages(),
10     include_package_data=True,
11     install_requires=[
12         'django >= 1.8.3, < 1.9.0',
13         'django-autoconfig >= 0.3.6, < 1.0.0',
14         'django-forms-bootstrap',
15         'django-js-reverse',
16         'eventlet',
17         'flask',
18         'flask-socketio',
19         'requests',
20         'six',
21         'pykube',
22         'hypothesis',
23         'flask-cors >= 3.0, < 3.1',
24         'psutil >= 5.4, < 5.5',
25     ],
26     tests_require=[
27         'django-setuptest',
28         'httmock',
29     ],
30     test_suite='setuptest.setuptest.SetupTestSuite',
31     version=versioneer.get_version(),
32     zip_safe=False,
33 )
34
```

Path: `aimmo_runner/shell_api.py`
Content:
```
1 import subprocess
2 import sys
3 import os
4 import stat
5 import errno
6 import platform
7 from subprocess import CalledProcessError
8 from urllib import urlretrieve, urlopen
9 
10 BASE_DIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
11 TEST_BIN = os.path.join(BASE_DIR, 'test-bin')
12 OS = platform.system().lower()
13 FILE_SUFFIX = '.exe' if OS == 'windows' else ''
14 KUBECTL = os.path.join(TEST_BIN, 'kubectl%s' % FILE_SUFFIX)
15 MINIKUBE = os.path.join(TEST_BIN, 'minikube%s' % FILE_SUFFIX)
16 FNULL = open(os.devnull, 'w')
17 
18 def log(message):
19     sys.stderr.write(message + "\n")
20 
21 
22 def run_command(args, capture_output=False):
23     try:
24         if capture_output:
25             return subprocess.check_output(args)
26         else:
27             subprocess.check_call(args)
28     except CalledProcessError as e:
29         log('Command failed with exit status %d: %s' % (e.returncode, ' '.join(args)))
30         raise
31 
32 
33 def run_command_async(args, capture_output=False):
34     if capture_output is True:
35         p = subprocess.Popen(args, stdout=FNULL, stderr=subprocess.STDOUT)
36     else:
37         p = subprocess.Popen(args)
38     return p
39 
40 
41 def create_test_bin():
42     try:
43         os.makedirs(TEST_BIN)
44     except OSError as err:
45         if err.errno != errno.EEXIST:
46             raise
47 
48 
49 def binary_exists(filename):
50     # Check if binary is callable on our path
51     try:
52         run_command([filename], True)
53         return True
54     except OSError:
55         return False
56 
57 
58 def download_exec(url, dest):
59     dest = urlretrieve(url, dest)[0]
60     make_exec(dest)
61 
62 
63 def make_exec(file):
64     current_stat = os.stat(file)
65     os.chmod(file, current_stat.st_mode | stat.S_IEXEC)
66 
67 
68 def get_latest_github_version(repo):
69     result = urlopen('https://github.com/%s/releases/latest' % repo)
70     return result.geturl().split('/')[-1]
71 
72
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/aimmo_runner/shell_api.py b/aimmo_runner/shell_api.py
--- a/aimmo_runner/shell_api.py
+++ b/aimmo_runner/shell_api.py
@@ -15,6 +15,7 @@
 MINIKUBE = os.path.join(TEST_BIN, 'minikube%s' % FILE_SUFFIX)
 FNULL = open(os.devnull, 'w')
 
+
 def log(message):
     sys.stderr.write(message + "\n")
 
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -26,6 +26,10 @@
     tests_require=[
         'django-setuptest',
         'httmock',
+        'mock == 2.0.0',
+        'docker == 2.7.0',
+        'kubernetes == 4.0.0',
+        'PyYAML == 3.12',
     ],
     test_suite='setuptest.setuptest.SetupTestSuite',
     version=versioneer.get_version(),

{"golden_diff": "diff --git a/aimmo_runner/shell_api.py b/aimmo_runner/shell_api.py\n--- a/aimmo_runner/shell_api.py\n+++ b/aimmo_runner/shell_api.py\n@@ -15,6 +15,7 @@\n MINIKUBE = os.path.join(TEST_BIN, 'minikube%s' % FILE_SUFFIX)\n FNULL = open(os.devnull, 'w')\n \n+\n def log(message):\n     sys.stderr.write(message + \"\\n\")\n \ndiff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -26,6 +26,10 @@\n     tests_require=[\n         'django-setuptest',\n         'httmock',\n+        'mock == 2.0.0',\n+        'docker == 2.7.0',\n+        'kubernetes == 4.0.0',\n+        'PyYAML == 3.12',\n     ],\n     test_suite='setuptest.setuptest.SetupTestSuite',\n     version=versioneer.get_version(),\n", "issue": "Game Creator RC initialised with wrong game API URL\nThe `REPLACE_ME` change in one of the latest PR's has broken the game on minikube level in `minikube.py`.  The URL is incorrect so minikube does not work and prohibits testing. \r\n\r\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\nfrom setuptools import find_packages, setup\n\nimport versioneer\n\nsetup(\n    name='aimmo',\n    cmdclass=versioneer.get_cmdclass(),\n    packages=find_packages(),\n    include_package_data=True,\n    install_requires=[\n        'django >= 1.8.3, < 1.9.0',\n        'django-autoconfig >= 0.3.6, < 1.0.0',\n        'django-forms-bootstrap',\n        'django-js-reverse',\n        'eventlet',\n        'flask',\n        'flask-socketio',\n        'requests',\n        'six',\n        'pykube',\n        'hypothesis',\n        'flask-cors >= 3.0, < 3.1',\n        'psutil >= 5.4, < 5.5',\n    ],\n    tests_require=[\n        'django-setuptest',\n        'httmock',\n    ],\n    test_suite='setuptest.setuptest.SetupTestSuite',\n    version=versioneer.get_version(),\n    zip_safe=False,\n)\n", "path": "setup.py"}, {"content": "import subprocess\nimport sys\nimport os\nimport stat\nimport errno\nimport platform\nfrom subprocess import CalledProcessError\nfrom urllib import urlretrieve, urlopen\n\nBASE_DIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))\nTEST_BIN = os.path.join(BASE_DIR, 'test-bin')\nOS = platform.system().lower()\nFILE_SUFFIX = '.exe' if OS == 'windows' else ''\nKUBECTL = os.path.join(TEST_BIN, 'kubectl%s' % FILE_SUFFIX)\nMINIKUBE = os.path.join(TEST_BIN, 'minikube%s' % FILE_SUFFIX)\nFNULL = open(os.devnull, 'w')\n\ndef log(message):\n    sys.stderr.write(message + \"\\n\")\n\n\ndef run_command(args, capture_output=False):\n    try:\n        if capture_output:\n            return subprocess.check_output(args)\n        else:\n            subprocess.check_call(args)\n    except CalledProcessError as e:\n        log('Command failed with exit status %d: %s' % (e.returncode, ' '.join(args)))\n        raise\n\n\ndef run_command_async(args, capture_output=False):\n    if capture_output is True:\n        p = subprocess.Popen(args, stdout=FNULL, stderr=subprocess.STDOUT)\n    else:\n        p = subprocess.Popen(args)\n    return p\n\n\ndef create_test_bin():\n    try:\n        os.makedirs(TEST_BIN)\n    except OSError as err:\n        if err.errno != errno.EEXIST:\n            raise\n\n\ndef binary_exists(filename):\n    # Check if binary is callable on our path\n    try:\n        run_command([filename], True)\n        return True\n    except OSError:\n        return False\n\n\ndef download_exec(url, dest):\n    dest = urlretrieve(url, dest)[0]\n    make_exec(dest)\n\n\ndef make_exec(file):\n    current_stat = os.stat(file)\n    os.chmod(file, current_stat.st_mode | stat.S_IEXEC)\n\n\ndef get_latest_github_version(repo):\n    result = urlopen('https://github.com/%s/releases/latest' % repo)\n    return result.geturl().split('/')[-1]\n\n", "path": "aimmo_runner/shell_api.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\nfrom setuptools import find_packages, setup\n\nimport versioneer\n\nsetup(\n    name='aimmo',\n    cmdclass=versioneer.get_cmdclass(),\n    packages=find_packages(),\n    include_package_data=True,\n    install_requires=[\n        'django >= 1.8.3, < 1.9.0',\n        'django-autoconfig >= 0.3.6, < 1.0.0',\n        'django-forms-bootstrap',\n        'django-js-reverse',\n        'eventlet',\n        'flask',\n        'flask-socketio',\n        'requests',\n        'six',\n        'pykube',\n        'hypothesis',\n        'flask-cors >= 3.0, < 3.1',\n        'psutil >= 5.4, < 5.5',\n    ],\n    tests_require=[\n        'django-setuptest',\n        'httmock',\n        'mock == 2.0.0',\n        'docker == 2.7.0',\n        'kubernetes == 4.0.0',\n        'PyYAML == 3.12',\n    ],\n    test_suite='setuptest.setuptest.SetupTestSuite',\n    version=versioneer.get_version(),\n    zip_safe=False,\n)\n", "path": "setup.py"}, {"content": "import subprocess\nimport sys\nimport os\nimport stat\nimport errno\nimport platform\nfrom subprocess import CalledProcessError\nfrom urllib import urlretrieve, urlopen\n\nBASE_DIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))\nTEST_BIN = os.path.join(BASE_DIR, 'test-bin')\nOS = platform.system().lower()\nFILE_SUFFIX = '.exe' if OS == 'windows' else ''\nKUBECTL = os.path.join(TEST_BIN, 'kubectl%s' % FILE_SUFFIX)\nMINIKUBE = os.path.join(TEST_BIN, 'minikube%s' % FILE_SUFFIX)\nFNULL = open(os.devnull, 'w')\n\n\ndef log(message):\n    sys.stderr.write(message + \"\\n\")\n\n\ndef run_command(args, capture_output=False):\n    try:\n        if capture_output:\n            return subprocess.check_output(args)\n        else:\n            subprocess.check_call(args)\n    except CalledProcessError as e:\n        log('Command failed with exit status %d: %s' % (e.returncode, ' '.join(args)))\n        raise\n\n\ndef run_command_async(args, capture_output=False):\n    if capture_output is True:\n        p = subprocess.Popen(args, stdout=FNULL, stderr=subprocess.STDOUT)\n    else:\n        p = subprocess.Popen(args)\n    return p\n\n\ndef create_test_bin():\n    try:\n        os.makedirs(TEST_BIN)\n    except OSError as err:\n        if err.errno != errno.EEXIST:\n            raise\n\n\ndef binary_exists(filename):\n    # Check if binary is callable on our path\n    try:\n        run_command([filename], True)\n        return True\n    except OSError:\n        return False\n\n\ndef download_exec(url, dest):\n    dest = urlretrieve(url, dest)[0]\n    make_exec(dest)\n\n\ndef make_exec(file):\n    current_stat = os.stat(file)\n    os.chmod(file, current_stat.st_mode | stat.S_IEXEC)\n\n\ndef get_latest_github_version(repo):\n    result = urlopen('https://github.com/%s/releases/latest' % repo)\n    return result.geturl().split('/')[-1]\n\n", "path": "aimmo_runner/shell_api.py"}]}