Github'daki dosya yolunu alamıyorum

Pyqt5 ile yaptığım masaüstü uygulamam için mevcut sürüm ile github reposundaki versiyon.txt adlı dosyadan aldığım versiyonu karşılaştırıp ona göre güncelleme yapıcaktım. Fakat repodaki version.txt dosyasının path’ni alamadım bir türlü. Raw url’sini aldım fakat urlnin sonundaki token kısa sürede değişiyor. Bu yüzden url bulunamadı hatası veriyor. Bir çözüm yolu var mıdır ?

Kesin birden çok yolu vardır.

En kolayı,

Google’a github getting path yazıp okumak.

Ben sizin yerinize okudum.

Getting permanent links to files - GitHub Docs

Bir tanesini bırakayım.

Diğerlerine de siz bakmak istersiniz belki, bu şekilde deneyerek bir tanesi tutar sanırım.

opencv-python/README.md at b45a6a9f43d29acdea4b4a4e88078fb1923f417b · opencv/opencv-python · GitHub

Mesela github da bir dosyaya gittim, linkte okuduğum gibi Y harfine bastım oluşan linki buraya kopyaladım.

Bakalım zamanla erişilemez hale gelecek mi? Deneyerek görelim. Ne kadar süre sonra kaybolmuştu?

İlk başta olmuştu. Sonra 5 dk dan az bir sürede token değişti. Ve url ye erişemedim.

Dosya linkini Y tuşuna basarak mı oluşturdunuz?

Bakın ben bu şekilde oluşturdum.

Oluşan linkin sonunda token değil dosya ismi var.

Buradaya da bıraktım bakalım erişim sorunu yaşayacak mıyız?

Siz heralde permalinki almışsınız. Ben onu denedim url sıkıntı çıkarmadı ama bu sefer içeriği alamadım. Yani repodaki txt dosyasının permalinkini aldım bu sefer içindeki 1.0 yazısını alamadım.

Evet kalıcı link ile dosyaya erişmek için araştırma yaptınız mı?

bakın. Mecbur beatifulsoup ile ayrıştıracağım.

Araştırdım. Raw ile daha kolay oluyordu. Sonra baktım token değişiyor özel repolarda. Tüm plan gitti :smiley:

Ben olsam kalıcı link ile dosyayı indirmeyi, sonra dosya üzerinde işlem yapmayı tercih ederdim.

Dosyayı nasıl indiricem. Github api ile mi ?

evet wget yada curl ile dosyayı indirip kullanmak daha kolay gibi geldi bana. Aslında tokenları yöneterek raw linkler de uğraşılabilir ama hiç denemediğimden öneremedim.

how to download a file from github using curl Code Example (codegrepper.com)

curl deneyebilir misin?

Tamamdır sonunda hallettim. Github gist kullanarak çok daha kolay. Amacı belirli kod parçacığını veya gömülü kodları gizli veya herkeze açık olarak depolamak. Normal reponun içine versiyon bilgisini veren dosyayı koymak yerine gistin içine koydum. Hem gizli hem kolay. Tokenler ile de uğraşmıyorsun. Teşekkür ederim yardımların için.

1 Beğeni

Umarım işinize yaramıştır.

Basit bir metin dosyası içine basit bir version bilgisi koyup bunu arada indirip kontrol etmek işi geçici çözmek için en basiti.

Size otomatik güncelme için daha profesyonel bir çözüm gerekmekte. İsterseniz, bu otomatik güncelleme işi için daha gelişmiş araçlar araştırabilirsiniz ilerleyen dönemde.

Gist gizli ise uygulama nasıl erişiyor?

Ne gibi :smiley: Başka yöntemleri bilmiyorum. Aydınlatırsanız sevirinirim. Karşıma hep github çıktı güncelleme ve versiyon kontrol için.

Tokeni ilk başta karmaşık ve çözülmesi zor bir şekilde veriyor. Ve bu bir daha değişmiyor. Tokenli raw linkinide verdiğimiz de içeriğini direk olarak alabiliyoruz. Yani raw linkini kimseye vermezsek kimse erişemez içeriğe. Zaten private ve public ayarı var heralde public yapınca tokensiz karmaşık olmayan bulunabilecek bir şekilde veriyor url yi.

Yabancı forumlarda da baktım onlarda aynısını yapıyor. İnternette güncel dosyaları depoluyor ya bir site yapıp onun içine yada github benzeri platformlarda ve uygulama dosyalarının bulunduğu mevcut versiyon ile karşılaştırıp güncelleme sistemi yapıyorlar. Farklı olanı hiç görmedim :smiley:

Uygulamanızın kodu tokeni ve raw linki içeriyor yani, doğru mu? Öyleyse uygulamaya sahip kişiler de bu ikisine sahip demektir. Yani uygulamayı elinde bulunduran herhangi biri gist’e erişebilir.

Uygulamayı dağıtırken kodları ya karmaşık hale getiren bir şey vardı onu kullanıcam yada cxfreeze ile exe ye çevirdiğim zaman gözükmez diye umuyorum.