Note
GitHubразмещенные в данный момент средства выполнения не поддерживаются в GitHub Enterprise Server. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
Обзор
permissions можно использовать для изменения разрешений по умолчанию, предоставленных GITHUB_TOKEN, при необходимости добавляя или удаляя права доступа, чтобы разрешить только минимальный требуемый доступ. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.
permissions можно использовать в качестве ключа верхнего уровня для применения ко всем заданиям в рабочем процессе или в конкретных заданиях. При добавлении ключа permissions в конкретном задании указанные права доступа получают все действия и команды выполнения в этом задании, использующие GITHUB_TOKEN. Дополнительные сведения см. в разделе jobs.<job_id>.permissions.
Для каждого из доступных разрешений, показанных в таблице ниже, можно назначить один из уровней доступа: read (если применимо), writeили none. write включает в себя read. Если указать доступ для любого из этих разрешений, то для всех этих разрешений задано noneзначение .
Доступные разрешения и подробные сведения о том, что позволяет выполнять действие:
| Разрешение | Разрешает действие с помощью GITHUB_TOKEN | 
|---|---|
actions | Работа с GitHub Actions. Например, actions: write позволяет действию отменить выполнение рабочего процесса. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
checks | Работа с проверками запусков и контрольных наборов. Например, checks: write позволяет действию создать выполнение проверки. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
contents | Работа с содержимым репозитория. Например, contents: read позволяет действию перечислять фиксации и contents: write позволяет действию создавать выпуск. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
deployments | Работа с развертываниями. Например, deployments: write позволяет действию создать новое развертывание. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
discussions | Работа с обсуждениями GitHub. Например, discussions: write позволяет действию закрыть или удалить обсуждение. Дополнительные сведения см. в разделе Использование API GraphQL для обсуждений. | 
issues | Работа с проблемами. Например, issues: write позволяет действию добавить комментарий к проблеме. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
packages | Работа с пакетами GitHub. Например, packages: write позволяет действию отправлять и публиковать пакеты в пакетах GitHub. Дополнительные сведения см. в разделе Сведения о разрешениях для пакетов GitHub. | 
pages | Работа с GitHub Pages. Например, pages: write позволяет действию запрашивать сборку GitHub Pages. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
pull-requests | Работа с запросами на вытягивание. Например, pull-requests: write позволяет действию добавить метку в запрос на вытягивание. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
repository-projects | Работа с проектами GitHub (классическая модель). Например, repository-projects: write позволяет действию добавить столбец в проект (классическую модель). Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
security-events | Работа с проверкой кода GitHub и оповещениями Dependabot. Например, security-events: read позволяет выполнить действие для перечисления оповещений Dependabot для репозитория и security-events: write позволяет действию обновить состояние оповещений сканирования кода. Дополнительные сведения см. в разделе "Разрешения репозитория" для разрешений "Сканирование кода оповещений" и разрешений репозитория для оповещений Dependabot в разделе "Разрешения, необходимые для приложений GitHub". | 
statuses | Работа с состояниями фиксации. Например, statuses:read позволяет действию выводить список состояний фиксации для указанной ссылки. Дополнительные сведения см. в разделе Разрешения, необходимые для приложений GitHub. | 
Определение доступа для 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
  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@v9