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 — clonepullpush itd. przy użyciu standardowego klienta Git.

Ta strona pokazuje, jak:

  1. Odkryć adres URL repozytorium projektu za pomocą interfejsu API Altium 365.

  2. Uwierzytelniać żądania Git przy użyciu tokenu dostępu Altium 365.

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

Traktuj repositoryUrl jako wartość nieprzezroczystą. Pobierz ją z API i użyj dokładnie w takiej postaci, w jakiej została zwrócona — API jest jedynym źródłem prawdy o tym, gdzie znajduje się repozytorium. Nie twórz, nie analizuj ani nie zapisuj na stałe adresów URL repozytorium.

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

This page covers projects backed by Altium-hosted Git repositories. Repozytoria hostowane gdzie indziej nie są objęte tym przewodnikiem.

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.

Zgodnie ze standardem URI wszelkie znaki specjalne w userinfo muszą być kodowane procentowo — na przykład @ staje się %40. Dla token:{access-token}  przykładu powyżej nie ma to znaczenia, ale ma znaczenie, jeśli jako nazwy użytkownika użyjesz innej wartości (np. adresu e-mail).

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

Platforma śledzi zmiany w gałęzi master repozytorium projektu. Wypchnij zmiany, które projekt ma uwzględnić, do gałęzi master

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

Nie przechowuj dużych plików binarnych w repozytorium i zapisuj tylko te pliki źródłowe, których projekt potrzebuje

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.

Zobacz także

AI-LocalizedTłumaczenie SI
Jeśli znajdziesz błąd, zaznacz tekst/obraz i naciśnij Ctrl + Enter aby wysłać nam wiadomość.
Content