Wat is GitHub Script?

Voltooid

In deze les leert u hoe u met GitHub Script algemene GitHub-processen kunt automatiseren met behulp van GitHub Actions-werkstromen.

Wat is GitHub Script?

GitHub Script is een actie die een geverifieerde Octokit-client biedt en waarmee JavaScript rechtstreeks in een werkstroombestand kan worden geschreven. Het wordt uitgevoerd in Node.js, dus u hebt de kracht van dat platform beschikbaar wanneer u scripts schrijft.

Wat is Octokit?

Octokit is de officiële verzameling clients voor de GitHub-API. Een van deze clients, rest.js, biedt JavaScript-toegang tot de GitHub REST-interface.

U hebt de GitHub-API altijd geautomatiseerd via octokit/rest.js, hoewel het een klus kan zijn om de GitHub-API goed in te stellen en te onderhouden. Een van de grote voordelen van het gebruik van GitHub Script is dat hiermee al deze overhead wordt verwerkt, zodat u direct kunt beginnen met het gebruik van de API. U hoeft zich geen zorgen te maken over afhankelijkheden, configuratie en zelfs verificatie.

Wat kunt u doen met octokit/rest.js?

Het korte antwoord is dat u hiermee vrijwel alles kunt doen met betrekking tot het automatiseren van GitHub. Naast toegang tot commits, pull requests en issues hebt u ook toegang tot gebruikers, projecten en organisaties. U kunt lijsten met veelgebruikte bestanden ophalen, zoals populaire licenties of .gitignore bestanden. U kunt zelfs Markdown weergeven.

Als u iets maakt dat GitHub integreert, is de kans groot dat u vindt wat u zoekt in de volledige octokit/rest.js documentatie.

Hoe verschilt het gebruik van GitHub Script van het gebruik van octokit/rest.js?

Het belangrijkste verschil in gebruik is dat GitHub Script een vooraf geverifieerde octokit/rest.js-client met de naam githubbiedt.

Dus in plaats van

octokit.issues.createComment({

U gebruikt

github.issues.createComment({.

Naast de variabele github, worden ook de volgende variabelen opgegeven:

Een werkstroom maken die gebruikmaakt van GitHub Script

GitHub Script-acties kunnen net als andere acties worden gebruikt in een werkstroom. Als gevolg hiervan kunt u ze zelfs combineren met bestaande werkstromen, zoals de werkstromen die u mogelijk al hebt ingesteld voor CI/CD. Ter illustratie van het gemak van GitHub Script maakt u nu een volledige werkstroom die deze gebruikt om automatisch een opmerking te plaatsen bij alle nieuw gemaakte problemen.

U begint met een name en een on component die aangeeft dat de werkstroom wordt uitgevoerd wanneer er problemen worden geopend:

name: Learning GitHub Script

on:
  issues:
    types: [opened]

Vervolgens definieert u een taak met de naam comment die wordt uitgevoerd op Linux met een reeks stappen:

jobs:
  comment:
    runs-on: ubuntu-latest
    steps:

In dit geval is er slechts één stap: de actie GitHub Script.

      - 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!!!"
            })

Het gebruik van GitHub Actions kan echt helpen bij het automatiseren van de gebeurtenissen die plaatsvinden in uw opslagplaatsen. Stel dat een bezoeker van een opslagplaats een nieuw probleem heeft geopend met informatie over een kritieke fout. Misschien wilt u hen bedanken voor het aan uw aandacht brengen van de bug, maar deze eenvoudige taak kan overweldigend worden omdat uw opslagplaats meer bezoekers trekt. Door een opmerking bij het probleem te automatiseren, kunt u het proces van het bedanken van bezoekers elke keer automatiseren.

Acties/github-script@0.8.0 gebruiken

De actions/github-script@0.8.0 actie, ook wel Bekend als GitHub Script, doet al het moeilijke werk voor uw integratie met de GitHub-API.

Voor deze actie is een github-token actie vereist die tijdens runtime wordt verstrekt, zodat aanvragen worden geverifieerd. Dit wordt automatisch voor u gedaan, dus u kunt de code gebruiken zoals hij is.

De script parameter kan vrijwel elk JavaScript zijn dat gebruikmaakt van de octokit/rest/js-client die is opgeslagen in github. In dit geval is er sprake van slechts één regel (verdeeld over meerdere regels voor een goede leesbaarheid) waarmee een hardcoded opmerking wordt gemaakt.

Nadat de werkstroom is uitgevoerd, registreert GitHub Script de code die is uitgevoerd voor controle op het tabblad Acties :

Schermopname van een voltooide GitHub Script-werkstroom.

Uitvoering vanuit een afzonderlijk bestand

Mogelijk moet u soms een aanzienlijke hoeveelheid code gebruiken om te voldoen aan uw GitHub Script-scenario. Als dat het geval is, kunt u het script in een afzonderlijk bestand opslaan en ernaar verwijzen vanuit de werkstroom in plaats van het volledige script inline te plaatsen.

Hier volgt een voorbeeld van een eenvoudige werkstroom die gebruikmaakt van die techniek:

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}))

Bekijk meer GitHub Script-voorbeelden.