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: clone, pull, push, etc., con el cliente Git estándar.
Esta página muestra cómo:
-
Descubrir la URL del repositorio de un proyecto mediante la API de Altium 365.
-
Autenticar solicitudes Git usando un token de acceso de Altium 365.
-
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.
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}"
}
]
}
}
}
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.
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
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/configni 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
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.