GitHub Script nedir?
Burada GitHub Betiği'nin GitHub Actions iş akışlarını kullanarak yaygın GitHub işlemlerini otomatikleştirmenize nasıl olanak sağlayacağını ele alacağız.
GitHub Script nedir?
GitHub Betiği , kimliği doğrulanmış bir octokit istemcisi sağlayan ve JavaScript'in doğrudan bir iş akışı dosyasına yazılmasını sağlayan bir eylemdir. Node.jsiçinde çalıştığından, betikler yazarken bu platformun gücüne sahip olursunuz.
Octokit nedir?
Octokit, GitHub API’si için resmi istemci koleksiyonudur. Bu istemcilerden biri olan rest.js, GitHub’ın REST arabirimine JavaScript erişimi sağlar.
GitHub API'sini her zaman octokit/rest.js aracılığıyla otomatikleştirebildiniz, ancak düzgün bir şekilde ayarlamak ve bakımını yapmak bir angarya olabilir. GitHub Script kullanmanın büyük avantajlarından biri, API’yi hemen kullanmaya başlayabilmeniz için bu ek yükün tamamını işlemesidir. Bağımlılıklar, yapılandırma veya kimlik doğrulaması konusunda endişelenmeniz gerekmez.
Octokit/rest.js ne yapabilir?
Kısa bir yanıt vermek gerekirse, GitHub’ın otomatikleştirilmesiyle ilgili neredeyse her şeyi yapabilir. Yalnızca commit’lere, çekme isteklerine ve sorunlara erişiminiz olmakla kalmaz, aynı zamanda kullanıcılara, projelere ve kuruluşlara da erişim elde edersiniz. Popüler lisanslar veya .gitignore dosyalar gibi yaygın olarak kullanılan dosyaların listesini alabilirsiniz. Markdown bile işleyebilirsiniz.
GitHub ile tümleşen bir şey oluşturuyorsanız aradığınızı tam octokit/rest.js belgelerinde bulma olasılığınız yüksektir.
GitHub Script’i kullanmanın, octokit/rest.js’yi kullanmaktan farkı nedir?
Kullanımdaki temel fark, GitHub Betiğinin size adlı githubönceden kimliği doğrulanmış bir octokit/rest.js istemcisi sağlamasıdır.
Dolayısıyla şunun yerine:
octokit.issues.createComment({
Şunu kullanırsınız:
github.issues.createComment({
github değişkenine ek olarak şu değişkenler de sağlanır:
-
context, iş akışı çalıştırmasının bağlamını içeren bir nesnedir. -
core@actions/çekirdek paketine bir başvurudur. -
io@actions/io paketine bir başvurudur.
GitHub Script kullanan bir iş akışı oluşturma
GitHub Script eylemleri, tıpkı diğer eylemler gibi bir iş akışına uygun şekilde yerleşir. Sonuç olarak, CI/CD için ayarladığınız eylemler gibi bunları da mevcut iş akışlarınızla karıştırabilirsiniz. Kolaylık sağlamak için şimdi GitHub Betiği'ni kullanarak yeni oluşturulan tüm sorunlara otomatik olarak yorum göndermek üzere eksiksiz bir iş akışı oluşturacağız.
Sorunlar açıldığında bu iş akışının çalıştırılacağını belirten bir nameon ve yan tümcesiyle başlayacağız.
name: Learning GitHub Script
on:
issues:
types: [opened]
Ardından, bir dizi adımla Linux üzerinde çalışan adlı comment bir iş tanımlayacağız.
jobs:
comment:
runs-on: ubuntu-latest
steps:
Bu durumda tek bir adım vardır: GitHub Betiği eylemi.
- uses: actions/github-script@0.8.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: "🎉 You've created this issue comment using GitHub Script!!!"
})
GitHub Actions'ı kullanmak, depolarınızda gerçekleşen olayları otomatikleştirmenize gerçekten yardımcı olabilir. Bir depo ziyaretçisi kritik bir hata hakkında bilgi içeren yeni bir sorun açtığını düşünün. Bunu dikkatinize getirdikleri için onlara teşekkür etmek isteyebilirsiniz; ancak, deponuz daha fazla ziyaretçi çektiğinden bu basit görev zor olabilir. Sorun açıklamasını otomatikleştirerek, ziyaretçilere her seferinde teşekkür etme sürecini otomatikleştirebilirsiniz.
Actions/github-script@0.8.0 kullanma
GitHub Script olarak da bilinen actions/github-script@0.8.0 eylemi, GitHub API’si ile tümleştirmemizin tüm ağır işlerini halleder.
Bu eylem, isteklerin kimliğinin doğrulanmış olması için çalışma zamanında sağlanan bir github-token gerektirir. Bu sizin için otomatik olarak yapılır, dolayısıyla bu kodu olduğu gibi kullanabilirsiniz.
parametresi, script içinde depolanan octokit/rest/js istemcisini kullanan hemen hemen tüm JavaScript'ler githubolabilir. Bu durumda, sabit kodlanmış bir yorum oluşturan tek bir satır (okunabilirlik için birden çok satıra bölünmüş) söz konusudur.
İş akışı çalıştırıldıktan sonra, GitHub Betiği tarafından yürütülen kodu incelemek üzere Eylemler sekmesinde kayıt altına alır.
Ayrı bir dosyadan çalıştırma
Bazen GitHub Betiği senaryonuzu yerine getirmek için önemli bir kod kullanmanız gerekebilir. Bu durumda, betiği ayrı bir dosyada tutabilir ve tüm betiği satır içine almak yerine iş akışından betiğe başvurabilirsiniz.
Bunu yapmak için basit bir iş akışı örneği aşağıda verilmişti:
on: push
jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/github-script@v2
with:
script: |
const path = require('path')
const scriptPath = path.resolve('./path/to/script.js')
console.log(require(scriptPath)({context}))
Diğer GitHub Betiği örneklerine göz atın.