Пролог: было очень сложно — до сих пор сложно — определить для него хорошее название, но, возможно, если вы перейдете к введению, его будет легче понять.

Поэтому, если вы когда-либо создавали шаблон GitHub, вероятно, вы задавались вопросом о файлах, которыми вы не хотите делиться в конечном результате — шаблоне, который будет использоваться вашей аудиторией.

В моем случае это были GitHub, Docker и файлы конфигурации. Они были связаны с исходным репозиторием и не представляли никакой ценности для конечных пользователей. Поэтому мне пришлось найти какое-то разумное решение, как их удалить.

До сих пор GitHub не предоставляет каких-либо дополнительных опций, которые вы можете комбинировать с процессом создания шаблона — и это не так уж хорошо. Однако оказалось, что для этого можно использовать Действия и рабочие процессы GitHub. И поскольку выделенные рабочие процессы можно использовать бесплатно, и на самом деле вам просто нужно запустить их только один раз, это отличный способ справиться с упомянутой проблемой. Что вам нужно сделать тогда?

  1. В корневой папке создайте папку .github. Там создайте еще один с именем workflows.
  2. Создайте новый файл с желаемым именем, допустим, это будет prepare-template.yaml. Поскольку это файл конфигурации, мы используем для него лучший формат — YAML.
  3. Действия GitHub могут запускаться по нескольким событиям, например, для push-уведомлений или новых запросов на включение или даже для создания нового репозитория, который нам нужен. Итак, давайте начнем составлять наш файл рабочего процесса.
name: Initial Setup of Repository

on:
  create:

concurrency:
  group: init-setup
  cancel-in-progress: true

permissions:
  actions: write
  checks: write
  contents: write

...

Начнем с самого начала. Мы дали имя этому действию, которое будет видно во время предварительного просмотра процесса, но это не так важно. Затем мы указали инициирующее событие, которое является create нового репозитория. Мы также настроили параллелизм, чтобы гарантировать, что только одно задание или рабочий процесс использует одну и ту же группу одновременно. Наконец, мы предоставили права на запись в новый репозиторий.