---
title: "GitHub Actions İş Akışlarınızı Kilitleyin (Lockfiles)"
url: https://blog.edumints.com/github-actions-is-akislarinizi-kilitleyin-lockfiles
category: "Yazılım"
date: 2026-11-12T08:08:49.884Z
publisher: Edumints Blog
lang: tr-TR
source_name: "Hacker News"
source_url: https://hugovk.dev/blog/2026/lock-github-actions/
---

# GitHub Actions İş Akışlarınızı Kilitleyin (Lockfiles)

GitHub Actions artık iş akışı kilit dosyalarını (**workflow lockfiles**) destekliyor. GitHub Actions bileşenleri doğrudan Git üzerinden çekildiği için, önceki güvenlik tavsiyesi sürüm etiketleri (tag) yerine tam bir **commit SHA** değerine sabitleme yapmaktı. Bunun temel nedeni, etiketlerin değiştirilebilir (mutable) olması ve bir saldırganın daha önce güvenli olan bir etiketi kötü amaçlı bir koda yönlendirebildiği tedarik zinciri (supply-chain) saldırılarına açık olmasıdır.

Örneğin, eski yöntemle güvenliği sağlanmış bir iş akışı dosyası şu şekilde görünüyordu:

```yaml
name: Lint
on: [push, pull_request, workflow_dispatch]
permissions: {}
env:
  FORCE_COLOR: 1
  RUFF_OUTPUT_FORMAT: github
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
        with:
          persist-credentials: false
      - uses: j178/prek-action@44924fe9ef4a6f88253c4b6b1bf11c689d3ce53d # v3.1.0
```

Yazılım geliştirme süreçlerinde karmaşık SHA özetlerini yorum satırlarıyla takip etmek yerine kilit dosyalarını nasıl kurabileceğinizi adım adım inceleyelim.

## Kurulum (Install)

İlk adım olarak `gh-actions-lock` eklentisini **gh CLI** aracına kurun:

```bash
$ gh extension install github/gh-actions-lock
✓ Installed extension github/gh-actions-lock
```

## Kilitleme İşlemi (Lock ’em)

Proje deponuzun (repository) içinde aşağıdaki komutu çalıştırın:

```bash
$ gh actions-lock
✓ All 1 workflows valid
```

Bu işlemden sonra iş akışı dosyanız okunabilir `vX.Y.Z` etiketlerini kullanmaya başlar ve yapılan değişiklik şu şekilde görünür:

```diff
-      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+      - uses: actions/checkout@v7.0.1
         with:
           persist-credentials: false
-      - uses: j178/prek-action@44924fe9ef4a6f88253c4b6b1bf11c689d3ce53d # v3.1.0
+      - uses: j178/prek-action@v3.1.0
```

Komut aynı zamanda `.github/workflows/actions.lock` yolunda otomatik bir kilit dosyası oluşturur:

```yaml
# This file is machine-generated by `gh actions-lock`.
# Do not edit by hand; run `gh actions-lock` to update.
# Docs: https://gh.io/actions-lockfile
version: v0.0.3
workflows:
  .github/workflows/lint.yml:
    - actions/checkout@v7.0.1
    - j178/prek-action@v3.1.0
dependencies:
  actions/checkout@v7.0.1:
    ref: v7.0.1
    commit: sha1-3d3c42e5aac5ba805825da76410c181273ba90b1
    owner_id: 44036562
    repo_id: 197814629
  j178/prek-action@v3.1.0:
    ref: v3.1.0
    commit: sha1-44924fe9ef4a6f88253c4b6b1bf11c689d3ce53d
    owner_id: 10510431
    repo_id: 1052387486
```

- **Pratik Çıkarım:** Tıpkı paket yöneticilerindeki (`package-lock.json` veya `poetry.lock`) yaklaşımda olduğu gibi, iş akışı dosyalarınızda okunabilirliği korurken arka planda kriptografik SHA, `owner_id` ve `repo_id` sabitlemesi elde edersiniz.
- Değiştirilen iş akışı dosyalarını ve yeni oluşturulan `actions.lock` dosyasını deponuza commit edin.

## Renovate ve Dependabot

İyi haber şu ki, hem **Renovate** hem de **Dependabot** şimdiden kilit dosyalarını destekliyor! Düzenli bağımlılık güncellemeleriniz artık kilit dosyasını da otomatik olarak güncelleyecektir. Tedarik zinciri güvenliğini artırmak için güncellemelerde bekleme süreleri (**cooldowns**) kullanmayı unutmayın.

## Doğrulama (Validate)

GitHub, kilit dosyalarının güncel olduğundan ve bozulmadığından emin olmak için CI süreçlerinde doğrulanmasını önerir. Bunun için ayrı bir `verify-lockfile.yml` dosyası kopyalanabileceği gibi, mevcut `lint` iş akışının içine bağımsız ve paralel çalışan ayrı bir **job** olarak da eklenebilir:

```yaml
  lockfile:
    runs-on: ubuntu-slim
    env:
      GH_TOKEN: ${{ github.token }}
    steps:
      - uses: actions/checkout@v7.0.1
        with:
          persist-credentials: false
      - run: gh extension install github/gh-actions-lock --pin v0.4.1
      - run: gh actions-lock --verify
```

- Bu yapılandırmada `.github/workflows/actions.lock` dosyası iş akışlarıyla senkronize olmadığında veya kilitli bir sürüm artık kaynakta doğrulanamadığında CI adımı hata verir.
- Doğrulama işlemi için hafif sıklet `ubuntu-slim` çalıştırıcısı (runner) kullanmak kaynak verimliliği sağlar.
- Eklenti kurulumunda `--pin v0.4.1` ile belirli bir sürüm sabitlenmiştir; ilerleyen süreçte bu sürümü güncellemek veya otomatikleştirmenin bir yolunu bulmak gerekecektir.

---

**Kaynak:** Hacker News (https://hugovk.dev/blog/2026/lock-github-actions/)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/github-actions-is-akislarinizi-kilitleyin-lockfiles
