Skip to main content

Назначение разрешений для заданий

Измените разрешения по умолчанию, предоставленные GITHUB_TOKEN.

Обзор

permissions можно использовать для изменения разрешений по умолчанию, предоставленных GITHUB_TOKEN, при необходимости добавляя или удаляя права доступа, чтобы разрешить только минимальный требуемый доступ. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.

permissions можно использовать в качестве ключа верхнего уровня для применения ко всем заданиям в рабочем процессе или в конкретных заданиях. При добавлении ключа permissions в конкретном задании указанные права доступа получают все действия и команды выполнения в этом задании, использующие GITHUB_TOKEN. Дополнительные сведения см. в разделе jobs.<job_id>.permissions.

Определение доступа для GITHUB_TOKEN область

Вы можете определить доступ, который GITHUB_TOKEN будет разрешен, указав readили write``none как значение доступных область в permissions ключе.

permissions:
  actions: read|write|none
  checks: read|write|none
  contents: read|write|none
  deployments: read|write|none
  id-token: read|write|none
  issues: read|write|none
  discussions: read|write|none
  packages: read|write|none
  pages: read|write|none
  pull-requests: read|write|none
  repository-projects: read|write|none
  security-events: read|write|none
  statuses: read|write|none

Если указать доступ для любой из этих областей, для всех не указанных параметров будет задано значение none.

Для определения одного из read-all доступных область можно write-all использовать следующий синтаксис:

permissions: read-all
permissions: write-all

Для отключения разрешений для всех доступных областей можно использовать следующий синтаксис:

permissions: {}

Изменение разрешений в вилку репозитория

С помощью ключа permissions можно добавлять и удалять разрешения на чтение для разветвленных репозиториев, но обычно предоставить доступ на запись нельзя. Исключением из этого поведения является то, что пользователь администратора выбрал Отправлять маркеры записи в рабочие процессы из запросов на вытягивание в параметрах GitHub Actions. Дополнительные сведения см. в разделе Управление параметрами GitHub Actions для репозитория.

GITHUB_TOKEN Настройка разрешений для всех заданий в рабочем процессе

Можно указать permissions на верхнем уровне рабочего процесса, чтобы параметр применялось ко всем заданиям в рабочем процессе.

Пример. Настройка GITHUB_TOKEN разрешений для всего рабочего процесса

В этом примере показаны разрешения, заданные для GITHUB_TOKEN, которые будут применены ко всем заданиям в рабочем процессе. Всем разрешениям предоставляется доступ на чтение.

name: "My workflow"

on: [ push ]

permissions: read-all

jobs:
  ...

GITHUB_TOKEN Настройка разрешений для определенного задания

Для определенного задания jobs.<job_id>.permissions можно использовать для изменения разрешений по умолчанию, предоставленных GITHUB_TOKEN, при необходимости добавляя или удаляя права доступа, чтобы разрешить только минимальный требуемый доступ. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.

Указав разрешение в определении задания, при необходимости можно настроить для каждого задания другой набор разрешений для GITHUB_TOKEN. Кроме того, можно указать разрешения для всех заданий в рабочем процессе. Сведения об определении разрешений на уровне рабочего процесса см. в разделе permissions.

Пример. Настройка GITHUB_TOKEN разрешений для одного задания в рабочем процессе

В этом примере показаны разрешения, заданные для задания GITHUB_TOKEN, которое будет применяться только к заданию с именем stale. Доступ на запись предоставляется для областей issues и pull-requests. Все остальные области не будут иметь доступа.

jobs:
  stale:
    runs-on: ubuntu-latest

    permissions:
      issues: write
      pull-requests: write

    steps:
      - uses: actions/stale@v5