Рубрики
Uncategorized

Автоматизируйте ваши отзывы PR с помощью GitHub Action Scripting в JavaScript

Действия GitHub — это комбинация примитивов для пользователей, чтобы быстро отправлять интеграции для их репо. Tagged Github, DevOps, Githubabies, JavaScript.

[«28-github-действия»] (26 части серии)

Действия GitHub — это сочетание примитивов для пользователей для быстрого доставки интеграции для их REPOS. Некоторые из этих примитивов включают API, веб-каучуки и аутентификацию.

В этом посте я собираюсь сосредоточиться на API и Действия/Github-скрипт Отказ Это действие позволяет легко быстро написать скрипт в вашем рабочем процессе, который использует API GitHUB и включает в себя контекст Run Workflow.

Действия/GitHub-скрипт

Написать рабочие процессы сценариев Github API в JavaScript

Это действие позволяет легко быстро написать сценарий в вашем рабочем процессе, который использует API GitHUB и контекст запуска рабочего процесса.

Для того, чтобы использовать это действие, A Сценарий вход предоставляется. Значение этого ввода должно быть телом асинхронного вызова функции. Следующие аргументы будут предоставлены:

С Сценарий Это просто функциональное тело, эти значения уже будут определены, поэтому вам не нужно (см. Примеры ниже).

Посмотреть OCOKIT/REST.JS Для клиентской документации API.

Примечание Это действие все еще немного эксперимента — API может измениться в будущих версиях. 🙂

Разработка

Посмотреть Development.md Отказ

Результаты шага чтения

Возвращаемое значение сценария будет …

Чтобы использовать это действие, предусмотрен ввод сценария. Значение этого ввода должно быть телом асинхронного вызова функции. Следующие аргументы будут предоставлены:

  • Github Предварительно аутентифицированный клиент Octokit/Core.js с конечными точками отдыха и плагинами Pagination
  • контекст Объект, содержащий контекст работы рабочего процесса
  • Core Ссылка на пакет @ Действия/Основной пакет
  • Ио Ссылка на пакет @ Действия/IO

Если вы знакомы с Octokit.rest.js или Проба Библиотека, вы найдете это довольно похоже.

Вот пример сценария, в котором я рассматриваю свои PRS на основе этикеток. GitHub Script позволяет писать JavaScript для обработки разных событий веб -ook, а в этом случае мы срабатываем рабочий процесс с метками на PR.

name: Review with labels

on:
  pull_request:
    types: [labeled]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/github-script@0.8.0
        name: Not an Action
        if: github.event.label.name == 'nocode' || github.event.label.name == 'not-an-action'
        with:
          script: |
            await github.issues.createComment({
              owner: "github-hackathon",
              repo: "hackathon",
              issue_number: context.payload.number,
              body: "Submission is not a usable GitHub Action"
            });

            await github.pulls.update({
              owner: "github-hackathon",
              repo: "hackathon",
              pull_number: context.payload.number,
              state: "closed"
            });
      - uses: actions/github-script@0.8.0
        name: Featured
        if: github.event.label.name == 'featured' || github.event.label.name == 'good'
        with:
          script: |
            await github.pulls.merge({
              owner: "github-hackathon",
              repo: "hackathon",
              pull_number: context.payload.number,
            });
      - uses: actions/github-script@0.8.0
        name: Fork
        if: github.event.label.name == 'fork'
        with:
          script: |
            await github.issues.createComment({
              owner: "github-hackathon",
              repo: "hackathon",
              issue_number: context.payload.number,
              body: "Submission is a fork and does not represent the submitter as the author."
            });

            await github.pulls.update({
              owner: "github-hackathon",
              repo: "hackathon",
              pull_number: context.payload.number,
              state: "closed"
            });
      - uses: actions/github-script@0.8.0
        name: Ended
        if: github.event.label.name == 'late'
        with:
          script: |
            await github.issues.createComment({
              owner: "github-hackathon",
              repo: "hackathon",
              issue_number: context.payload.number,
              body: "Submission received after the Hackathon has ended."
            });

            await github.pulls.update({
              owner: "github-hackathon",
              repo: "hackathon",
              pull_number: context.payload.number,
              state: "closed"
            });

Посмотреть OCOKIT/REST.JS Для документации клиента API для получения дополнительной информации о том, что вы можете сделать.

Это часть моих 28 дней серии действий. Чтобы получить уведомление о большего количества подсказки GitHub, следуйте за организацией GitHub прямо здесь на Dev.

Запустите свои действия Github, как makefile

Брайан Дуглас · 13 февраля · 1 мин прочитал

[«28-github-действия»] (26 части серии)

Оригинал: «https://dev.to/github/automate-your-pr-reviews-with-github-action-scripting-in-javascript-3en2»