Сегодня я расскажу вам все о Github_token в GitHub Actions. Вы узнаете, что это такое, Как это работает , как Настройка его поведение и как ограничить или Измените свои разрешения Анкет
видео
Как обычно, если вы Визуальный ученик , или просто предпочитаю смотреть и слушать вместо чтения, здесь у вас есть Видео со всем объяснением и демонстрацией , что, чтобы быть справедливым, много более полное чем этот пост.
Ссылка на видео: https://youtu.be/jek07kpejny
Если вы предпочитаете читать, хорошо … давайте просто продолжим:)
Что такое github_token
Давайте начнем с того, что GitHub_Token находится в действиях GitHub и как это работает.
Github_token — это Специальный токен доступа что вы можете использовать для аутентификации от имени действий GitHub. GitHub автоматически создает Секрет github_token, который вы можете использовать в своем рабочем процессе, и вы можете использовать его для аутентификации в рабочем процессе.
Это работает, так это то, что когда вы включаете действия GitHub в репозиторий, GitHub устанавливает приложение GitHub на что. Секрет github_token — это в основном токен для установки приложения Github.
Перед началом каждой работы GitHub приносит токен для установки для работы из этого приложения GitHub. Поскольку приложение имеет доступ к одному репо, Разрешения Токена ограничены хранилищем который содержит ваш рабочий процесс. И чтобы сделать его еще более безопасным, токен истекает, когда работа закончена.
Надеюсь, механизм теперь более ясен. Давайте быстро посмотрим, как использовать github_token
Используйте токен GitHub
Есть 2 способа использовать токен: от Секреты и из контекст Анкет
- uses: actions/labeler@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }}
В этом первом примере мы используем секреты. Github_token
поглотить это. Как уже упоминалось, секрет создается автоматически, поэтому вы можете просто использовать его сразу.
- name: Create a Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ github.token }}
Здесь вместо этого мы используем контекст Github, который содержит токен. Обратите внимание, что эти два эквивалентны.
Личный токен доступа против github_token
Если вы думаете _ «Почему я должен использовать github_token вместо моего обычного PAT?», Помните, что всегда доступен токен для личного доступа, поэтому, если кто -то может украсть этот PAT, он потенциально может принести некоторый вред.
Вместо этого истекает github_token сразу после окончания работы. Таким образом, даже если кто -то может украсть его (что почти невозможно ), они в основном не могут сделать что -то не так.
Разрешения по умолчанию
По умолчанию GitHub_Token имеет довольно полный список разрешений, назначенных ему.
В этой таблице показаны разрешения, предоставленные GitHub_Token по умолчанию. Хорошо, что люди с разрешениями администратора на предприятие, организация или репозиторий могут установить по умолчанию Разрешения быть либо разрешающими, либо ограниченными Анкет
Разрешения UI
Итак, посмотрим, как мы можем Изменить разрешения of github_token, чтобы сделать его еще более безопасным.
Просто зайдите в свой репозиторий или организацию Настройки , затем нажмите на Действия Анкет
Здесь вы можете изменить разрешения, назначенные вашему токену, выбрав Читать и написать
(Что позволяет вам получить доступ к контенту и вносить изменения) или Только для чтения
Анкет
Это очень быстро, но, с другой стороны, довольно ограничен. Что если я хочу назначить разрешения более детальным образом?
Гранулированные разрешения через YAML
Вы можете использовать разрешения
Ключ в Ямл рабочий процесс Файл для изменения разрешений для github_token для всего рабочего процесса или для отдельных заданий.
permissions: contents: write pull-requests: write issues: read packages: none
И вы можете использовать все разрешения, которые перечислены в таблице выше. Кроме того, как вы можете видеть ниже, он поддерживает Intellisense Если вы сделаете это в интерфейсе GitHub напрямую:
Когда используется ключ разрешений, все неопределенные разрешения устанавливаются на нет
Вы можете персонализировать разрешения токена либо на уровне работы, либо на весь уровень рабочего процесса (или на самом деле оба):
[...] permissions: contents: write pull-requests: write jobs: job1: runs-on: ubuntu-latest steps: [...] job2: runs-on: ubuntu-latest permissions: issues: write steps: [...]
Выводы
Надеюсь, у вас сейчас лучшее понимание о GitHub_Token, что он делает и как мы можем правильно установить его разрешения. Дайте мне знать в разделе комментариев ниже, если у вас есть другие вопросы по этому поводу.
Также проверьте это видео Где я говорю о создании личных токенов доступа в GitHub.
Мол, поделиться и следуй за мной 🚀 Для большего содержания:
📽 YouTube ☕ Купить мне кофе 💖 Patreon 🌐 CoderDave.io Веб -сайт 👕 Мерч 👦🏻 Страница Facebook 🐱💻 GitHub 👲🏻 Twitter 👴🏻 LinkedIn 🔉 Подкаст
Оригинал: «https://dev.to/github/the-githubtoken-in-github-actions-how-it-works-change-permissions-customizations-3cgp»