Skip to main content
Bu özellik ayaka-notes/ayakaleaf-pro tarafından geliştirilmiş ve yu-i-i/overleaf-cep tarafından değiştirilmiştir. v6.2.0 ve sonrasında sunulmuştur. Hâlâ beta aşamasındadır. Herhangi bir sorun yaşarsanız geri bildiriminize ihtiyacımız var.

GitHub Senkronizasyonunu Kurma

GitHub Senkronizasyonunu kullanmadan önce git-bridge özelliğini etkinleştirmeniz gerekir.
config/overleaf.rc
GitHub OAuth uygulamanızı oluşturmak için geliştirici ayarlarını ziyaret edin ve CLIENT_ID ile SECRET değerlerinizi kopyalayın. Notlar: OAuth App’i oluştururken Authorization callback URL alanına ${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback girin. Ayakaleaf Pro aynı adresi OVERLEAF_SITE_URL değerinden oluşturur; bu nedenle config/variables.env içinde bunun için ayarlanacak bir şey yoktur. Ardından aşağıdaki ayarları Overleaf ortam değişkeni dosyalarınıza ekleyin.
config/variables.env
GitHub OAuth geri çağırma URL’sini yapılandırmadan önce OVERLEAF_SITE_URL değerinin doğru ayarlandığından emin olun.
Ağ erişiminin kısıtlı olduğu bir bölgede bulunuyorsanız, GitHub’a erişmek için bir proxy yapılandırmanız gerekebilir. Şu ortam değişkenini ayarlayın: GITHUB_SYNC_PROXY_URL=http://10.0.0.1:10808. Lütfen proxy kullanımınızın yerel yasa ve düzenlemelere uygun olduğundan emin olun.
GITHUB_SYNC_PROXY_URL standart bir HTTP/HTTPS ileri proxy’si olmalıdır (ör. Clash’in HTTP portu). gh-proxy.org gibi GitHub indirme aynaları desteklenmez.
Proxy ana bilgisayarı için 127.0.0.1 kullanmayın. Proxy ana sunucuda çalışıyorsa, sunucunun LAN IP adresini (192.168.1.xx gibi) kullanın ve proxy’nin yerel ağdaki cihazlardan gelen bağlantıları kabul edecek şekilde yapılandırıldığından emin olun.

GitHub Enterprise

GitHub Enterprise desteği v6.3.1 ve sonrasında sunulmuştur. Önceki sürümler yalnızca github.com adresine bağlanır ve aşağıdaki değişkenlerin hiçbir etkisi yoktur.
GitHub Senkronizasyonu varsayılan olarak github.com adresine bağlanır. GitHub Enterprise Server (kendi barındırdığınız) veya veri yerleşimli GitHub Enterprise Cloud (GHE.com) kullanmak için GITHUB_SYNC_URL değerini örneğinizin web adresine, yani depoları tarayıcıda açtığınız adrese ayarlayın.
config/variables.env
REST ve GraphQL API uç noktaları, GitHub CLI’nin yaptığı gibi GITHUB_SYNC_URL değerinden türetilir: API uç noktalarını yalnızca örneğiniz bunları başka bir yerde sunuyorsa (örneğin bir API ağ geçidinin arkasında) ayarlayın:
  • OAuth uygulamasını kurumsal örneğinizde oluşturun (Settings → Developer settings → OAuth Apps); github.com üzerinde oluşturulmuş bir uygulama orada çalışmaz. Geri çağırma URL’si aynıdır: ${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback.
  • GITHUB_SYNC_URL yalnızca web adresidir. Bunu https://api.github.com veya https://HOST/api/v3 gibi bir API adresine ayarlamayın ve bir organizasyon yolu eklemeyin.
  • Üç adresin tümü aynı GitHub örneğini göstermelidir.
Örneğiniz özel bir CA’dan alınmış bir sertifika kullanıyorsa, CA sertifikasını konteynere bağlayın ve NODE_EXTRA_CA_CERTS değişkenini bu dosyayı gösterecek şekilde ayarlayın, ör. NODE_EXTRA_CA_CERTS=/var/lib/overleaf/certs/github-ca.pem.
Bağlanan hesaplar ve projeler, bağlandıkları örneğe aittir. GITHUB_SYNC_URL değerini başka bir örneğe geçirmeden önce kullanıcılardan GitHub hesaplarının ve projelerinin bağlantısını kaldırmalarını isteyin.

Kimler bağlayabilir ve senkronize edebilir

Overleaf Cloud’da olduğu gibi, bir projeyi bir GitHub deposuna yalnızca proje sahibi bağlayabilir. Bağlandıktan sonra, düzenleme erişimine sahip her ortak çalışan projeyi senkronize edebilir.
  • Overleaf, GitHub ile senkronizasyonu yapan kullanıcının GitHub hesabı üzerinden iletişim kurar; bu nedenle senkronizasyon yapan her ortak çalışan kendi GitHub hesabını bağlar ve deponun varsayılan dalına gönderme (push) izni olması gerekir.
  • Yalnızca görüntüleme erişimine sahip ortak çalışanlar, proje için GitHub Senkronizasyonunu kullanamaz.

Q&A

Yanıt: Düzenleyicide Integrations bölümünü açın ve GitHub öğesine tıklayın. GitHub hesabınız henüz bağlı değilse önce Link to your GitHub account öğesine tıklayın. Export Project to GitHub bölümünde bir depo adı girin, Repository visibility altında Private seçeneğini belirleyin ve Create a GitHub repository öğesine tıklayın.Bundan sonra aynı kart, GitHub’daki yeni commit’leri listeleyen Sync with GitHub bölümünü açar. Overleaf değişikliklerinizi varsayılan dala commit etmek ve GitHub değişikliklerini projeye almak için Sync öğesine tıklayın. Senkronizasyon iki yönlüdür ancak yalnızca biri Sync öğesine tıkladığında çalışır; zamanlanmış bir senkronizasyon yoktur. Her iki tarafta da değişiklik olduğunda Overleaf, overleaf-YYYY-MM-DD-HHMMSS adlı geçici bir dal üzerinden birleştirme yapar. Bu birleştirmede bir çakışma olursa dalı GitHub’da kendiniz birleştirin, ardından I have manually merged. Continue öğesine tıklayın.
Yanıt: Önermiyoruz. Overleaf zorla gönderimi algılar, bu konuda uyarır ve yeniden yazılmış dalı devralarak son senkronizasyondan bu yana Overleaf’te yapılan değişiklikleri birleştirir. Sürprizlerle karşılaşmamak için depo ayarlarında varsayılan dalı zorla gönderimlere karşı koruyun.
Yanıt: Lütfen yapmayın. Overleaf, projenin bağlandığı dalla senkronize olmaya devam eder. Başka bir dalla senkronize etmek için projenin bağlantısını kaldırın, ardından depoyu yeni bir projeye içe aktarın; yeni proje mevcut varsayılan dalı kullanır.
Yanıt: Bu mesaj, sunucunun GitHub’a ulaşamadığı anlamına gelir; örneğin bir ağ, DNS, TLS veya proxy sorunu nedeniyle. Tam hatayı görmek için bin/logs web komutunu çalıştırın. Sunucunun GitHub’a ulaşmak için bir proxy’ye ihtiyacı varsa GITHUB_SYNC_PROXY_URL değerini ayarlayın.
Yanıt: Evet. GitHub senkronizasyonu süresi dolan token’ları yenilemez. Süresi dolan token’lar etkinken kullanıcıların, token’larının süresi her dolduğunda GitHub’ı yeniden bağlaması gerekir.
Yanıt: Hayır. Bir hesabın bağlanması kullanıcının tarayıcısı üzerinden gerçekleşir; bu nedenle OAuth geri çağırma adresinin yalnızca kullanıcının tarayıcısında açılabilmesi yeterlidir. Sunucunun yalnızca GitHub’ya ulaşabilmesi gerekir; bunun için bir proxy gerekiyorsa GITHUB_SYNC_PROXY_URL değerini ayarlayın. GitHub örneğinizi hiçbir zaman çağırmaz: bir proje yalnızca bir kullanıcı onu düzenleyicide senkronize ettiğinde senkronize edilir.
Yanıt: Şunları sırayla kontrol edin:
  • Overleaf’i tam olarak OVERLEAF_SITE_URL içinde ayarlanan adreste açın. GitHub sizi ${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback adresine geri gönderir ve oturumunuz yalnızca başladığınız adreste geçerlidir; bu nedenle başka bir ana makine, IP veya bağlantı noktası oturum açma sayfasında ya da “Restricted, sorry you don’t have permission to load this page” mesajında sona erer.
  • OAuth App’in Authorization callback URL değeri aynı şema, ana makine ve bağlantı noktasıyla ${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback olmalıdır.
  • Failed to obtain access token from Git server içeren bir hata sayfası, GitHub’ın bir belirteç döndürmediği anlamına gelir: GITHUB_SYNC_CLIENT_ID ve GITHUB_SYNC_CLIENT_SECRET değerlerini ve sunucunun GitHub’a erişebildiğini kontrol edin. Hatanın tamamını görmek için bin/logs web komutunu çalıştırın.
config/variables.env dosyasını değiştirdikten sonra konteynerleri yeniden oluşturmak için bin/up komutunu çalıştırın.
Yanıt: Overleaf, deponun varsayılan dalındaki en son commit’in zip arşivini içe aktarır ve bu hata, arşivde Overleaf’in içe aktarabileceği hiçbir dosya olmadığı anlamına gelir. GitHub’da varsayılan dalı kontrol edin:
  • Dal, yalnızca Overleaf’in içe aktarma sırasında atladığı dosyaları değil, proje dosyalarını da içermelidir: atlanan dosyalar .gitignore ve .gitmodules gibi nokta dosyaları (.latexmkrc korunur) ile *.aux, *.log, *.bbl, *.synctex.gz, *.doc ve *.docx gibi derleme dosyalarıdır.
  • Dosyalar yalnızca Git alt modüllerinin içinde olmamalıdır. GitHub’ın arşivi alt modülleri boş klasörler olarak bırakır.
  • Beklediğiniz dosyalar başka bir dalda değil, varsayılan dalda olmalıdır. İçe aktarma her zaman varsayılan dalı kullanır.
Yanıt: V1_HISTORY_URL, bu belgelerin eski sürümlerinde verilen bir değer olan http://sharelatex:3054 olarak ayarlanmıştır. 3054 bağlantı noktası yalnızca konteyner içinde dinleyen project-history hizmetidir; oysa V1_HISTORY_URL değeri history-v1 hizmetini göstermelidir. Overleaf, içe aktarılan deponun her ikili dosyasını (görseller, PDF’ler) history-v1 hizmetine kaydeder; bu nedenle içe aktarma başarısız olur. Düzenleyicide böyle bir dosya yüklemek de aynı şekilde başarısız olur. docker-compose.yml dosyanızda sharelatex hizmetinde V1_HISTORY_URL: "http://sharelatex:3100/api" ayarlayın (bkz. Git Entegrasyonu) ve konteyneri yeniden oluşturun. Toolkit bu değeri zaten ayarlar; docker-compose.override.yml dosyasının bunu geçersiz kılmadığından emin olun.
Son değiştirilme tarihi 2 Kasım 2026