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 — clonepullpush, etc. avec le client Git standard.

Cette page explique comment :

  1. Découvrir l’URL du dépôt d’un projet via l’API Altium 365.

  2. Authentifier les requêtes Git à l’aide d’un jeton d’accès Altium 365.

  3. 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. 

Traitez repositoryUrl comme une valeur opaque. Récupérez-la via l’API et utilisez-la exactement telle qu’elle est renvoyée — l’API est l’unique source de vérité quant à l’emplacement du dépôt. Ne construisez pas, n’analysez pas et ne codez pas en dur les URL de dépôt.

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}"
        }
      ]
    }
  }
}

This page covers projects backed by Altium-hosted Git repositories. Les dépôts hébergés ailleurs ne relèvent pas de ce guide.

É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.

Conformément à la norme URI, tous les caractères spéciaux dans les informations utilisateur doivent être encodés en pourcentage — par exemple @ devient %40. Il n’y a aucun effet pour token:{access-token}  l’exemple ci-dessus, mais cela est important si vous utilisez une autre valeur (comme une adresse e-mail) comme nom d’utilisateur.

É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

La plateforme suit les modifications dans la branche master du dépôt du projet. Envoyez dans master les modifications que vous voulez que le projet prenne en compte. 

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/config ou 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

Conservez les gros fichiers binaires en dehors du dépôt et ne validez que les fichiers source dont votre projet a besoin

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.

Voir aussi

AI-LocalizedLocalisé par IA
Si vous trouvez un problème, sélectionnez le texte/l’image et appuyez surCtrl + Enterpour nous envoyer vos commentaires.
Contenu