TeamCity renderer
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza inspeccionando los renderizadores existentes y la ruta de salida de la CLI; después, lee la documentación enlazada de TeamCity service messages. Define cómo debe funcionar el uso de los renderizadores desde el código y la salida de la CLI, incluidos los requisitos de severidad y escaping. Se considera terminado cuando se puedan generar, transformar o escribir en stdout mensajes de inspección de TeamCity válidos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
It would be nice if there were a built-in TeamCity renderer, that can render TeamCity service messages, like for example
##teamcity[inspectionType category='openapi-diff' id='new-endpoint' name='New Endpoint' description='info -- New Endpoint']
##teamcity[inspection typeId='new-endpoint' file='build\openapi.json' message='info -- New Endpoint GET /showcase/v1/open/{id} - Query something totally open' SEVERITY='INFO']
##teamcity[inspection typeId='new-endpoint' file='build\openapi.json' message='info -- New Endpoint GET /showcase/v1/open/{open-id}/samples/{sample-id}/sub-samples/{sub-sample-id} - Query something else totally open' SEVERITY='INFO']
##teamcity[inspectionType category='openapi-diff' id='deleted-endpoint' name='Deleted Endpoint' description='error -- Deleted Endpoint']
##teamcity[inspection typeId='deleted-endpoint' file='build\openapi.json' message='error -- Deleted Endpoint GET /showcase/v1/whatever - Get whatever' SEVERITY='ERROR']
##teamcity[inspection typeId='deleted-endpoint' file='build\openapi.json' message='error -- Deleted Endpoint GET /showcase/v2/whatever - Get whatever else' SEVERITY='ERROR']
##teamcity[inspectionType category='openapi-diff' id='changed-operation' name='Changed Operation' description='Changed Operation']
##teamcity[inspection typeId='changed-operation' file='build\openapi.json' message='info -- Non-breakingly changed operation GET /showcase/v1/foo' SEVERITY='INFO']
##teamcity[inspection typeId='changed-operation' file='build\openapi.json' message='error -- Breakingly changed operation POST /showcase/v1/bar' SEVERITY='ERROR']
##teamcity[inspection typeId='changed-operation' file='build\openapi.json' message='error -- Breakingly changed operation POST /showcase/v1/bar/{bar-id}/baz/{baz-id}/boo' SEVERITY='ERROR']
In the CLI if enabled (or if TeamCity detected) this renderer should write to stdout.
When using via code, it should be a renderer like the others so that it can also be transformered or processed as necessary (like having one Gradle task that has it as output file and another that writes it to stdout so that the generation can be cached while the service messages will still be printed and thus processed).
The inspections can of course also be more fine-grained like for each specific change.
Or having more extensive messages which also support HTML (see linked docs).
Two things to keep in mind:
- While the docs list
SEVERITYas custom attribute it should still be used as TeamCity indeed considers it to differentiate between error and non-errors - Texts that could contain some special characters need a special escaping like this one:
// | => || must be handled first. or we will // escape the previously added escape character text .replace("|", "||") .replace("'", "|'") .replace("\n", "|n") .replace("\r", "|r") .replace("[", "|[") .replace("]", "|]")
- Lenguaje dominante
- Java
- Estrellas
- 1.1k
- Forks
- 190
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 OpenAPITools/openapi-diff
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenAPITools/openapi-diff#506 ·
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenAPITools/openapi-diff#364 ·
-
bug OpenAP 3.1.0 Support
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
OpenAPITools/openapi-diff#910 · 1 comentario ·
-
Render capabilities
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
OpenAPITools/openapi-diff#893 · 1 comentario ·
-
Breaking/Non-Breaking classification
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
OpenAPITools/openapi-diff#886 ·
Todos los issues de OpenAPITools/openapi-diff
Issues similares
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abiertoarea/plugin
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Add canonical URLs and a sitemap Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/rocketmq-dashboard#5064 ·