21 Lessons, Get Started Building with Generative AI
This report summarizes scanner evidence for microsoft/generative-ai-for-beginners, a Jupyter Notebook project with 121,122 GitHub stars. SynthScan examined 537,011 lines of code across 2470 source files, recording 1135 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 7.8 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 436 finding(s).
Are imports declared and package/API names verified? 19 finding(s).
Are wrappers, guards, and repeated structures necessary? 708 finding(s).
Which changes need focused human review? 1135 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1135 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | 05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/sl/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/sk/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ur/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/sw/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/pl/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/sv/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/he/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ms/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/km/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/da/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/mr/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/no/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ja/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/el/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/it/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/cs/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/te/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ru/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/tl/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ro/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/zh-CN/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/uk/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/sr/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/pcm/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/pa/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/pt-PT/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ml/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/kn/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/zh-TW/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/my/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ar/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/hr/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/pt-BR/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/hu/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/nl/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/bg/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/bn/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ne/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/hi/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/de/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ko/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/fi/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/id/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/fr/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/es/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/et/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/fa/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/lt/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/zh-HK/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/ta/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/zh-MO/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/th/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | translations/tr/05-advanced-prompts/README.md | 0 | <h1>books api</h1> <p>a prototype api for retrieving books.</p> | STRING |
| HIGH | 20-mistral/README.md | 0 | context information is below. --------------------- {retrieved_chunks} --------------------- given the context informati | STRING |
| HIGH | translations/sl/20-mistral/README.md | 0 | context information is below. --------------------- {retrieved_chunks} --------------------- given the context informati | STRING |
| HIGH | translations/sk/20-mistral/README.md | 0 | context information is below. --------------------- {retrieved_chunks} --------------------- given the context informati | STRING |
| HIGH | translations/ur/20-mistral/README.md | 0 | context information is below. --------------------- {retrieved_chunks} --------------------- given the context informati | STRING |
| HIGH | translations/sw/20-mistral/README.md | 0 | context information is below. --------------------- {retrieved_chunks} --------------------- given the context informati | STRING |
| HIGH | translations/pl/20-mistral/README.md | 0 | context information is below. --------------------- {retrieved_chunks} --------------------- given the context informati | STRING |
| 498 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | 10-building-low-code-ai-applications/README.md | 75 | [Microsoft Copilot Studio](https://learn.microsoft.com/microsoft-copilot-studio/fundamentals-what-is-copilot-studio?WT.m | CODE |
| MEDIUM | 20-mistral/README.md | 33 | ### RAG Example using Mistral Large 2 | COMMENT |
| MEDIUM | 02-exploring-and-comparing-different-llms/README.md | 163 | ### Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | 15-rag-and-vector-databases/README.md | 1 | # Retrieval Augmented Generation (RAG) and Vector Databases | COMMENT |
| MEDIUM | 15-rag-and-vector-databases/README.md | 41 | ## Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | 15-rag-and-vector-databases/README.md | 237 | ## Use Cases for using RAG (Retrieval Augmented Generation) and vector databases | COMMENT |
| MEDIUM | translations/sl/20-mistral/README.md | 33 | ### Primer RAG z uporabo Mistral Large 2 | COMMENT |
| MEDIUM | …sl/02-exploring-and-comparing-different-llms/README.md | 164 | ### Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | translations/sl/15-rag-and-vector-databases/README.md | 1 | # Generiranje z nadgradnjo pridobivanja (RAG) in vektorske baze podatkov | COMMENT |
| MEDIUM | translations/sl/15-rag-and-vector-databases/README.md | 41 | ## Generiranje z nadgradnjo pridobivanja (RAG) | COMMENT |
| MEDIUM | translations/sl/15-rag-and-vector-databases/README.md | 45 | ### Kako delujejo RAG (Generiranje z nadgradnjo pridobivanja) | COMMENT |
| MEDIUM | translations/sl/15-rag-and-vector-databases/README.md | 69 | ### Zakaj uporabljati RAG? | COMMENT |
| MEDIUM | translations/sl/15-rag-and-vector-databases/README.md | 237 | ## Primeri uporabe RAG (Generiranje z nadgradnjo pridobivanja) in vektorskih baz podatkov | COMMENT |
| MEDIUM | translations/sk/20-mistral/README.md | 33 | ### Príklad RAG s použitím Mistral Large 2 | COMMENT |
| MEDIUM | …sk/02-exploring-and-comparing-different-llms/README.md | 164 | ### Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | translations/sk/15-rag-and-vector-databases/README.md | 1 | # Retrieval Augmented Generation (RAG) a vektorové databázy | COMMENT |
| MEDIUM | translations/sk/15-rag-and-vector-databases/README.md | 41 | ## Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | translations/sk/15-rag-and-vector-databases/README.md | 45 | ### Ako fungujú RAG (Retrieval Augmented Generation) | COMMENT |
| MEDIUM | translations/sk/15-rag-and-vector-databases/README.md | 69 | ### Prečo používať RAG? | COMMENT |
| MEDIUM | translations/sk/15-rag-and-vector-databases/README.md | 237 | ## Príklady využitia RAG (Retrieval Augmented Generation) a vektorových databáz | COMMENT |
| MEDIUM | translations/ur/20-mistral/README.md | 33 | ### میسٹرال لارجر 2 کا استعمال کرتے ہوئے RAG کی مثال | COMMENT |
| MEDIUM | …ur/02-exploring-and-comparing-different-llms/README.md | 164 | ### ریٹریول آگمینٹڈ جنریشن (RAG) | COMMENT |
| MEDIUM | translations/ur/15-rag-and-vector-databases/README.md | 1 | # بازیافت سے تقویت یافتہ تخلیق (RAG) اور ویکٹر ڈیٹا بیسز | COMMENT |
| MEDIUM | translations/ur/15-rag-and-vector-databases/README.md | 41 | ## بازیافت سے تقویت یافتہ تخلیق (RAG) | COMMENT |
| MEDIUM | translations/ur/15-rag-and-vector-databases/README.md | 237 | ## RAG (بازیافت سے تقویت یافتہ تخلیق) اور ویکٹر ڈیٹا بیسز کے استعمال کے معاملات | COMMENT |
| MEDIUM | translations/sw/20-mistral/README.md | 33 | ### Mfano wa RAG ukitumia Mistral Large 2 | COMMENT |
| MEDIUM | …sw/02-exploring-and-comparing-different-llms/README.md | 164 | ### Uzalishaji Ulioboreshwa Kwa Marejeleo (RAG) | COMMENT |
| MEDIUM | translations/sw/15-rag-and-vector-databases/README.md | 1 | # Uundaji Ulioboreshwa kwa Kupata Taarifa (RAG) na Hifadhidata za Vector | COMMENT |
| MEDIUM | translations/sw/15-rag-and-vector-databases/README.md | 41 | ## Uundaji Ulioboreshwa kwa Kupata Taarifa (RAG) | COMMENT |
| MEDIUM | translations/sw/15-rag-and-vector-databases/README.md | 45 | ### Jinsi RAG (Uundaji Ulioboreshwa kwa Kupata Taarifa) inavyofanya kazi | COMMENT |
| MEDIUM | translations/sw/15-rag-and-vector-databases/README.md | 69 | ### Kwa nini utumie RAG? | COMMENT |
| MEDIUM | translations/sw/15-rag-and-vector-databases/README.md | 237 | ## Matumizi ya RAG (Uundaji Ulioboreshwa kwa Kupata Taarifa) na hifadhidata za vector | COMMENT |
| MEDIUM | translations/pl/20-mistral/README.md | 33 | ### Przykład RAG z użyciem Mistral Large 2 | COMMENT |
| MEDIUM | …pl/02-exploring-and-comparing-different-llms/README.md | 164 | ### Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | translations/pl/15-rag-and-vector-databases/README.md | 1 | # Generowanie Wzbogacone o Wyszukiwanie (RAG) i Bazy Danych Wektorowych | COMMENT |
| MEDIUM | translations/pl/15-rag-and-vector-databases/README.md | 41 | ## Generowanie Wzbogacone o Wyszukiwanie (RAG) | COMMENT |
| MEDIUM | translations/pl/15-rag-and-vector-databases/README.md | 45 | ### Jak działają RAG (Generowanie Wzbogacone o Wyszukiwanie) | COMMENT |
| MEDIUM | translations/pl/15-rag-and-vector-databases/README.md | 69 | ### Dlaczego warto używać RAG? | COMMENT |
| MEDIUM | translations/pl/15-rag-and-vector-databases/README.md | 237 | ## Przypadki użycia RAG (Generowanie Wzbogacone o Wyszukiwanie) i baz danych wektorowych | COMMENT |
| MEDIUM | translations/vi/20-mistral/README.md | 33 | ### Ví dụ RAG sử dụng Mistral Large 2 | COMMENT |
| MEDIUM | …vi/02-exploring-and-comparing-different-llms/README.md | 164 | ### Tạo sinh tăng cường truy xuất (RAG) | COMMENT |
| MEDIUM | translations/vi/15-rag-and-vector-databases/README.md | 1 | # Tạo sinh tăng cường truy xuất (RAG) và cơ sở dữ liệu vector | COMMENT |
| MEDIUM | translations/vi/15-rag-and-vector-databases/README.md | 41 | ## Tạo sinh tăng cường truy xuất (RAG) | COMMENT |
| MEDIUM | translations/vi/15-rag-and-vector-databases/README.md | 45 | ### Cách RAG (Tạo sinh tăng cường truy xuất) hoạt động | COMMENT |
| MEDIUM | translations/vi/15-rag-and-vector-databases/README.md | 69 | ### Tại sao bạn nên dùng RAG? | COMMENT |
| MEDIUM | translations/vi/15-rag-and-vector-databases/README.md | 237 | ## Các trường hợp sử dụng RAG (Tạo sinh tăng cường truy xuất) và cơ sở dữ liệu vector | COMMENT |
| MEDIUM | translations/sv/20-mistral/README.md | 33 | ### RAG-exempel med Mistral Large 2 | COMMENT |
| MEDIUM | …sv/02-exploring-and-comparing-different-llms/README.md | 164 | ### Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | translations/sv/15-rag-and-vector-databases/README.md | 1 | # Retrieval Augmented Generation (RAG) och vektordatabaser | COMMENT |
| MEDIUM | translations/sv/15-rag-and-vector-databases/README.md | 41 | ## Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | translations/sv/15-rag-and-vector-databases/README.md | 45 | ### Hur RAG (Retrieval Augmented Generation) fungerar | COMMENT |
| MEDIUM | translations/sv/15-rag-and-vector-databases/README.md | 69 | ### Varför skulle man använda RAG? | COMMENT |
| MEDIUM | translations/sv/15-rag-and-vector-databases/README.md | 237 | ## Användningsområden för att använda RAG (Retrieval Augmented Generation) och vektordatabaser | COMMENT |
| MEDIUM | translations/he/20-mistral/README.md | 33 | ### דוגמה ל-RAG באמצעות Mistral Large 2 | COMMENT |
| MEDIUM | …he/02-exploring-and-comparing-different-llms/README.md | 164 | ### Retrieval Augmented Generation (RAG) | COMMENT |
| MEDIUM | translations/he/15-rag-and-vector-databases/README.md | 1 | # יצירה מוגברת על ידי שליפה (RAG) ומסדי נתונים וקטוריים | COMMENT |
| MEDIUM | translations/he/15-rag-and-vector-databases/README.md | 41 | ## יצירה מוגברת על ידי שליפה (RAG) | COMMENT |
| MEDIUM | translations/he/15-rag-and-vector-databases/README.md | 237 | ## מקרים לשימוש ב-RAG ומסדי נתונים וקטוריים | COMMENT |
| MEDIUM | translations/ms/20-mistral/README.md | 33 | ### Contoh RAG menggunakan Mistral Large 2 | COMMENT |
| MEDIUM | …ms/02-exploring-and-comparing-different-llms/README.md | 164 | ### Retrieval Augmented Generation (RAG) | COMMENT |
| 305 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | _gen_lesson09_images.py | 66 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | …ing-search-applications/scripts/transcript_download.py | 109 | except Exception as exception: | CODE |
| LOW | …ch-applications/scripts/transcript_enrich_summaries.py | 143 | except Exception as e: | CODE |
| LOW | docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/sl/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/sl/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/sk/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/sk/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/ur/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/ur/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/sw/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/sw/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/pl/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/pl/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/vi/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/vi/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/sv/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/sv/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/he/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/he/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/ms/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/ms/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/km/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/km/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/da/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/da/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/mr/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/mr/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/no/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/no/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/ja/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/ja/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/el/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/el/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/it/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/it/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/cs/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/cs/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/te/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/te/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/ru/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/ru/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/tl/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/tl/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/ro/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/ro/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/zh-CN/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/zh-CN/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/uk/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/uk/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/sr/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/sr/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/pcm/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/pcm/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/pa/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/pa/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/pt-PT/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| LOW | translations/pt-PT/docs/SECURITY_GUIDELINES.md | 212 | except Exception as e: | CODE |
| LOW | translations/ml/docs/SECURITY_GUIDELINES.md | 198 | except Exception: | CODE |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | shared/python/input_validation.py | 14 | Validate and convert string input to an integer within bounds. Args: value: The string value to valida | STRING |
| HIGH | shared/python/input_validation.py | 53 | Validate and sanitize text input. Args: value: The string value to validate. max_length: Maxim | STRING |
| HIGH | shared/python/input_validation.py | 97 | Sanitize user input intended for use in LLM prompts. This function removes potentially dangerous characters an | STRING |
| HIGH | shared/python/input_validation.py | 155 | Validate an email address format. Args: email: The email address to validate. Returns: Th | STRING |
| HIGH | shared/python/input_validation.py | 179 | Validate a URL format. Args: url: The URL to validate. require_https: If True, only allow HTTP | STRING |
| HIGH | shared/python/env_utils.py | 12 | Get a required environment variable or raise an error with helpful message. Args: var_name: The name o | STRING |
| HIGH | shared/python/env_utils.py | 39 | Validate that multiple environment variables are set. Args: *var_names: Variable names to check. | STRING |
| HIGH | shared/python/api_utils.py | 18 | Make an HTTP request with proper timeout and error handling. Args: url: The URL to request. me | STRING |
| HIGH | shared/python/api_utils.py | 57 | Create an OpenAI client with proper configuration. Args: api_key: Optional API key. If not provided, r | STRING |
| HIGH | shared/python/api_utils.py | 95 | Create an Azure OpenAI (Microsoft Foundry) client with proper configuration. The client targets the Azure Open | STRING |
| HIGH | shared/python/api_utils.py | 148 | Download an image from a URL and save it to disk. Args: url: The URL of the image to download. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …earch-applications/scripts/transcript_enrich_bucket.py | 84 | def append_text_to_previous_segment(text): | CODE |
| LOW | …earch-applications/scripts/transcript_enrich_bucket.py | 108 | def parse_json_vtt_transcript(vtt, metadata): | CODE |
| LOW | tests/test_api_utils.py | 22 | def test_returns_response_on_success(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_api_utils.py | 48 | def test_missing_key_raises_value_error(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_api_utils.py | 56 | def test_missing_endpoint_raises_value_error(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_api_utils.py | 63 | def test_missing_key_raises_value_error(self, monkeypatch): | CODE |
| LOW | tests/test_input_validation.py | 21 | def test_below_minimum_raises(self): | CODE |
| LOW | tests/test_input_validation.py | 25 | def test_above_maximum_raises(self): | CODE |
| LOW | tests/test_input_validation.py | 41 | def test_empty_not_allowed_raises(self): | CODE |
| LOW | tests/test_input_validation.py | 45 | def test_empty_allowed_returns_empty(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 58 | def test_plain_text_unchanged(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 61 | def test_removes_template_injection(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 66 | def test_removes_variable_substitution(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 74 | def test_removes_javascript_url(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 85 | def test_only_invalid_characters_raises(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 91 | def test_valid_email_lowercased(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 97 | def test_invalid_email_raises(self, bad): | CODE |
| LOW⚡ | tests/test_input_validation.py | 106 | def test_http_rejected_when_https_required(self): | CODE |
| LOW⚡ | tests/test_input_validation.py | 110 | def test_http_allowed_when_not_required(self): | CODE |
| LOW⚡ | tests/test_env_utils.py | 12 | def test_get_required_env_returns_value(monkeypatch): | CODE |
| LOW⚡ | tests/test_env_utils.py | 17 | def test_get_required_env_missing_raises(monkeypatch): | CODE |
| LOW⚡ | tests/test_env_utils.py | 23 | def test_get_required_env_empty_raises(monkeypatch): | CODE |
| LOW⚡ | tests/test_env_utils.py | 29 | def test_get_required_env_includes_description(monkeypatch): | CODE |
| LOW⚡ | tests/test_env_utils.py | 35 | def test_validate_env_vars_returns_mapping(monkeypatch): | CODE |
| LOW⚡ | tests/test_env_utils.py | 42 | def test_validate_env_vars_reports_all_missing(monkeypatch): | CODE |
| LOW⚡ | tests/test_env_utils.py | 52 | def test_get_env_with_default_uses_default(monkeypatch): | CODE |
| LOW⚡ | tests/test_env_utils.py | 57 | def test_get_env_with_default_uses_value(monkeypatch): | CODE |
| LOW | shared/python/api_utils.py | 91 | def create_azure_openai_client( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | 18-fine-tuning/README.md | 78 | ### Step 1: Pick a training technique | COMMENT |
| LOW⚡ | 18-fine-tuning/README.md | 88 | ### Step 2: Pick a training tier | COMMENT |
| LOW⚡ | 18-fine-tuning/README.md | 96 | ### Step 3: Choose a base model | COMMENT |
| LOW | 11-integrating-with-function-calling/README.md | 202 | ### Step 1 - creating messages | STRING |
| LOW | 11-integrating-with-function-calling/README.md | 214 | ### Step 2 - creating functions | STRING |
| LOW | 11-integrating-with-function-calling/README.md | 265 | ### Step 3 - Making the function call | STRING |
| LOW | .github/skills/azure-openai-to-responses/SKILL.md | 91 | ## Step 0: Client migration (prerequisite) | COMMENT |
| LOW | .github/skills/azure-openai-to-responses/SKILL.md | 118 | ## Step 1: Detect legacy call sites | COMMENT |
| LOW | .github/skills/azure-openai-to-responses/SKILL.md | 133 | ## Step 2: Apply migration | COMMENT |
| LOW⚡ | translations/pcm/18-fine-tuning/README.md | 78 | ### Step 1: Choose training technique | COMMENT |
| LOW⚡ | translations/pcm/18-fine-tuning/README.md | 88 | ### Step 2: Choose training tier | COMMENT |
| LOW⚡ | translations/pcm/18-fine-tuning/README.md | 96 | ### Step 3: Choose base model | COMMENT |
| LOW | …ons/pcm/11-integrating-with-function-calling/README.md | 202 | ### Step 1 - create messages | STRING |
| LOW | …ons/pcm/11-integrating-with-function-calling/README.md | 214 | ### Step 2 - create functions | STRING |
| LOW | …ons/pcm/11-integrating-with-function-calling/README.md | 265 | ### Step 3 - Make function call | STRING |
| LOW⚡ | translations/en/18-fine-tuning/README.md | 78 | ### Step 1: Pick a training technique | COMMENT |
| LOW⚡ | translations/en/18-fine-tuning/README.md | 88 | ### Step 2: Pick a training tier | COMMENT |
| LOW⚡ | translations/en/18-fine-tuning/README.md | 96 | ### Step 3: Choose a base model | COMMENT |
| LOW | …ions/en/11-integrating-with-function-calling/README.md | 202 | ### Step 1 - creating messages | STRING |
| LOW | …ions/en/11-integrating-with-function-calling/README.md | 214 | ### Step 2 - creating functions | STRING |
| LOW | …ions/en/11-integrating-with-function-calling/README.md | 265 | ### Step 3 - Making the function call | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | 12-designing-ux-for-ai-applications/README.md | 64 | When AI helps inform decisions such as imparting knowledge to future generations, it is critical for teachers and parent | CODE |
| HIGH | 13-securing-ai-applications/README.md | 114 | Data security, governance, and compliance are critical for any organization that wants to leverage the power of data and | CODE |
| HIGH | …tions/en/12-designing-ux-for-ai-applications/README.md | 64 | When AI helps inform decisions such as imparting knowledge to future generations, it is critical for teachers and parent | CODE |
| HIGH | translations/en/13-securing-ai-applications/README.md | 114 | Data security, governance, and compliance are critical for any organization that wants to leverage the power of data and | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | shared/python/__init__.py | 8 | CODE | |
| LOW | shared/python/__init__.py | 8 | CODE | |
| LOW | shared/python/__init__.py | 8 | CODE | |
| LOW | shared/python/__init__.py | 13 | CODE | |
| LOW | shared/python/__init__.py | 13 | CODE | |
| LOW | shared/python/__init__.py | 14 | CODE | |
| LOW | shared/python/__init__.py | 14 | CODE | |
| LOW | shared/python/__init__.py | 14 | CODE | |
| LOW | 09-building-image-applications/python/aoai-app.py | 1 | CODE | |
| LOW | 09-building-image-applications/python/oai-app.py | 3 | CODE | |
| LOW | 09-building-image-applications/python/oai-app.py | 4 | CODE | |
| LOW | 09-building-image-applications/python/aoai-solution.py | 1 | CODE | |
| LOW | 06-text-generation-apps/python/oai-study-buddy.py | 2 | CODE | |
| LOW | 06-text-generation-apps/python/oai-history-bot.py | 2 | CODE | |
| LOW | 06-text-generation-apps/python/oai-app-recipe.py | 2 | CODE | |
| LOW | 06-text-generation-apps/python/oai-app.py | 2 | CODE | |
| LOW | 06-text-generation-apps/python/githubmodels-app.py | 3 | CODE | |
| LOW | 06-text-generation-apps/python/githubmodels-app.py | 3 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ing-search-applications/scripts/transcript_download.py | 135 | # Create a request object with the playlist ID and the max results | COMMENT |
| MEDIUM | 09-building-image-applications/python/aoai-app.py | 24 | # Create an image by using the image generation API | COMMENT |
| MEDIUM | 09-building-image-applications/python/oai-app.py | 21 | # Create an image by using the image generation API | COMMENT |
| MEDIUM | 09-building-image-applications/python/aoai-solution.py | 44 | # Create an image by using the image generation API | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …-search-applications/scripts/transcript_enrich_lite.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ing-search-applications/scripts/transcript_download.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …h-applications/scripts/transcript_enrich_embeddings.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ch-applications/scripts/transcript_enrich_summaries.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | …earch-applications/scripts/transcript_enrich_bucket.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …arch-applications/scripts/transcript_enrich_speaker.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | shared/python/__init__.py | 20 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ing-search-applications/scripts/transcript_download.py | 146 | # Iterate over the items in the response and append the video IDs to the list | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_input_validation.py | 92 | assert validate_email("User@Example.COM") == "user@example.com" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …earch-applications/scripts/transcript_enrich_bucket.py | 108 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .devcontainer/post-create.sh | 1 | #!/bin/bash | COMMENT |