URLDataTypeSerializer treats mixed-case HTTP(S) schemes as local paths
Los mantenedores suelen responder en 2 días
@akhil9tiet ya está trabajando en esto.
Desde el 3/11/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
Línea de trabajo
Empieza en la clase URLDataTypeSerializer y en su comprobación de prefijo sensible a mayúsculas, que decide entre URL y ruta local. Reproduce con el valor sintético HTTPS://example.invalid/é?q=☃ a través del hashing y de add_seeds_to_memory_async sobre una memoria SQLite en memoria. Está terminado cuando http y https se reconocen sin distinguir mayúsculas y minúsculas, la forma original de la URL se conserva como entrada del hash y las rutas locales siguen comportándose igual que antes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
URLDataTypeSerializer uses a case-sensitive prefix check to decide whether a value is a URL or a local path. HTTPS://... and HtTp://... are valid HTTP(S) URLs, but are classified as files. Hashing and public seed ingestion then raise FileNotFoundError.
Steps/Code to Reproduce
Use a SQLiteMemory and URLDataTypeSerializer with the synthetic URL HTTPS://example.invalid/é?q=☃, then hash it or pass it to add_seeds_to_memory_async. No URL needs to be fetched.
Expected Results
Recognize http and https schemes case-insensitively while preserving the original URL spelling and hash input; continue handling local paths normally.
Actual Results
Lowercase https:// hashes and ingests successfully. Uppercase and mixed-case schemes set data_on_disk=true; both operations raise FileNotFoundError for the URL string treated as a path.
Screenshots
N/A. SDK and local SQLite reproduction; no external URL was fetched.
Versions
Linux; Python 3.12.3; PyRIT 1.2.0.dev0 at revision 01ce6ca66a315770b36c7dca1f320668c0d92d7c. Real SDK and in-memory SQLite; no network fetch or model call.
- Lenguaje dominante
- Python
- Estrellas
- 4.7k
- Forks
- 1k
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 450
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/PyRIT
-
Scenario objective previews can split supplementary Unicode during truncationPosiblemente ocupada @Aadithya-kl la tomó hoy. AbiertoBug: triage help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/PyRIT#3870 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Parameter required status is lost after wire round-tripPosiblemente ocupada @its-amann la tomó hoy. AbiertoBug: triage help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/PyRIT#3854 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parametersAbiertoBug: triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 2 días
-
BUG: SelfAskGeneral scorers leave their output keys out of the identifierPosiblemente ocupada @Hrushikesh-ramilla la tomó hace 1 día. AbiertoBug: triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
GUI rejects valid empty-string SearchReplaceConverter settings, preventing deletion convertersPosiblemente ocupada @Darshika140 la tomó hace 1 día. Abiertohelp wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/PyRIT#3749 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de microsoft/PyRIT
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
QuantConnect/Documentation#2838 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
awslabs/route53-dynamic-dns-with-lambda#67 · 1 comentario ·
-
`SubAgents` returns a child run's `DeferredToolRequests` to the parent as a successful tool resultAbiertobug pkg:harness
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pydantic/pydantic-ai#12405 ·
Los mantenedores suelen responder en 1 día
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
good first issue help wanted
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100