es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Empujar el código de vuelta al repositorio de TFVC en Azure Devops.

Estoy intentando enviar código a un TFVC a través de un pipeline de Azure Devops, pero no puedo hacer que funcione. Estoy utilizando una tarea de powershell y comandos tf para hacer un commit automáticamente a través de un procesamiento que ocurre en un pipeline. La salida de este procesamiento debe ser enviada de vuelta al repositorio de trabajo de TFVC.

Primero creo un archivo de muestra en Pipeline.Workspace en la carpeta de fuentes.

Paso de línea de comandos.

echo "contenido 1 2 3" >  $(Pipeline.Workspace)/s/file_created_by_pipeline.txt
ls $(Pipeline.Workspace)/s

Luego intento hacer un commit de los cambios en el repositorio.

Tarea de Powershell:

cd $(Pipeline.Workspace)/s
tf add .*.txt /resursive; 
tf checkin .*.txt /comment "se agregaron archivos nuevos" /recursive  /force

Problema:

No se encontraron cambios que coincidan con ningún argumento

Durante la ejecución del pipeline también tengo que proporcionar códigos basados en la autenticación del flujo de dispositivos de OAuth 2.0.

También cuando establezco la variable TF_BYPASS_BROWSER_LOGIN=true en el pipeline, obtengo:

Las credenciales predeterminadas no están disponibles porque no hay un ticket Kerberos u otro token de autenticación disponible.

Mi objetivo es enviar cambios de vuelta al repositorio de trabajo que es la fuente de código para este pipeline. También necesito omitir la autenticación OAuth. Ya he seleccionado permitir que los scripts accedan al token OAuth en el trabajo del agente.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución:

    Para enviar los cambios de vuelta al repositorio TFVC a través de una tubería de Azure Devops, puede utilizar el comando tf en una tarea powershell. Sin embargo, antes de utilizar este comando, es necesario asegurarse de que el agente que ejecuta la tubería tenga los permisos necesarios para acceder al repositorio. Esto se puede hacer proporcionando al agente las credenciales adecuadas o un token de acceso personal con los permisos necesarios.

    Para solucionar el problema de “No se encontraron cambios coincidentes con ningún argumento”, debe utilizar la sintaxis correcta para los comandos tf add y tf checkin. En el comando tf add, la opción recursive debe estar escrita correctamente y las extensiones de archivo deben ser mencionadas explícitamente. En el comando tf checkin, la opción /force debe ser eliminada ya que no es necesaria.

    Aquí está una versión corregida de la tarea powershell:

    cd $(Pipeline.Workspace)/s
    tf add *.txt /recursive
    tf checkin *.txt /comment "added new files" /recursive
    

    Si está teniendo problemas con la autenticación de flujo de dispositivo OAuth 2.0, debe asegurarse de que el agente tenga las credenciales correctas y de que la variable TF_BYPASS_BROWSER_LOGIN esté configurada en true. También puede intentar configurar la variable TF_AUTO_SAVE_CREDENTIALS en True para permitir que el agente almacene en caché las credenciales.

    Finalmente, asegúrese de que el trabajo del agente tenga el permiso para ejecutar scripts y acceder a tokens OAuth, lo cual se puede proporcionar seleccionando las opciones apropiadas en la configuración del trabajo del agente.

    Siguiendo estos pasos, debería ser capaz de enviar cambios de vuelta al repositorio TFVC a través de una tubería de Azure Devops.

Comments are closed.