Dostęp Git do projektu
Altium 365 może hostować repozytorium Git dla plików źródłowych Twojego projektu. Altium Designer współpracuje z tymi repozytoriami jako natywny klient, ale możesz też pracować z nimi jak z każdym innym zdalnym repozytorium Git — clone, pull, push itd. przy użyciu standardowego klienta Git.
Ta strona pokazuje, jak:
-
Odkryć adres URL repozytorium projektu za pomocą interfejsu API Altium 365.
-
Uwierzytelniać żądania Git przy użyciu tokenu dostępu Altium 365.
-
Pracować z repozytorium Git
Krok 1: Pobierz adres URL repozytorium
Szczegóły repozytorium są udostępniane przez interfejs API Altium 365. Wykonaj zapytanie o swoje projekty, odczytaj pole repositoryUrl i użyj go jako zdalnego repozytorium Git.
Zobacz Tokens , aby uzyskać szczegółowe informacje o pozyskiwaniu i używaniu tokenów Altium 365. Jeśli dopiero zaczynasz pracę z API, zacznij od Altium 365 API Quick Start Guide.
Projekty sprzętowe
Projekty sprzętowe (PCB) udostępniają pola repozytorium przez desProjects:
query {
desProjects {
nodes {
repositoryUrl
}
}
}
Projekty programowe
Projekty programowe udostępniają te same pola przez sftSoftwareProjects:
query {
sftSoftwareProjects {
repositoryUrl
}
}
Pola odpowiedzi
Oba zapytania zwracają te same pola repozytorium:
| Twoja aplikacja | Opis |
repositoryUrl |
Adres URL zdalnego repozytorium Git. Traktuj go jako wartość nieprzezroczystą — pobierz go z API i użyj bez zmian. |
Na przykład odpowiedź dla projektu sprzętowego:
{
"data": {
"desProjects": {
"nodes": [
{
"repositoryUrl": "{repositoryUrl}"
}
]
}
}
}
Krok 2: Uwierzytelnianie
Repozytoria Git w Altium 365 używają uwierzytelniania basic. Użyj swojego tokenu API Altium 365 access token jako hasła. Token musi być wydany dla Workspace, do którego należy projekt.
Pole username is ignored jest ignorowane przez serwer, ale musi być niepustym ciągiem znaków. Działa dowolna wartość zastępcza (na przykład: token).
Nagłówek Authorization
W przypadku wywołań service-to-service przekaż poświadczenia w nagłówku Authorization , zakodowane w base64 jako username:password:
Authorization: Basic base64("token:{access-token}")
Wiersz poleceń Git
Sklonuj repozytorium, używając wartości repositoryUrl zwróconej przez API. Po wyświetleniu monitu wprowadź dowolną niepustą nazwę użytkownika, a jako hasło — swój token dostępu:
git clone {repositoryUrl}
# Username: "token" (any non-empty value)
# Password: {access-token}
Skonfiguruj Git credential helper, aby token był przechowywany bezpiecznie i aby nie pojawiał się monit przy każdej operacji. Dostępne mechanizmy pomocnicze różnią się w zależności od platformy (na przykład osxkeychain w macOS, manager w Windows):
git config --global credential.helper osxkeychain
Poświadczenia w adresie URL repozytorium
Jako alternatywę dla monitu Altium 365 akceptuje poświadczenia w komponencie authority adresu URL — zgodnie ze standardową składnią URI username:password@. API nigdy nie zwraca adresu URL z wcześniej wypełnionymi poświadczeniami, więc musisz samodzielnie zbudować tę postać: weź zwrócone repositoryUrl i wstaw {username}:{access-token}@ bezpośrednio po https://.
git clone https://token:{access-token}@<returned-url>
# <returned-url> is the repositoryUrl with the leading "https://" removed
Nazwa użytkownika jest ignorowana (dowolna niepusta wartość); hasłem jest ten sam token dostępu (JWT), który jest używany w opisanych wyżej metodach.
Krok 3: Praca z repozytorium
Po sklonowaniu repozytorium zachowuje się jak każde standardowe zdalne repozytorium Git:
cd <your-repository>
# Make changes, then push as usual
git add .
git commit -m "Update firmware sources"
git push
Nieprawidłowy lub wygasły token dostępu powoduje, że operacje Git kończą się błędem uwierzytelniania:
git clone {repositoryUrl}
# provide credentials when prompted
Cloning into '<your-repository>'...
bad input: 07KCg
fatal: Authentication failed for '{repositoryUrl}'
Zabezpieczenia
-
Traktuj token dostępu jak hasło. Nie zapisuj go w systemie kontroli źródła ani nie osadzaj w kodzie po stronie klienta.
-
Preferuj credential helper zamiast osadzania tokenu w adresie URL klonowania, aby nie został zapisany w
.git/configani w historii powłoki. -
W automatyzacji używaj tokenów krótkotrwałych. W przypadku CI/CD i usług działających w tle uzyskuj krótkotrwały token dostępu z tokenu odświeżania, aby poświadczenie przesyłane z każdym żądaniem miało ograniczone okno ekspozycji. Zobacz Using a Refresh Token.
Ograniczenia
Aby repozytorium projektu działało szybko i niezawodnie, serwer Git odrzuca duże skompresowane archiwa: pliki .zip, .7z i .rar większe niż 256 MB. Wypchnięcie zawierające taki plik zostanie odrzucone:
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
Zobacz KB: Cannot save project due to Git error with status code 471 , aby uzyskać szczegóły tego błędu w kontekście Altium Designer.