{"id":29170,"date":"2025-09-08T19:30:28","date_gmt":"2025-09-08T16:30:28","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/"},"modified":"2025-09-08T19:30:28","modified_gmt":"2025-09-08T16:30:28","slug":"makefile-ile-github-actionsi-tam-kontrol-altina-alin","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/","title":{"rendered":"Makefile ile GitHub Actions&#8217;\u0131 Tam Kontrol Alt\u0131na Al\u0131n"},"content":{"rendered":"<p>Makefile ile GitHub Actions&#8217;\u0131 Tam Kontrol Alt\u0131na Al\u0131n<\/p>\n<p>G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor.  Kod yazmak art\u0131k yeterli de\u011fil; kodun test edilmesi, derlenmesi, da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin y\u00f6netimi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor.  Bu noktada Makefile&#8217;lar ve GitHub Actions, i\u015finizi kolayla\u015ft\u0131racak g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak, bu iki teknolojinin birlikte nas\u0131l kullan\u0131laca\u011f\u0131,  onlardan tam verim almak isteyenler i\u00e7in hala belirsiz kalabiliyor. Bu makalede, Makefile&#8217;lar\u0131n g\u00fcc\u00fcn\u00fc GitHub Actions ile birle\u015ftirerek geli\u015ftirme s\u00fcre\u00e7lerinizi tam kontrol alt\u0131n\u0131za alman\u0131n yollar\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.<\/p>\n<h2>Makefile Temelleri: Neden ve Nas\u0131l Kullan\u0131l\u0131r?<\/h2>\n<p>Makefile&#8217;lar, \u00f6zellikle b\u00fcy\u00fck projelerde, derleme ve di\u011fer g\u00f6revleri otomatikle\u015ftirmek i\u00e7in kullan\u0131lan dosyalard\u0131r.  Karma\u015f\u0131k komut dizilerini basit hedeflere indirgeyerek, bir komutla birden fazla i\u015flemi tetiklemenizi sa\u011flarlar.  \u00d6rne\u011fin, <code>make clean<\/code> komutu ile derleme \u00e7\u0131kt\u0131lar\u0131n\u0131z\u0131 temizleyebilir, <code>make build<\/code> ile kodunuzu derleyebilir ve <code>make test<\/code> ile testlerinizi \u00e7al\u0131\u015ft\u0131rabilirsiniz.  Bu yap\u0131, hem geli\u015ftirme s\u00fcrecinizi h\u0131zland\u0131r\u0131r hem de tutarl\u0131l\u0131k sa\u011flar.  Makefile&#8217;lar\u0131n temelinde, hedefler (targets) ve bunlara ula\u015fmak i\u00e7in gereken kurallar (rules) yer al\u0131r.  Bir hedef, genellikle bir dosya veya bir i\u015flemdir.  Kural ise, hedefe ula\u015fmak i\u00e7in y\u00fcr\u00fct\u00fclecek komutlar\u0131 tan\u0131mlar.  \u00d6rne\u011fin, bir <code>executable<\/code> dosyas\u0131n\u0131 olu\u015fturmak i\u00e7in gereken komutlar\u0131 belirten bir kural olu\u015fturabiliriz.<\/p>\n<p>Basit bir Makefile \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-makefile\">hello: hello.c\n\tgcc -o hello hello.c\n\nclean:\n\trm -f hello<\/pre>\n<p><\/code><\/p>\n<p>Bu Makefile, <code>hello<\/code> adl\u0131 bir hedef tan\u0131mlar.  <code>hello.c<\/code> dosyas\u0131 varsa, <code>gcc -o hello hello.c<\/code> komutu \u00e7al\u0131\u015ft\u0131r\u0131larak <code>hello<\/code> adl\u0131 y\u00fcr\u00fct\u00fclebilir dosya olu\u015fturulur.  <code>clean<\/code> hedefi ise, <code>hello<\/code> dosyas\u0131n\u0131 siler.  Bu basit \u00f6rnek, Makefile'lar\u0131n temel mant\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. Daha karma\u015f\u0131k projelerde, hedefler ve kurallar \u00e7ok daha fazla olabilir ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netmek i\u00e7in daha geli\u015fmi\u015f teknikler kullan\u0131l\u0131r. Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">Fatih Soysal'\u0131n bloguna<\/a> g\u00f6z atabilirsiniz.<\/p>\n<h2>GitHub Actions ile S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m (CI\/CD): Ba\u015flang\u0131\u00e7<\/h2>\n<p>GitHub Actions, GitHub'\u0131n sundu\u011fu bir CI\/CD hizmetidir.  Kodunuzu her itti\u011finizde veya pull request olu\u015fturdu\u011funuzda otomatik olarak belirli g\u00f6revleri \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. Bu g\u00f6revler, kodunuzun derlenmesi, test edilmesi, da\u011f\u0131t\u0131m\u0131 ve daha fazlas\u0131n\u0131 i\u00e7erebilir.  GitHub Actions, YAML dosyalar\u0131 kullanarak tan\u0131mlan\u0131r.  Bu dosyalar, \u00e7al\u0131\u015ft\u0131r\u0131lacak ad\u0131mlar\u0131, kullan\u0131lacak ortam\u0131 ve di\u011fer ayarlar\u0131 belirler.  Basit bir GitHub Actions workflow \u00f6rne\u011fi a\u015fa\u011f\u0131daki gibidir:<\/p>\n<pre><code class=\"language-yaml\">name: CI\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\/checkout@v3\n      - run: make build<\/pre>\n<p><\/code><\/p>\n<p>Bu workflow, <code>main<\/code> dal\u0131na her push yap\u0131ld\u0131\u011f\u0131nda <code>build<\/code> adl\u0131 bir job \u00e7al\u0131\u015ft\u0131r\u0131r.  <code>actions\/checkout@v3<\/code> action'\u0131, kodunuzu GitHub deposundan \u00e7eker ve <code>make build<\/code> komutu ile Makefile'\u0131n\u0131zdaki <code>build<\/code> hedefini \u00e7al\u0131\u015ft\u0131r\u0131r. Bu, Makefile'da tan\u0131ml\u0131 olan derleme i\u015flemlerinin otomatik olarak y\u00fcr\u00fct\u00fclmesini sa\u011flar.  Bu basit workflow, GitHub Actions'\u0131n temel mant\u0131\u011f\u0131n\u0131 g\u00f6stermektedir.  Daha karma\u015f\u0131k workflow'lar, farkl\u0131 ortamlarda, farkl\u0131 ad\u0131mlar i\u00e7erebilir ve daha geli\u015fmi\u015f \u00f6zellikleri kullanabilir.<\/p>\n<h2>Makefile ve GitHub Actions'\u0131 Birle\u015ftirme: Uygulama<\/h2>\n<p>Makefile'lar\u0131n g\u00fcc\u00fcyle GitHub Actions'\u0131n otomasyon yeteneklerini birle\u015ftirmek, geli\u015ftirme s\u00fcrecinizde b\u00fcy\u00fck bir verimlilik art\u0131\u015f\u0131 sa\u011flar.  Makefile'da tan\u0131mlad\u0131\u011f\u0131n\u0131z hedefleri, GitHub Actions workflow'lar\u0131n\u0131zda do\u011frudan \u00e7al\u0131\u015ft\u0131rabilirsiniz.  Bu, karma\u015f\u0131k derleme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netimi kolayla\u015ft\u0131r\u0131r ve tutarl\u0131l\u0131\u011f\u0131 sa\u011flar.  \u00d6rne\u011fin, a\u015fa\u011f\u0131daki workflow,  Makefile'da tan\u0131ml\u0131 <code>build<\/code>, <code>test<\/code> ve <code>deploy<\/code> hedeflerini \u00e7al\u0131\u015ft\u0131r\u0131r:<\/p>\n<pre><code class=\"language-yaml\">name: CI\/CD\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\/checkout@v3\n      - run: make build\n\n  test:\n    needs: build\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\/checkout@v3\n      - run: make test\n\n  deploy:\n    needs: test\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\/checkout@v3\n      - run: make deploy<\/pre>\n<p><\/code><\/p>\n<p>Bu workflow'da, <code>build<\/code> job'\u0131 tamamland\u0131ktan sonra <code>test<\/code> job'\u0131, <code>test<\/code> job'\u0131 tamamland\u0131ktan sonra da <code>deploy<\/code> job'\u0131 \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Bu, i\u015fleri s\u0131ral\u0131 bir \u015fekilde y\u00fcr\u00fctmeyi ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netmeyi sa\u011flar.  <code>make deploy<\/code> komutu, da\u011f\u0131t\u0131m i\u015flemlerini ba\u015flat\u0131r. Bu i\u015flemler, kodunuzu bir sunucuya y\u00fckleyebilir, bir Docker image'\u0131 olu\u015fturabilir veya ba\u015fka bir da\u011f\u0131t\u0131m platformu ile etkile\u015fim kurabilir.  Bu yap\u0131, CI\/CD s\u00fcrecinizi tam olarak kontrol alt\u0131na alman\u0131z\u0131 sa\u011flar.<\/p>\n<h2>\u0130leri D\u00fczey Teknikler: Ortam De\u011fi\u015fkenleri ve Ba\u011f\u0131ml\u0131l\u0131klar<\/h2>\n<p>Daha karma\u015f\u0131k projelerde, Makefile'lar\u0131n\u0131za ve GitHub Actions workflow'lar\u0131n\u0131za ortam de\u011fi\u015fkenleri ekleyerek daha esnek bir yap\u0131 olu\u015fturabilirsiniz.  \u00d6rne\u011fin, farkl\u0131 ortamlar i\u00e7in farkl\u0131 komutlar \u00e7al\u0131\u015ft\u0131rmak veya gizli bilgileri g\u00fcvenli bir \u015fekilde y\u00f6netmek i\u00e7in ortam de\u011fi\u015fkenlerinden yararlanabilirsiniz.  GitHub Secrets \u00f6zelli\u011fi, \u015fifreler, API anahtarlar\u0131 gibi gizli bilgileri g\u00fcvenli bir \u015fekilde saklaman\u0131za ve workflow'lar\u0131n\u0131zda kullanman\u0131za olanak tan\u0131r.  A\u015fa\u011f\u0131daki \u00f6rnekte, <code>DATABASE_URL<\/code> ortam de\u011fi\u015fkeni <code>deploy<\/code> hedefinde kullan\u0131l\u0131r:<\/p>\n<pre><code class=\"language-yaml\">jobs:\n  deploy:\n    needs: test\n    runs-on: ubuntu-latest\n    env:\n      DATABASE_URL: ${{ secrets.DATABASE_URL }}\n    steps:\n      - uses: actions\/checkout@v3\n      - run: make deploy<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>DATABASE_URL<\/code> ortam de\u011fi\u015fkeni GitHub Secrets'ten al\u0131n\u0131r ve <code>make deploy<\/code> komutu taraf\u0131ndan kullan\u0131l\u0131r.  Bu sayede, veritaban\u0131 ba\u011flant\u0131 bilgilerinizi do\u011frudan workflow dosyan\u0131za yazman\u0131za gerek kalmaz ve g\u00fcvenlik a\u00e7\u0131\u011f\u0131 riskini azalt\u0131rs\u0131n\u0131z.  Ayr\u0131ca, projelerinizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmek i\u00e7in paket y\u00f6neticileri (npm, pip, Maven vb.) ile entegre bir \u015fekilde \u00e7al\u0131\u015fabilirsiniz.  Bu sayede, her derleme i\u015fleminde gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131n otomatik olarak y\u00fcklenmesini sa\u011flayabilirsiniz.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131: Vaka Analizleri<\/h2>\n<p>Bir e-ticaret uygulamas\u0131 geli\u015ftiriyorsunuz diyelim.  Bu uygulama, \u00f6n u\u00e7 (React), arka u\u00e7 (Node.js) ve veritaban\u0131 (PostgreSQL) bile\u015fenlerinden olu\u015fuyor.  Makefile'lar, her bile\u015fenin ayr\u0131 ayr\u0131 derlenmesi, test edilmesi ve da\u011f\u0131t\u0131m\u0131 i\u00e7in g\u00f6revler tan\u0131mlaman\u0131za olanak tan\u0131r.  GitHub Actions ise, bu g\u00f6revleri otomatik olarak \u00e7al\u0131\u015ft\u0131r\u0131r ve s\u00fcrekli entegrasyon sa\u011flar.  \u00d6rne\u011fin, \u00f6n u\u00e7 koduna yap\u0131lan de\u011fi\u015fiklikler, otomatik olarak derlenir, test edilir ve staging ortam\u0131na da\u011f\u0131t\u0131l\u0131r.  Benzer \u015fekilde, arka u\u00e7 koduna yap\u0131lan de\u011fi\u015fiklikler de otomatik olarak derlenir, test edilir ve staging ortam\u0131na da\u011f\u0131t\u0131l\u0131r.  Bu, h\u0131zl\u0131 ve g\u00fcvenilir bir geli\u015ftirme s\u00fcreci sa\u011flar. Daha fazla geli\u015fmi\u015f senaryolarda, canary deployments, blue\/green deployments veya A\/B testing gibi ileri d\u00fczey da\u011f\u0131t\u0131m tekniklerini kullanabilirsiniz.  Bu teknikler, yeni kod versiyonlar\u0131n\u0131n kademeli olarak yay\u0131nlanmas\u0131n\u0131 ve olas\u0131 sorunlar\u0131n en aza indirilmesini sa\u011flar.<\/p>\n<h2>Performans Optimizasyonu: Makefile'lar ve GitHub Actions'\u0131n Etkin Kullan\u0131m\u0131<\/h2>\n<p>Makefile'lar ve GitHub Actions'\u0131n performans\u0131n\u0131 optimize etmek i\u00e7in \u00e7e\u015fitli teknikler kullanabilirsiniz.  Makefile'lar\u0131n\u0131zda, ba\u011f\u0131ml\u0131l\u0131klar\u0131 do\u011fru bir \u015fekilde tan\u0131mlamak ve gereksiz i\u015flemleri \u00f6nlemek \u00f6nemlidir.  \u00d6rne\u011fin, bir dosya g\u00fcncellenmediyse, ona ba\u011fl\u0131 olan hedeflerin yeniden derlenmesi gerekmez.  Makefile'lar, bu t\u00fcr ba\u011f\u0131ml\u0131l\u0131klar\u0131 otomatik olarak tespit eder ve yaln\u0131zca gerekli i\u015flemleri ger\u00e7ekle\u015ftirir.  GitHub Actions'da ise, i\u015fleri paralel \u00e7al\u0131\u015ft\u0131rmak ve daha h\u0131zl\u0131 \u00e7al\u0131\u015fan action'lar kullanmak performans\u0131 art\u0131rabilir.  Ayr\u0131ca, her i\u015flemin \u00e7\u0131kt\u0131lar\u0131n\u0131 \u00f6nbelle\u011fe alarak, tekrarlanan i\u015flemlerin s\u00fcresini k\u0131saltabilirsiniz.  \u00d6rne\u011fin, ba\u011f\u0131ml\u0131l\u0131klar\u0131n y\u00fcklenmesi uzun s\u00fcr\u00fcyorsa, bu i\u015flemin \u00e7\u0131kt\u0131lar\u0131n\u0131 \u00f6nbelle\u011fe alarak sonraki \u00e7al\u0131\u015ft\u0131rmalarda bu ad\u0131m\u0131 atlayabilirsiniz.  Bu y\u00f6ntemlerle, geli\u015ftirme s\u00fcrecinizi \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131rabilir ve daha verimli hale getirebilirsiniz.<\/p>\n<h2>G\u00fcvenlik Uyar\u0131lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<p><strong>Dikkat:<\/strong>  GitHub Secrets'i kullanarak gizli bilgilerinizi g\u00fcvenli bir \u015fekilde saklay\u0131n.  Asla \u015fifrelerinizi veya API anahtarlar\u0131n\u0131z\u0131 do\u011frudan workflow dosyalar\u0131n\u0131za yazmay\u0131n.  GitHub Actions workflow'lar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irin ve gereksiz izinleri kald\u0131r\u0131n.  Workflow'lar\u0131n\u0131zda, yaln\u0131zca gerekli olan eri\u015fim d\u00fczeylerini verin.  Kodunuzu d\u00fczenli olarak g\u00fcncelleyin ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 giderin.  G\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 \u00f6nlemek i\u00e7in s\u00fcrekli g\u00fcvenlik taramalar\u0131 yap\u0131n ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 tespit etti\u011finizde derhal \u00e7\u00f6z\u00fcm \u00fcretin.  G\u00fcvenli geli\u015ftirme uygulamalar\u0131na uymak, projenizin g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r ve olas\u0131 sald\u0131r\u0131lara kar\u015f\u0131 koruma sa\u011flar.<\/p>\n<h2>\u00d6\u011frenme Yol Haritas\u0131<\/h2>\n<h3>Yeni Ba\u015flayanlar \u0130\u00e7in:<\/h3>\n<p>Makefile'lar\u0131n temel kavramlar\u0131n\u0131 \u00f6\u011frenin (hedefler, kurallar, ba\u011f\u0131ml\u0131l\u0131klar).  Basit bir Makefile olu\u015fturun ve farkl\u0131 hedefleri \u00e7al\u0131\u015ft\u0131r\u0131n.  GitHub Actions'\u0131n temel yap\u0131s\u0131n\u0131 \u00f6\u011frenin (workflow dosyalar\u0131, job'lar, steps).  Basit bir workflow olu\u015fturun ve kodunuzu GitHub deposuna push etmeyi deneyin.  Makefile'\u0131 GitHub Actions ile entegre edin ve basit bir derleme i\u015flemini otomatikle\u015ftirin.<\/p>\n<h3>Orta Seviye:<\/h3>\n<p>Ortam de\u011fi\u015fkenlerini kullanarak Makefile'lar ve workflow'lar\u0131 daha esnek hale getirin.  GitHub Secrets kullanarak gizli bilgileri g\u00fcvenli bir \u015fekilde y\u00f6netin.  Daha geli\u015fmi\u015f Makefile \u00f6zelliklerini (\u00f6rne\u011fin, de\u011fi\u015fkenler, fonksiyonlar) kullan\u0131n.  Farkl\u0131 ortamlar i\u00e7in ayr\u0131 workflow'lar olu\u015fturun (\u00f6rne\u011fin, geli\u015ftirme, test, \u00fcretim).  Paralel i\u015fleme ve \u00f6nbelle\u011fe alma kullanarak performans\u0131 art\u0131r\u0131n.<\/p>\n<h3>\u0130leri Seviye:<\/h3>\n<p>Karma\u015f\u0131k CI\/CD s\u00fcre\u00e7leri i\u00e7in geli\u015fmi\u015f GitHub Actions \u00f6zelliklerini kullan\u0131n (\u00f6rne\u011fin, matrix build'ler, ko\u015fullu ad\u0131mlar).  Docker ve Kubernetes ile entegre bir CI\/CD pipeline olu\u015fturun.  Canary deployments, blue\/green deployments gibi geli\u015fmi\u015f da\u011f\u0131t\u0131m tekniklerini uygulay\u0131n.  G\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 tespit etmek ve \u00f6nlemek i\u00e7in g\u00fcvenlik taramalar\u0131 entegre edin.  Kendi \u00f6zel action'lar\u0131n\u0131z\u0131 olu\u015fturun ve bunlar\u0131 projenizde kullan\u0131n.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Makefile'lar ve GitHub Actions, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde b\u00fcy\u00fck bir rol oynar.  Bu iki teknolojinin birlikte kullan\u0131lmas\u0131, geli\u015ftirme s\u00fcre\u00e7lerinin otomatikle\u015ftirilmesi, g\u00fcvenilirli\u011finin art\u0131r\u0131lmas\u0131 ve geli\u015ftirici verimlili\u011finin iyile\u015ftirilmesi a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck avantajlar sa\u011flar.  Bu makalede, Makefile'lar ve GitHub Actions'\u0131n temel kavramlar\u0131n\u0131, uygulamal\u0131 \u00f6rnekleri ve ileri d\u00fczey tekniklerini ele ald\u0131k.  Umar\u0131z bu bilgiler, projelerinizde bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 etkili bir \u015fekilde kullanman\u0131zda size yard\u0131mc\u0131 olur.  Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">Fatih Soysal'\u0131n bloguna<\/a> g\u00f6z atabilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular:<\/h3>\n<ul>\n<li><strong>Soru:<\/strong> Makefile'lar \u00f6\u011frenmesi zor mu?<\/li>\n<li><strong>Cevap:<\/strong>  Temelleri \u00f6\u011frenmek nispeten kolayd\u0131r, ancak karma\u015f\u0131k projelerde daha geli\u015fmi\u015f \u00f6zellikler gerektirir.<\/li>\n<li><strong>Soru:<\/strong> GitHub Actions \u00fccretli mi?<\/li>\n<li><strong>Cevap:<\/strong>  Belirli bir kullan\u0131m kotas\u0131 dahilinde \u00fccretsizdir,  limitlerin \u00fcst\u00fcne \u00e7\u0131k\u0131ld\u0131\u011f\u0131nda \u00fccretlendirilir.<\/li>\n<li><strong>Soru:<\/strong>  Her projede Makefile kullanmal\u0131 m\u0131y\u0131m?<\/li>\n<li><strong>Cevap:<\/strong>  K\u00fc\u00e7\u00fck projelerde gerekmeyebilir, ancak orta ve b\u00fcy\u00fck projelerde mutlaka kullan\u0131lmas\u0131 tavsiye edilir.<\/li>\n<li><strong>Soru:<\/strong> GitHub Actions ile hangi da\u011f\u0131t\u0131m platformlar\u0131n\u0131 entegre edebilirim?<\/li>\n<li><strong>Cevap:<\/strong>  AWS, Azure, Google Cloud Platform ve daha bir\u00e7ok platform ile entegrasyon m\u00fcmk\u00fcnd\u00fcr.<\/li>\n<\/ul>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"Makefile ile GitHub Actions&#8217;\u0131 Tam Kontrol Alt\u0131na Al\u0131n G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor. Kod yazmak art\u0131k yeterli&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-29170","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Makefile ile GitHub Actions&#039;\u0131 Tam Kontrol Alt\u0131na Al\u0131n<\/title>\n<meta name=\"description\" content=\"G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor. Kod yazmak art\u0131k yeterli de\u011fil; kodun test edilmesi, derlenmesi, da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin y\u00f6netimi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor. Bu noktada Makefile&#039;lar ve GitHub Actions, i\u015finizi kolayla\u015ft\u0131racak g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak, bu iki teknolojinin birlikte nas\u0131l kullan\u0131laca\u011f\u0131, onlardan tam verim almak isteyenler i\u00e7in hala belirsiz kalabiliyor. Bu makalede, Makefile&#039;lar\u0131n g\u00fcc\u00fcn\u00fc GitHub Actions ile birle\u015ftirerek geli\u015ftirme s\u00fcre\u00e7lerinizi tam kontrol alt\u0131n\u0131za alman\u0131n yollar\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Makefile ile GitHub Actions&#039;\u0131 Tam Kontrol Alt\u0131na Al\u0131n\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor. Kod yazmak art\u0131k yeterli de\u011fil; kodun test edilmesi, derlenmesi, da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin y\u00f6netimi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor. Bu noktada Makefile&#039;lar ve GitHub Actions, i\u015finizi kolayla\u015ft\u0131racak g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak, bu iki teknolojinin birlikte nas\u0131l kullan\u0131laca\u011f\u0131, onlardan tam verim almak isteyenler i\u00e7in hala belirsiz kalabiliyor. Bu makalede, Makefile&#039;lar\u0131n g\u00fcc\u00fcn\u00fc GitHub Actions ile birle\u015ftirerek geli\u015ftirme s\u00fcre\u00e7lerinizi tam kontrol alt\u0131n\u0131za alman\u0131n yollar\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-08T16:30:28+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Makefile ile GitHub Actions&#8217;\u0131 Tam Kontrol Alt\u0131na Al\u0131n\",\"datePublished\":\"2025-09-08T16:30:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/\"},\"wordCount\":1817,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/\",\"name\":\"Makefile ile GitHub Actions'\u0131 Tam Kontrol Alt\u0131na Al\u0131n\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-08T16:30:28+00:00\",\"description\":\"G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor. Kod yazmak art\u0131k yeterli de\u011fil; kodun test edilmesi, derlenmesi, da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin y\u00f6netimi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor. Bu noktada Makefile'lar ve GitHub Actions, i\u015finizi kolayla\u015ft\u0131racak g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak, bu iki teknolojinin birlikte nas\u0131l kullan\u0131laca\u011f\u0131, onlardan tam verim almak isteyenler i\u00e7in hala belirsiz kalabiliyor. Bu makalede, Makefile'lar\u0131n g\u00fcc\u00fcn\u00fc GitHub Actions ile birle\u015ftirerek geli\u015ftirme s\u00fcre\u00e7lerinizi tam kontrol alt\u0131n\u0131za alman\u0131n yollar\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Makefile ile GitHub Actions&#8217;\u0131 Tam Kontrol Alt\u0131na Al\u0131n\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Makefile ile GitHub Actions'\u0131 Tam Kontrol Alt\u0131na Al\u0131n","description":"G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor. Kod yazmak art\u0131k yeterli de\u011fil; kodun test edilmesi, derlenmesi, da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin y\u00f6netimi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor. Bu noktada Makefile'lar ve GitHub Actions, i\u015finizi kolayla\u015ft\u0131racak g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak, bu iki teknolojinin birlikte nas\u0131l kullan\u0131laca\u011f\u0131, onlardan tam verim almak isteyenler i\u00e7in hala belirsiz kalabiliyor. Bu makalede, Makefile'lar\u0131n g\u00fcc\u00fcn\u00fc GitHub Actions ile birle\u015ftirerek geli\u015ftirme s\u00fcre\u00e7lerinizi tam kontrol alt\u0131n\u0131za alman\u0131n yollar\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/","og_locale":"tr_TR","og_type":"article","og_title":"Makefile ile GitHub Actions'\u0131 Tam Kontrol Alt\u0131na Al\u0131n","og_description":"G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor. Kod yazmak art\u0131k yeterli de\u011fil; kodun test edilmesi, derlenmesi, da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin y\u00f6netimi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor. Bu noktada Makefile'lar ve GitHub Actions, i\u015finizi kolayla\u015ft\u0131racak g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak, bu iki teknolojinin birlikte nas\u0131l kullan\u0131laca\u011f\u0131, onlardan tam verim almak isteyenler i\u00e7in hala belirsiz kalabiliyor. Bu makalede, Makefile'lar\u0131n g\u00fcc\u00fcn\u00fc GitHub Actions ile birle\u015ftirerek geli\u015ftirme s\u00fcre\u00e7lerinizi tam kontrol alt\u0131n\u0131za alman\u0131n yollar\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-08T16:30:28+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Makefile ile GitHub Actions&#8217;\u0131 Tam Kontrol Alt\u0131na Al\u0131n","datePublished":"2025-09-08T16:30:28+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/"},"wordCount":1817,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/","url":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/","name":"Makefile ile GitHub Actions'\u0131 Tam Kontrol Alt\u0131na Al\u0131n","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-08T16:30:28+00:00","description":"G\u00fcn\u00fcm\u00fczde yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri giderek karma\u015f\u0131kla\u015f\u0131yor. Kod yazmak art\u0131k yeterli de\u011fil; kodun test edilmesi, derlenmesi, da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin y\u00f6netimi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor. Bu noktada Makefile'lar ve GitHub Actions, i\u015finizi kolayla\u015ft\u0131racak g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak, bu iki teknolojinin birlikte nas\u0131l kullan\u0131laca\u011f\u0131, onlardan tam verim almak isteyenler i\u00e7in hala belirsiz kalabiliyor. Bu makalede, Makefile'lar\u0131n g\u00fcc\u00fcn\u00fc GitHub Actions ile birle\u015ftirerek geli\u015ftirme s\u00fcre\u00e7lerinizi tam kontrol alt\u0131n\u0131za alman\u0131n yollar\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/makefile-ile-github-actionsi-tam-kontrol-altina-alin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Makefile ile GitHub Actions&#8217;\u0131 Tam Kontrol Alt\u0131na Al\u0131n"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=29170"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29170\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=29170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=29170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=29170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}