Accès Git au projet
Altium 365 peut héberger un dépôt Git pour les fichiers source de votre projet. Altium Designer fonctionne avec ces dépôts comme un client natif, mais vous pouvez aussi les utiliser comme n’importe quel autre dépôt Git distant — clone, pull, push, etc. avec le client Git standard.
Cette page explique comment :
-
Découvrir l’URL du dépôt d’un projet via l’API Altium 365.
-
Authentifier les requêtes Git à l’aide d’un jeton d’accès Altium 365.
-
Utiliser le dépôt Git
Étape 1 : Obtenir l’URL du dépôt
Les détails du dépôt sont exposés via l’API Altium 365. Interrogez vos projets, lisez le champ repositoryUrl et utilisez-le comme dépôt Git distant.
Voir Tokens pour plus de détails sur l’obtention et l’utilisation des jetons Altium 365. Si vous débutez avec l’API, commencez par le Altium 365 API Quick Start Guide.
Projets matériels
Les projets matériels (PCB) exposent les champs du dépôt via desProjects:
query {
desProjects {
nodes {
repositoryUrl
}
}
}
Projets logiciels
Les projets logiciels exposent les mêmes champs via sftSoftwareProjects:
query {
sftSoftwareProjects {
repositoryUrl
}
}
Champs de réponse
Les deux requêtes renvoient les mêmes champs de dépôt :
| Votre application | Description |
repositoryUrl |
L’URL Git distante du dépôt. Traitez-la comme une valeur opaque — récupérez-la via l’API et utilisez-la telle quelle. |
Par exemple, une réponse de projet matériel :
{
"data": {
"desProjects": {
"nodes": [
{
"repositoryUrl": "{repositoryUrl}"
}
]
}
}
}
Étape 2 : Authentification
Les dépôts Git Altium 365 utilisent l’authentification basic authentication. Utilisez votre access token API Altium 365 comme mot de passe. Le jeton doit être émis pour l’Espace de travail propriétaire du projet.
Le username is ignored par le serveur, mais doit être une chaîne non vide. N’importe quelle valeur de remplacement (par exemple :token) convient.
En-tête Authorization
Pour les appels de service à service, transmettez les identifiants dans l’en-tête Authorization , encodés en base64 sous la forme username:password:
Authorization: Basic base64("token:{access-token}")
Ligne de commande Git
Clonez à l’aide du repositoryUrl renvoyé par l’API. Lorsque vous y êtes invité, saisissez n’importe quel nom d’utilisateur non vide et votre jeton d’accès comme mot de passe :
git clone {repositoryUrl}
# Username: "token" (any non-empty value)
# Password: {access-token}
Configurez un Git credential helper afin que le jeton soit stocké en toute sécurité et que vous ne soyez pas invité à le saisir à chaque opération. Les assistants disponibles varient selon la plateforme (par exemple osxkeychain sur macOS, manager sur Windows) :
git config --global credential.helper osxkeychain
Identifiants dans l’URL du dépôt
Comme alternative à l’invite, Altium 365 accepte les identifiants dans le authority component de l’URL — la syntaxe URI standard username:password@ . L’API ne renvoie jamais d’URL avec les identifiants préremplis ; vous devez donc construire vous-même cette forme : prenez le repositoryUrl renvoyé et insérez {username}:{access-token}@ immédiatement après https://.
git clone https://token:{access-token}@<returned-url>
# <returned-url> is the repositoryUrl with the leading "https://" removed
Le nom d’utilisateur est ignoré (n’importe quelle valeur non vide) ; le mot de passe est le même jeton d’accès (JWT) que celui utilisé dans les méthodes ci-dessus.
Étape 3 : Utilisation du dépôt
Une fois cloné, le dépôt se comporte comme n’importe quel dépôt Git distant standard :
cd <your-repository>
# Make changes, then push as usual
git add .
git commit -m "Update firmware sources"
git push
Un jeton d’accès invalide ou expiré entraîne l’échec des opérations Git avec une erreur d’authentification :
git clone {repositoryUrl}
# provide credentials when prompted
Cloning into '<your-repository>'...
bad input: 07KCg
fatal: Authentication failed for '{repositoryUrl}'
Sécurité
-
Traitez le jeton d’accès comme un mot de passe. Ne le validez pas dans le contrôle de code source et ne l’intégrez pas dans du code côté client.
-
Préférez un gestionnaire d’identifiants à l’intégration du jeton dans l’URL de clonage, afin qu’il ne soit pas écrit dans
.git/configou dans l’historique de votre shell. -
Utilisez des jetons de courte durée pour l’automatisation. Pour les services CI/CD et les services en arrière-plan, obtenez un jeton d’accès de courte durée à partir d’un jeton d’actualisation afin que l’identifiant transmis avec chaque requête ait une fenêtre d’exposition limitée. Voir Using a Refresh Token.
Limites
Pour garder le dépôt du projet rapide et fiable, le serveur Git rejette les grandes archives compressées : .zip, .7z et .rar fichiers de plus de 256 Mo. Un push qui inclut un tel fichier est rejeté :
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
Voir KB: Cannot save project due to Git error with status code 471 pour plus de détails sur cette erreur dans le contexte d’Altium Designer.