Giriş yapmadınız.

#1 29.05.2019 16:41:27

sercanozen
Üye
Yer: Düzce - İstanbul
Kayıtlı: 02.06.2018
Mesajlar: 9

Git İle Otomatik Yayına Geçme

Selamlar,

Git üzerinde 3 adet branchim var. Development, Test, Master

Test ve Master branchlerim online ortamda olmasını istiyorum. GitLab kullanmaktayım. GitHub'ta yer yer kullanıyorum. Test ve Masterla merge ettiğimde otomatik olarak yayına çıksın istiyorum.

Umarım derdimi anlatabilmişimdir. smile

Otomatik yayınlama işlemini nasıl yapmam gerekiyor. Webhook a rastladım ve biraz araştırdım ancak çözüme ulaşamadım.

Yardımlarınızı rica ediyorum.

Çevrimdışı

#2 29.05.2019 17:04:42

deathisonitsway
Üye
Kayıtlı: 01.02.2016
Mesajlar: 463

Yanıt: Git İle Otomatik Yayına Geçme

Bunlar için çeşitli deployment araçları vardır.Basic olanı webhooktur.Bu bölümde tanımlayacağınız bir post urlsine,belirlediğiniz branch için push geldiğinde github yada benzeri firmalar post atar ve sizde bu belirlediğiniz post adresinde hayal edebildiğiniz herşeyi yapabilirsiniz.

Örneğin; https://symfony.com/doc/current/components/process.html

bu componenti kullanarak git komutu çalıştırabilirsiniz.


Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.

Çevrimdışı

#3 29.05.2019 17:42:05

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,675
Website

Yanıt: Git İle Otomatik Yayına Geçme

Webhook isteği POST ile size php://input formatında veri gönderir. Şu şekilde o veriye ulaşırsınız:

$payload = json_decode(file_get_contents('php://input'));
// ya da Laravel içerisinde
$payload = json_decode($request->getContent());

Örneğin:

Route::post('deploy')->uses('[email protected]');

// DeployController.php
public function deploy(Request $request)
{
    $payload = json_decode($request->getContent());

    // Burada gelen veriyi dump ile alıp analiz edin, ne geliyor neler işinize yarar vs öğrenin.
    // Sonra deathisonitsway'in dediği gibi Process ile git pull yaptırabilirsiniz.
    $process = new \Symfony\Component\Process\Process('git pull'); // ya da git pull origin master
    $process->run();
}

Burdan yola çıkarak bir deployment/update mantığı kurmalısınız.

Çevrimdışı

#4 29.05.2019 22:06:17

sercanozen
Üye
Yer: Düzce - İstanbul
Kayıtlı: 02.06.2018
Mesajlar: 9

Yanıt: Git İle Otomatik Yayına Geçme

Çok teşekkür ederim uygulamaya çalışacağım.

Çevrimdışı

#5 30.05.2019 08:27:35

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 59

Yanıt: Git İle Otomatik Yayına Geçme

gitlabda bir repoya girince sol menüde settings integrations altında webhook ekleyebilirsiniz.

burada x-gitlab-token isimli bir header de gönderiyor gitlab post requestin içinde, bu token ı da siz belirliyorsunuz. post requesti aldığınız yerde bununla güvenlik sağlayabilirsiniz bu token doğru değilse işlemi yapma gibi.

Çevrimdışı

#6 30.05.2019 08:32:25

sercanozen
Üye
Yer: Düzce - İstanbul
Kayıtlı: 02.06.2018
Mesajlar: 9

Yanıt: Git İle Otomatik Yayına Geçme

alihankoc yazdı:

gitlabda bir repoya girince sol menüde settings integrations altında webhook ekleyebilirsiniz.

burada x-gitlab-token isimli bir header de gönderiyor gitlab post requestin içinde, bu token ı da siz belirliyorsunuz. post requesti aldığınız yerde bununla güvenlik sağlayabilirsiniz bu token doğru değilse işlemi yapma gibi.

Teşekkür ederim dikkate alarak kullanacağım. smile

Çevrimdışı

Forum alt kısmı