Remove duplicate Vimeo DI registration; use NimblePros.Vimeo AddVimeoServices and upgrade package

Abierto Apto para principiantes
#1,486 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
72/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
csharp
Área
backend

Línea de trabajo

Empieza en src/DevBetterWeb.Infrastructure/VimeoServiceCollectionExtensions.cs y Program.cs en la llamada a AddInfrastructureServices(...) (~línea 92) y en AddVimeoServices (~línea 148), además de la fábrica de Autofac comentada en la línea 45. Elimina el archivo de extensión local, quita la llamada a RegisterVimeoServicesDependencies y cualquier parámetro vimeoToken que ya no se use, luego compila y haz una prueba de humo de los flujos de video de administración (carga por bloques, actualización de descripción, eliminación, detalles, oEmbed). Hecho significa una sola ruta de registro y sin clientes nombrados ni encabezados duplicados; la actualización del paquete a 2.2.1 sigue bloqueada por la clave de API de NuGet.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Background

When Autofac was removed (#1358), devBetter added its own IServiceCollection version of RegisterVimeoServicesDependencies in src/DevBetterWeb.Infrastructure/VimeoServiceCollectionExtensions.cs. NimblePros.Vimeo already ships the equivalent registration, services.AddVimeoServices(token). It wasn't documented, which is how NimblePros/NimblePros.Vimeo#16 came about. NimblePros/NimblePros.Vimeo#19 adds the documentation and tests.

devBetter currently runs both registrations:

  • Program.cs:92 → AddInfrastructureServices(...) → the local services.RegisterVimeoServicesDependencies(vimeoToken)
  • Program.cs:148 → builder.Services.AddVimeoServices(vimeoSettings.Token)

Effects of the duplicate registration

  • Named HttpClients are configured twice. VimeoApi, VimeoOEmbed and VimeoTusApi are each registered by both methods, and both configure actions run. Default headers are added twice: Accept on every client, and Tus-Resumable on the Tus client.
  • Two ClientApiConfigurations singletons. The last one registered wins, which is the one from AddVimeoServices. The local configuration (default JSON settings, token on the Tus client) is effectively dead code.
  • The tus services are registered twice. ISleepService, IUploadVideoSessionService and IUploadVideoTusService are each registered twice with the same implementation. This is harmless, but it's noise.
  • AuthHeaderHandler in VimeoServiceCollectionExtensions.cs is never used. The bearer token is actually added by AddVimeoServices, on the VimeoApi client only.

AddVimeoServices on its own registers everything devBetter needs:

  • every Vimeo service, such as GetVideoService, GetOEmbedVideoService and UploadVideoChunkService;
  • the NimblePros.ApiClient HTTP services;
  • the three named clients, with the token attached to VimeoApi;
  • the tus services and logging.

Tasks

  • Delete src/DevBetterWeb.Infrastructure/VimeoServiceCollectionExtensions.cs, including the unused AuthHeaderHandler.
  • Remove services.RegisterVimeoServicesDependencies(vimeoToken); from AddInfrastructureServices, along with the vimeoToken parameter if nothing else uses it. Keep AddVimeoServices(vimeoSettings.Token) in Program.cs.
  • Remove the commented-out AutofacServiceProviderFactory line in Program.cs:45.
  • Upgrade NimblePros.Vimeo from 2.1.2 to 2.2.1 once it is published (see below). The new version:
    • adds net10.0 and net11.0 targets (devBetter targets net11.0);
    • updates dependencies;
    • pins a patched Microsoft.AspNetCore.WebUtilities (NimblePros.ApiClient 2.2.0 pulls in 9.0.4, which is affected by GHSA-x33c-w48q-qrgc);
    • makes the VimeoTusApi client set its base address and Accept header.
  • Smoke test the admin video flows: chunked upload (UploadChunkEndpoint), update description, delete, video details and oEmbed.

Behavior notes

Removing the local registration shouldn't change runtime behavior, apart from dropping the duplicated default headers:

  • The JSON settings from AddVimeoServices (NullValueHandling.Ignore) already win today.
  • The Tus client already sends no bearer token. Tus upload links are signed, so it isn't needed.

The package still depends on Autofac transitively, because AutofacExtensions ships in NimblePros.Vimeo. That's tracked as a possible follow-up there.

Blocker for the package upgrade

The NimblePros.Vimeo publish workflow is failing. nuget push returns 403: The specified API key is invalid, has expired, or does not have permission, so 2.2.0 was never published and nuget.org still has 2.1.2. The NUGET_API_KEY secret in NimblePros/NimblePros.Vimeo needs to be regenerated before the upgrade task can be done. The registration cleanup tasks don't depend on the upgrade and can be done now.

Lenguaje dominante
C#
Estrellas
157
Forks
59
Merge medio
3 h 12 min
PR fusionados (30 d)
4

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de DevBetterCom/DevBetterWeb

Todos los issues de DevBetterCom/DevBetterWeb

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.