Modül 1 · Önkoşul: GitHub & AI temelleri · ⏱ 12 dakika

GitHub Actions — agent'ın yürütme ortamı

GitHub Actions — the agent's execution environment

Bu derste neler öğreneceksin

  • Workflow / job / step / runner kavramlarını ayırt etmek
  • Trigger event'lerini bilmek (push, pull_request, issues, workflow_dispatch, schedule)
  • permissions: bloğu ile en az ayrıcalık nasıl uygulanır görmek
  • Re-run ve revert ile retry/rollback pattern'lerini kavramak

GitHub Actions, GH-600’de agent’ın yürütme ortamıdır. Domain 2.3 “Configure an agent to be invoked in a CI workflow” bullet’ı tam bu derste anlatılan konuyu sorar.

4 katman: workflow → job → step → runner

KatmanNe yaparTek satır
WorkflowYAML dosyası — .github/workflows/*.yml”ne zaman ne olacak”
JobTek bir runner’da çalışan adımlar grubu”tek makinede yapılacak iş”
StepTek bir komut veya uses: action çağrısı”tek atomik adım”
RunnerJob’ı çalıştıran VM (Ubuntu, Windows, macOS, self-hosted)“iş makinesi”

Minimal örnek:

name: hello
on: [push]
permissions:
  contents: read
jobs:
  greet:
    runs-on: ubuntu-latest
    steps:
      - run: echo "hello, agent"

Trigger event’leri — agent ne zaman çalışsın?

EventTetikAgent kullanımı
pushHer commit pushOtomatik test/lint
pull_requestPR açılınca/güncellenincePR review agent’ı
issuesIssue açıldı/etiketlendiTriage agent’ı (issue → PR)
workflow_dispatchManuel button (Actions tab)İnsan başlatır
scheduleCronPeriyodik bakım agent’ı
repository_dispatchAPI çağrısıDış sistem tetiklemesi
workflow_runBaşka workflow bittiChained agent

Sınav perspektifinden: Domain 2.3 “Configure an agent to be invoked in a CI workflow” bullet’ı tipik olarak pull_request veya issues event’lerini imler.

permissions: bloğu — least-privilege

Default’ta GITHUB_TOKEN çok geniş yetkili. Workflow başında bunu daraltmak GH-600’de en sık çıkan least-privilege uygulamasıdır:

permissions:
  contents: read          # repo dosyalarını oku
  pull-requests: write    # PR yaz/yorum
  issues: write           # issue yaz
  # eksik olanlar reddedilir (statuses, deployments, packages, ...)

Repo seviyesi default: Settings → Actions → General → Workflow permissions → “Read repository contents and packages permissions” (en sıkı).

Re-run ve revert — retry/rollback pattern’i

Domain 2.4’ün “retries” ve “rollbacks” bullet’ları için GitHub’ın native karşılıkları:

Retry — re-run

  • Re-run failed jobs — sadece fail olan job’ı yeniden çalıştırır
  • Re-run all jobs — tüm workflow’u baştan
  • Workflow YAML’inde retry action’ları ile step-level retry da yapılabilir

Rollback — revert

  • Bozuk commit için git revert <sha> (yeni commit yaratır, geçmişi silmez) — audit’e dost
  • Deploy rollback: önceki tag’i yeniden deploy et (environment’a re-deploy)

Workflow artifact’ları — durable state

Job’lar arası veya workflow run’lar arası dosya paylaşımı için:

- uses: actions/upload-artifact@v4
  with:
    name: agent-plan
    path: PLAN.md

Domain 3.2 “Capture task progress and decisions as durable artifacts” tam buraya karşılık gelir — agent’ın planı/durumu artifact olarak yüklenir, sonra başka bir job veya bir sonraki run okur.

Sırada ne var?

Bir sonraki derste GitHub Copilot ekosistemi — code completion’dan custom agent ve cloud agent’a uzanan resim — agent katmanını anlayacağız.