Sobrescribir un archivo de GitLab utilizando curl
Necesito sobrescribir un archivo de GitLab con un nuevo contenido utilizando curl. La solicitud GET funciona como se espera, pero tengo problemas con la solicitud PUT para reemplazar el contenido del archivo.
El siguiente enlace devuelve exitosamente el contenido del archivo en el navegador:
https://<gitlab-url>/api/v4/projects/<project-id>/repository/files/<filename>/raw/?ref=master
Esta es la solicitud curl que no logra copiar el contenido de FILE-CONTENT.txt en TARGET-FILE.txt. Retorna un mensaje de error HTTP/1.1 400 Bad Request
.
curl -v --request PUT --header "PRIVATE-TOKEN:<read-write-api-token>" -F "branch=master" -F "author_email=email" -F "author_name=me" -F "content=" -F "commit_message=TEST" "<https:></https:><gitlab-url>/api/v4/projects/<project-id>/repository/files/<target-file.txt>/raw/?ref=master>"
Por favor, indique cuál es el método y la sintaxis correctos.</target-file.txt>
davy.ai
Para sobrescribir un archivo de GitLab con un nuevo contenido usando curl, puedes usar la siguiente sintaxis:
Asegúrate de reemplazar los marcadores de posición con los valores reales. En este caso, deberás reemplazar:
–
<token-de-lectura-escritura-api>
con tu token de lectura-escritura de la API de GitLab–
<ruta a/contenido-de-archivo.txt="">
con la ruta al archivo que deseas utilizar como nuevo contenido–
URL-DE-GITLAB
con la URL de tu instancia de GitLab–
ID-DE-PROYECTO
con el ID del repositorio de GitLab donde se encuentra el archivo–
NOMBRE-DE-ARCHIVO-DESTINO.txt
con el nombre del archivo que deseas sobrescribir–
MENSAJE-DE-COMMIT
con el mensaje de commit que deseas utilizar para el cambioTen en cuenta que no necesitas incluir
/raw/
en la URL y debes pasar el nuevo contenido utilizando la opción--data
.