Skip to content

Диздок ревенанта #40

Диздок ревенанта

Диздок ревенанта #40

Workflow file for this run

name: "Automatic Labeling"
on:
pull_request_target:
types: [opened, synchronize]
jobs:
label-pr:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Fetch PR head branch
id: fetch_pr
run: |
git remote add pr "${{ github.event.pull_request.head.repo.clone_url }}"
git fetch pr "${{ github.event.pull_request.head.ref }}"
echo "::set-output name=head_sha::$(git rev-parse pr/${{ github.event.pull_request.head.ref }})"
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v44
with:
base_sha: ${{ github.event.pull_request.base.sha }}
head_sha: ${{ steps.fetch_pr.outputs.head_sha }}
- name: Determine labels
id: determine-labels
run: |
# Устанавливаем разделитель строк для корректной итерации по файлам
IFS=$'\n'
# Инициализация массива лейблов и переменной для типа изменений
LABELS=()
CONTENT_TYPE_LABEL=""
# Обработка списка изменённых файлов (каждый файл в отдельной строке)
for FILE in ${{ steps.changed-files.outputs.all_changed_files }}; do
case "$FILE" in
00_Правила_оформления/*) LABELS+=("Правила") ;;
01_Вселенная/*) LABELS+=("Вселенная") ;;
02_Объекты/*) LABELS+=("Объекты") ;;
03_Государства/*) LABELS+=("Государства") ;;
04_Корпорации/*) LABELS+=("Корпорации") ;;
05_Организации/*) LABELS+=("Организации") ;;
06_Расы/*) LABELS+=("Расы") ;;
07_Существа/*) LABELS+=("Существа") ;;
08_Технологии/*) LABELS+=("Технологии") ;;
09_Вооружение/*) LABELS+=("Вооружение") ;;
10_Явления/*) LABELS+=("Явления") ;;
11_Товары/*) LABELS+=("Товары") ;;
12_Другое/*) LABELS+=("Другое") ;;
13_Истории/*) LABELS+=("Истории") ;;
14_Повседневность/*) LABELS+=("Повседневность") ;;
esac
done
# Определение типа изменений
if [[ "${{ steps.changed-files.outputs.any_added }}" == "true" ]]; then
CONTENT_TYPE_LABEL="Новый контент"
elif [[ "${{ steps.changed-files.outputs.any_modified }}" == "true" ]]; then
CONTENT_TYPE_LABEL="Изменение"
fi
# Объединение всех лейблов и удаление дубликатов
ALL_LABELS=("${LABELS[@]}" "$CONTENT_TYPE_LABEL")
UNIQUE_LABELS=$(printf "%s\n" "${ALL_LABELS[@]}" | sort -u | tr '\n' ',' | sed 's/,$//')
echo "Labels: $UNIQUE_LABELS"
echo "labels=$UNIQUE_LABELS" >> $GITHUB_OUTPUT
- name: Apply labels
uses: actions-ecosystem/action-add-labels@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
labels: ${{ steps.determine-labels.outputs.labels }}