File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88
99from django .core .cache import caches
1010
11+ from requests .adapters import HTTPAdapter
12+ from urllib3 .util .retry import Retry
13+
1114from dejacode_toolkit import BaseService
1215from dejacode_toolkit import get_settings
1316from dejacode_toolkit import logger
@@ -24,8 +27,18 @@ class VulnerableCode(BaseService):
2427 user_agent = get_settings ("VULNERABLECODE_USER_AGENT" , default = "VCIO_API_AGENT" )
2528
2629 def get_session (self ):
30+ """Add the required User-Agent header and automatic 429 retry with Retry-After support."""
2731 session = super ().get_session ()
2832 session .headers .update ({"User-Agent" : self .user_agent })
33+ retry = Retry (
34+ total = 3 ,
35+ status_forcelist = [429 ],
36+ allowed_methods = {"GET" , "POST" },
37+ respect_retry_after_header = True ,
38+ )
39+ adapter = HTTPAdapter (max_retries = retry )
40+ session .mount ("https://" , adapter )
41+ session .mount ("http://" , adapter )
2942 return session
3043
3144 def get_vulnerabilities_by_purl (
You can’t perform that action at this time.
0 commit comments