(project: dict)
| 999 | |
| 1000 | |
| 1001 | def prerequisite_items(project: dict) -> str: |
| 1002 | tools = ", ".join(project["tools"][:8]) or "the tools named in the project README" |
| 1003 | credential_text = ( |
| 1004 | "Use your own cloud account credentials and keep them out of commits." |
| 1005 | if project["needs_cloud_credentials"] == "Yes" |
| 1006 | else "No cloud provider credentials are required by the project metadata." |
| 1007 | ) |
| 1008 | local_text = ( |
| 1009 | "This project can be practiced locally before you publish portfolio evidence." |
| 1010 | if project["works_locally"] == "Yes" |
| 1011 | else "This project expects cloud resources, so verify budget alerts and cleanup first." |
| 1012 | ) |
| 1013 | return f"""<ul class="lab-checklist"> |
| 1014 | <li>Install or review: {escape_html(tools)}.</li> |
| 1015 | <li>{credential_text}</li> |
| 1016 | <li>{local_text}</li> |
| 1017 | <li>Open the safety guide before running commands that create infrastructure.</li> |
| 1018 | </ul>""" |
| 1019 | |
| 1020 | |
| 1021 | def cost_warning(project: dict) -> str: |
no test coverage detected