# CircleCI İş Akışlarıyla Spaces Yönetimi

Uygulamanızı **CircleCI iş akışı** ile GitHub depolamanızla senkronize tutabilirsiniz.

[CircleCI](https://circleci.com), yazılım geliştirme sürecini otomatikleştirmeye yardımcı olan sürekli entegrasyon ve sürekli dağıtım (CI/CD) platformudur. [CircleCI iş akışı](https://circleci.com/docs/workflows/), yazılım uygulamalarının derlenmesini, test edilmesini ve dağıtılmasını kolaylaştırmak için CircleCI tarafından orkestra edilen, bir yapılandırma dosyasında tanımlanan otomatik görevler kümesidir.

*Not: 10MB'dan büyük dosyalar [git-xet](./xet/using-xet-storage#git-xet) (önerilen) veya Git LFS ile izlenmelidir. Bunlardan hiçbirini kullanmak istemiyorsanız, dosyalarınızı gözden geçirmeniz ve geçmişinizi kontrol etmeniz gerekebilir. Geçmişinizdeki büyük dosyaları kaldırmak için [BFG Repo-Cleaner](https://rtyley.github.io/bfg-repo-cleaner/) gibi bir araç kullanın. BFG Repo-Cleaner, deponuzun yerel bir yedeğini saklar.*

Önce GitHub depolamanızı ve Spaces uygulamanızı birlikte yapılandırın. Spaces uygulamanızı mevcut Git depolamanıza ek bir uzak (remote) olarak ekleyin.

```bash
git remote add space https://huggingface.co/spaces/HF_USERNAME/SPACE_NAME
```

Sonra her şeyi ilk kez senkronize etmek için zorla gönderme (force push) yapın:

```bash
git push --force space main
```

Ardından, `main` git dalınızı Spaces'e göndermek için bir [CircleCI iş akışı](https://circleci.com/docs/workflows/) yapılandırın.

Aşağıdaki örnekte:

* `HF_USERNAME` yerine kullanıcı adınızı ve `SPACE_NAME` yerine Space adınızı yazın.
* [CircleCI'de bir bağlam oluşturun](https://circleci.com/docs/contexts/) ve içine *HF_PERSONAL_TOKEN* adında bir ortam değişkeni ekleyin (istediğiniz herhangi bir adı verebilirsiniz, HF_PERSONAL_TOKEN yerine oluşturduğunuz anahtarı kullanın) ve değer olarak Hugging Face API anahtarınızı girin. Hugging Face API anahtarınızı [Hugging Face profilinizde](https://huggingface.co/settings/tokens) **API Tokens** bölümünde bulabilirsiniz.

```yaml
version: 2.1

workflows:
  main:
    jobs:
      - sync-to-huggingface:
          context:
            - HuggingFace
          filters:
            branches:
              only:
                - main

jobs:
  sync-to-huggingface:
    docker:
      - image: alpine
    resource_class: small
    steps:
      - run: 
          name: install git
          command: apk update && apk add openssh-client git
      - checkout
      - run:
          name: push to Huggingface hub
          command: |
                  git config user.email "<your-email@here>" 
                  git config user.name "<your-identifier>" 
                  git push -f https://HF_USERNAME:${HF_PERSONAL_TOKEN}@huggingface.co/spaces/HF_USERNAME/SPACE_NAME main
```

