Accesso Git al progetto

Altium 365 può ospitare un repository Git per i file sorgente del tuo progetto. Altium Designer funziona con questi repository come un client nativo, ma puoi anche utilizzarli come qualsiasi altro remote Git — clonepullpush, ecc. con il client Git standard.

Questa pagina mostra come:

  1. Individuare l'URL del repository di un progetto tramite l'API di Altium 365.

  2. Autenticare le richieste Git utilizzando un token di accesso Altium 365.

  3. Lavorare con il repository Git

Passaggio 1: Ottenere l'URL del repository

I dettagli del repository sono esposti tramite l'API di Altium 365. Interroga i tuoi progetti, leggi il campo repositoryUrl e usalo come remote Git. 

Tratta repositoryUrl come un valore opaco. Richiedilo tramite l'API e usalo esattamente come restituito — l'API è l'unica fonte attendibile su dove si trova un repository. Non costruire, analizzare o codificare in modo statico gli URL dei repository.

Vedi Tokens per i dettagli su come acquisire e utilizzare i token di Altium 365. Se non conosci ancora l'API, inizia con la Altium 365 API Quick Start Guide.

Progetti hardware

I progetti hardware (PCB) espongono i campi del repository tramite desProjects:

query {
  desProjects {
    nodes {
      repositoryUrl
    }
  }
}

Progetti software

I progetti software espongono gli stessi campi tramite sftSoftwareProjects:

query {
  sftSoftwareProjects {
    repositoryUrl
  }
}

Campi della risposta

Entrambe le query restituiscono gli stessi campi del repository:

La tua applicazione Descrizione
repositoryUrl L'URL del remote Git per il repository. Trattalo come un valore opaco — richiedilo tramite l'API e usalo così com'è.

Ad esempio, una risposta di un progetto hardware:

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

This page covers projects backed by Altium-hosted Git repositories. I repository ospitati altrove non rientrano nell'ambito di questa guida.

Passaggio 2: Autenticazione

I repository Git di Altium 365 utilizzano l'autenticazione di base. Usa il tuo token API di accesso di Altium 365 access token come password. Il token deve essere emesso per il Workspace proprietario del progetto.

Il username is ignored dal server, ma deve essere una stringa non vuota. Qualsiasi segnaposto (ad esempio: token) va bene.

Header Authorization

Per le chiamate service-to-service, passa le credenziali nell'header Authorization , codificate in base64 come username:password:

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

Riga di comando Git

Esegui il clone usando il repositoryUrl restituito dall'API. Quando richiesto, inserisci un nome utente qualsiasi non vuoto e il tuo token di accesso come password:

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

Configura un Git credential helper in modo che il token venga memorizzato in modo sicuro e non ti venga richiesto a ogni operazione. Gli helper disponibili variano in base alla piattaforma (ad esempio osxkeychain su macOS, manager su Windows):

git config --global credential.helper osxkeychain

Credenziali nell'URL del repository

In alternativa al prompt, Altium 365 accetta le credenziali nel componente authority dell'URL — la sintassi URI standard username:password@. L'API non restituisce mai un URL con credenziali precompilate, quindi questa forma va costruita manualmente: prendi il valore repositoryUrl restituito e inserisci {username}:{access-token}@ subito dopo https://.

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

Il nome utente viene ignorato (qualsiasi valore non vuoto); la password è lo stesso token di accesso (JWT) utilizzato nei metodi sopra.

Secondo lo standard URI, eventuali caratteri speciali nello userinfo devono essere percent-encoded — ad esempio @ diventa %40. Questo non ha effetto per token:{access-token}  esempio sopra, ma è importante se usi un altro valore (come un indirizzo email) come nome utente.

Passaggio 3: Lavorare con il repository

Una volta clonato, il repository si comporta come qualsiasi remote Git standard:

cd <your-repository>

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

La piattaforma tiene traccia delle modifiche nel branch master del repository del progetto. Esegui il push delle modifiche che vuoi far recepire al progetto su master

Un token di accesso non valido o scaduto fa fallire le operazioni Git con un errore di autenticazione:

git clone {repositoryUrl}
# provide credentials when prompted

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

Sicurezza

  • Tratta il token di accesso come una password. Non eseguirne il commit nel controllo del codice sorgente e non incorporarlo nel codice lato client.

  • Preferisci un credential helper all'inserimento del token nell'URL di clone, in modo che non venga scritto in .git/config o nella cronologia della shell.

  • Usa token a breve durata per l'automazione. Per CI/CD e servizi in background, ottieni un token di accesso a breve durata da un refresh token, così la credenziale che accompagna ogni richiesta ha una finestra di esposizione limitata. Vedi Using a Refresh Token.

Limiti

Tieni i file binari di grandi dimensioni fuori dal repository ed esegui il commit solo dei file sorgente necessari al progetto

Per mantenere il repository del progetto veloce e affidabile, il server Git rifiuta archivi compressi di grandi dimensioni: file .zip, .7z e .rar più grandi di 256 MB. Un push che include uno di questi file viene rifiutato:

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

Vedi KB: Cannot save project due to Git error with status code 471 per i dettagli di questo errore nel contesto di Altium Designer.

Vedi anche

AI-LocalizedLocalizzato tramite A
Se trovi un problema, seleziona il testo/l’immagine e premi Ctrl + Enter per inviarci il tuo feedback.
Contenuto