These functions were previously called once per compiler. Add the `lru_cache`
decorator to only perform one HTTP request each.
---
 .github/matrix.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.github/matrix.py b/.github/matrix.py
index 7cd04e88a6..3df259cd8c 100755
--- a/.github/matrix.py
+++ b/.github/matrix.py
@@ -8,6 +8,7 @@
 # as published by the Free Software Foundation; either version
 # 2 of the License, or (at your option) any later version.
 
+import functools
 import json
 import sys
 import urllib.request
@@ -25,6 +26,7 @@ print("Generating matrix for branch '{}'.".format(ref_name))
 def clean_ssl(ssl):
     return ssl.replace("_VERSION", "").lower()
 
+@functools.lru_cache(5)
 def determine_latest_openssl(ssl):
     headers = {'Authorization': 'token ' + environ.get('GITHUB_API_TOKEN')} if 
environ.get('GITHUB_API_TOKEN') else {}
     request = 
urllib.request.Request('https://api.github.com/repos/openssl/openssl/tags', 
headers=headers)
@@ -38,6 +40,7 @@ def determine_latest_openssl(ssl):
                latest_tag = name
     return "OPENSSL_VERSION={}".format(latest_tag[8:])
 
+@functools.lru_cache(5)
 def determine_latest_libressl(ssl):
     libressl_download_list = 
urllib.request.urlopen("http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/";)
     for line in libressl_download_list.readlines():
-- 
2.39.0


Reply via email to