Вы можете сделать это рекурсивным способом:
from requests import Session
session = Session()
deps = []
# name = "dotnet-as-script"
def get_deps(name):
if name not in deps:
deps.append(name)
url = f"https://plugins.jenkins.io/api/plugin/{name}"
reqs = session.get(url)
response = reqs.json()
for item in response['dependencies']:
print(item['name'])
deps.append(item['name'])
get_deps(item['name'])
name = input("Please enter the plugin name:")
get_deps(name)
print(deps)
Каждый раз, когда вызывается get_deps
, он проверяет, есть ли зависимость уже в списке. Если нет, он получает зависимости для этого плагина и для каждого из них снова вызывает ту же функцию.
Ваш код произвел бесконечное l oop, поскольку он расширял список без проверки дубликатов, он повторяется.