diff --git a/.github/workflows/repo_health.yml b/.github/workflows/repo_health.yml index 11e318c..5a8db41 100644 --- a/.github/workflows/repo_health.yml +++ b/.github/workflows/repo_health.yml @@ -607,25 +607,25 @@ jobs: export CONTENT_WARNINGS="$(printf '%s\n' "${content_warnings[@]:-}")" report_json="$(python3 - <<'PY' - import json - import os + import json + import os - profile = os.environ.get('PROFILE_RAW') or 'all' + profile = os.environ.get('PROFILE_RAW') or 'all' - missing_required = os.environ.get('MISSING_REQUIRED', '').splitlines() if os.environ.get('MISSING_REQUIRED') else [] - missing_optional = os.environ.get('MISSING_OPTIONAL', '').splitlines() if os.environ.get('MISSING_OPTIONAL') else [] - content_warnings = os.environ.get('CONTENT_WARNINGS', '').splitlines() if os.environ.get('CONTENT_WARNINGS') else [] + missing_required = os.environ.get('MISSING_REQUIRED', '').splitlines() if os.environ.get('MISSING_REQUIRED') else [] + missing_optional = os.environ.get('MISSING_OPTIONAL', '').splitlines() if os.environ.get('MISSING_OPTIONAL') else [] + content_warnings = os.environ.get('CONTENT_WARNINGS', '').splitlines() if os.environ.get('CONTENT_WARNINGS') else [] - out = { - 'profile': profile, - 'missing_required': [x for x in missing_required if x], - 'missing_optional': [x for x in missing_optional if x], - 'content_warnings': [x for x in content_warnings if x], - } + out = { + 'profile': profile, + 'missing_required': [x for x in missing_required if x], + 'missing_optional': [x for x in missing_optional if x], + 'content_warnings': [x for x in content_warnings if x], + } - print(json.dumps(out, indent=2)) - PY - )" + print(json.dumps(out, indent=2)) + PY + )" { printf '%s\n' '### Repository health' @@ -747,13 +747,23 @@ PY sudo apt-get update -qq sudo apt-get install -y shellcheck >/dev/null fi - sc_out="$(shellcheck -S warning -x scripts/**/*.sh 2>/dev/null || true)" + + sc_out='' + while IFS= read -r shf; do + [ -z "${shf}" ] && continue + out_one="$(shellcheck -S warning -x "${shf}" 2>/dev/null || true)" + if [ -n "${out_one}" ]; then + sc_out="${sc_out}${out_one}\n" + fi + done < <(find scripts -type f -name '*.sh' 2>/dev/null | sort) + if [ -n "${sc_out}" ]; then extended_findings+=("ShellCheck warnings detected (advisory)") + sc_head="$(printf '%s' "${sc_out}" | head -n 200)" { printf '%s\n' '### ShellCheck (advisory)' printf '%s\n' '```' - printf '%s\n' "${sc_out}" | head -n 200 + printf '%s\n' "${sc_head}" printf '%s\n' '```' printf '\n' } >> "${GITHUB_STEP_SUMMARY}"