diff --git a/scripts/ci/avail-ext-doc/list-template.md b/scripts/ci/avail-ext-doc/list-template.md index 1c635cd0049..4f6cb11e974 100644 --- a/scripts/ci/avail-ext-doc/list-template.md +++ b/scripts/ci/avail-ext-doc/list-template.md @@ -21,6 +21,6 @@ The list of extensions is also available from the CLI. To get it, run [az exten az extension list-available --output table ``` -| Name | Version | Summary | Preview | -|------|---------|---------|---------|{% for extension in extensions %} -| [{{ extension.name }}]({{ extension.project_url }}) | {{ extension.version }} | {{ extension.desc }} | {{ extension.preview }} |{% endfor %} +| Extension | Required Minimum CLI Version | Description | Status | Release Notes | +|----|-----------------|-------------|---------|---------------|{% for extension in extensions %} +|[{{ extension.name }}]({{ extension.project_url }}) | {{ extension.min_cli_core_version }} | {{ extension.desc }} | {{ extension.status }} | [{{extension.version}}]({{extension.history}}) |{% endfor %} diff --git a/scripts/ci/avail-ext-doc/update_extension_list.py b/scripts/ci/avail-ext-doc/update_extension_list.py index 5433e5badfd..72ae5dc982f 100644 --- a/scripts/ci/avail-ext-doc/update_extension_list.py +++ b/scripts/ci/avail-ext-doc/update_extension_list.py @@ -18,7 +18,7 @@ from pkg_resources import parse_version from jinja2 import Template # pylint: disable=import-error - +import requests SCRIPTS_LOCATION = os.path.abspath(os.path.join('.', 'scripts')) @@ -36,12 +36,26 @@ def get_extensions(): for _, exts in index_extensions.items(): # Get latest version exts = sorted(exts, key=lambda c: parse_version(c['metadata']['version']), reverse=True) + + # some extension modules may not include 'HISTORY.rst' + project_url = exts[0]['metadata']['extensions']['python.details']['project_urls']['Home'] + history_tmp = project_url + '/HISTORY.rst' + history = project_url if str(requests.get(history_tmp).status_code) == '404' else history_tmp + if exts[0]['metadata'].get('azext.isPreview'): + status = 'Preview' + elif exts[0]['metadata'].get('azext.isExperimental'): + status = 'Experimental' + else: + status = 'GA' + extensions.append({ 'name': exts[0]['metadata']['name'], 'desc': exts[0]['metadata']['summary'], + 'min_cli_core_version': exts[0]['metadata']['azext.minCliCoreVersion'], 'version': exts[0]['metadata']['version'], - 'project_url': exts[0]['metadata']['extensions']['python.details']['project_urls']['Home'], - 'preview': 'Yes' if exts[0]['metadata'].get('azext.isPreview') else '' + 'project_url': project_url, + 'history': history, + 'status': status }) return extensions