Acceso Git del proyecto

Altium 365 puede alojar un repositorio Git para los archivos fuente de su proyecto. Altium Designer funciona con estos repositorios como un cliente nativo, pero también puede trabajar con ellos como con cualquier otro remoto de Git: clonepullpush, etc., con el cliente Git estándar.

Esta página muestra cómo:

  1. Descubrir la URL del repositorio de un proyecto mediante la API de Altium 365.

  2. Autenticar solicitudes Git usando un token de acceso de Altium 365.

  3. Trabajar con el repositorio Git

Paso 1: Obtener la URL del repositorio

Los detalles del repositorio se exponen a través de la API de Altium 365. Consulte sus proyectos, lea el campo repositoryUrl y úselo como su remoto de Git. 

Trate repositoryUrl como un valor opaco. Solicítelo a la API y úselo exactamente como se devuelve: la API es la única fuente de verdad sobre dónde se encuentra un repositorio. No construya, analice ni codifique de forma fija las URL de los repositorios.

Vea Tokens para obtener detalles sobre cómo adquirir y usar tokens de Altium 365. Si es nuevo en la API, comience con la Guía de inicio rápido de la API de Altium 365.

Proyectos de hardware

Los proyectos de hardware (PCB) exponen los campos del repositorio a través de desProjects:

query {
  desProjects {
    nodes {
      repositoryUrl
    }
  }
}

Proyectos de software

Los proyectos de software exponen los mismos campos a través de sftSoftwareProjects:

query {
  sftSoftwareProjects {
    repositoryUrl
  }
}

Campos de respuesta

Ambas consultas devuelven los mismos campos de repositorio:

Su aplicación Descripción
repositoryUrl La URL remota de Git del repositorio. Trátela como un valor opaco: solicítela a la API y úsela tal cual.

Por ejemplo, una respuesta de un proyecto de hardware:

{
  "data": {
    "desProjects": {
      "nodes": [
        {
          "repositoryUrl": "{repositoryUrl}"
        }
      ]
    }
  }
}

This page covers projects backed by Altium-hosted Git repositories. Los repositorios alojados en otro lugar quedan fuera del alcance de esta guía.

Paso 2: Autenticación

Los repositorios Git de Altium 365 se autentican con autenticación básica. Use su access token de la API de Altium 365 como contraseña. El token debe haberse emitido para el Workspace propietario del proyecto.

El username is ignored es ignorado por el servidor, pero debe ser una cadena no vacía. Cualquier marcador de posición (por ejemplo: token) funciona.

Encabezado de autorización

Para llamadas de servicio a servicio, pase las credenciales en el encabezado Authorization, codificadas en base64 como username:password:

Authorization: Basic base64("token:{access-token}")

Línea de comandos de Git

Clone usando el repositoryUrl devuelto por la API. Cuando se le solicite, introduzca cualquier nombre de usuario no vacío y su token de acceso como contraseña:

git clone {repositoryUrl}
# Username: "token" (any non-empty value)
# Password: {access-token}

Configure un asistente de credenciales de Git para que el token se almacene de forma segura y no se le solicite en cada operación. Los asistentes disponibles varían según la plataforma (por ejemplo, osxkeychain en macOS, manager en Windows):

git config --global credential.helper osxkeychain

Credenciales en la URL del repositorio

Como alternativa al prompt, Altium 365 acepta credenciales en el componente authority de la URL, con la sintaxis estándar de URI username:password@. La API nunca devuelve una URL con credenciales ya rellenadas, por lo que usted mismo construye esta forma: tome el repositoryUrl devuelto e inserte {username}:{access-token}@ inmediatamente después de https://.

git clone https://token:{access-token}@<returned-url>
# <returned-url> is the repositoryUrl with the leading "https://" removed

El nombre de usuario se ignora (cualquier valor no vacío); la contraseña es el mismo token de acceso (JWT) usado en los métodos anteriores.

Según el estándar URI, cualquier carácter especial en la información de usuario debe estar codificado por porcentaje; por ejemplo, @ se convierte en %40. Esto no tiene efecto para el token:{access-token}  ejemplo anterior, pero es importante si usa otro valor (como una dirección de correo electrónico) como nombre de usuario.

Paso 3: Trabajar con el repositorio

Una vez clonado, el repositorio se comporta como cualquier remoto Git estándar:

cd <your-repository>

# Make changes, then push as usual
git add .
git commit -m "Update firmware sources"
git push

La plataforma realiza el seguimiento de los cambios en la rama master del repositorio del proyecto. Envíe a master los cambios que quiera que el proyecto recoja. 

Un token de acceso no válido o caducado hace que las operaciones Git fallen con un error de autenticación:

git clone {repositoryUrl}
# provide credentials when prompted

Cloning into '<your-repository>'...
bad input: 07KCg
fatal: Authentication failed for '{repositoryUrl}'

Seguridad

  • Trate el token de acceso como una contraseña. No lo confirme en el control de código fuente ni lo incruste en código del lado del cliente.

  • Prefiera un asistente de credenciales en lugar de incrustar el token en la URL de clonación, para que no se escriba en .git/config ni en el historial de su shell.

  • Use tokens de corta duración para la automatización. Para CI/CD y servicios en segundo plano, obtenga un token de acceso de corta duración a partir de un token de actualización, de modo que la credencial que viaja con cada solicitud tenga una ventana de exposición limitada. Consulte Using a Refresh Token.

Límites

Mantenga los binarios grandes fuera del repositorio y confirme solo los archivos fuente que su proyecto necesita

Para mantener el repositorio del proyecto rápido y confiable, el servidor Git rechaza archivos comprimidos grandes: .zip, .7z y .rar de más de 256 MB. Se rechaza un push que incluya uno de esos archivos:

git push

Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 282.56 MiB | 1.09 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
error: RPC failed; HTTP 471 curl 22 The requested URL returned error: 471
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date

Consulte KB: Cannot save project due to Git error with status code 471 para obtener detalles de este error en el contexto de Altium Designer.

Vea también

AI-LocalizedLocalizado por IA
Si encuentra un problema, seleccione el texto/imagen y presioneCtrl + Enterpara enviarnos sus comentarios.
Contenido