Wat is GitHub Script?

Voltooid

Hier bespreken we 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. De actie wordt uitgevoerd in Node.js; zo kunt u ook gebruikmaken van de mogelijkheden van dat platform bij het schrijven van scripts.

Wat is octokit?

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

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. U hebt niet alleen toegang tot wijzigingen, pull-aanvragen en problemen, maar ook 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 bouwt 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 u een vooraf geverifieerde octokit/rest.js-client met de naam githubbiedt.

In plaats van:

octokit.issues.createComment({

U gebruikt het volgende:

github.issues.createComment({

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

Een werkstroom bouwen 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 werkstromen die u mogelijk al hebt ingesteld voor CI/CD. Ter illustratie van het gemak maken we nu een volledige werkstroom die gebruikmaakt van GitHub Script om automatisch een opmerking te posten op alle nieuw gemaakte problemen.

We beginnen met een name en een on component die aangeeft dat deze werkstroom wordt uitgevoerd wanneer er problemen worden geopend.

name: Learning GitHub Script

on:
  issues:
    types: [opened]

Vervolgens definiëren we 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; deze eenvoudige taak kan echter 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

Met de actie actions/github-script@0.8.0, ook wel bekend als GitHub Script, wordt al het zware werk gedaan voor onze 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 wordt uitgevoerd voor controle op het tabblad Acties .

Schermopname van een voltooide werkstroom met behulp van GitHub Script.

Uitvoering vanuit een afzonderlijk bestand

Soms moet u mogelijk aanzienlijke 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 dit doet:

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 voorbeelden van GitHub Script.