Skip to content

Commit

Permalink
main upload
Browse files Browse the repository at this point in the history
  • Loading branch information
smir-ant committed Jul 15, 2024
1 parent c8dc750 commit 41beb17
Show file tree
Hide file tree
Showing 6 changed files with 276 additions and 0 deletions.
77 changes: 77 additions & 0 deletions .github/ISSUE_TEMPLATE/form.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Отзыв о моей работе можно оставить здесь
description: Только давай договоримся, пиши честно и искренне, ладно?
title: "Отзыв"
# labels: ["спасибо за отзыв ❤️"]
# assignees: ["smir-ant"]

body:
- type: markdown
attributes:
value: |
Спасибо, что нашел/нашла время на то чтобы оставить отзыв. Это не займёт много времени!
- type: input
id: name
attributes:
label: Имя и Фамилия
description: Анонимность это круто, но я бы хотел знать кто оставляет отзыв 👉👈
placeholder: Иванов Иван
validations:
required: true

- type: dropdown
id: format
attributes:
label: Формат занятий
description: Можно выбирать несколько
multiple: true
options:
# - Видеокурс
- Онлайн групповые занятия
- Онлайн индивидуальные занятия
- Оффлайн групповые занятия
validations:
required: true

- type: textarea
id: review
attributes:
label: Ощущение, послевкусие, мнение
description: Поделись, что думаешь об этом вашем Антоне??
placeholder: Ох, щас я как напишу подробный отзыв и поделюсь всяким и фоток ещё может каких прикреплю, а может и мемов даже...
validations:
required: true

- type: dropdown
id: assessment
attributes:
label: Оценка
description: Пора ставить оценку преподу :)
options:
- 2 (Плохо)
- 3 (Ну...)
- 4 (Неплохо)
- 5 (Отлично)
- 5+ (Храни тебя господь)
default: 0
validations:
required: true

- type: dropdown
id: recomend
attributes:
label: Готов(-а) ли ты рекомендовать бренд `𝕊𝕞𝕚𝕣𝕟𝕠𝕧 𝔸𝕟𝕥𝕠𝕟 𝕍𝕝𝕒𝕕𝕚𝕞𝕚𝕣𝕠𝕧𝕚𝕔𝕙` другим?
options:
- Воздержусь
- Хочу и буду
default: 0
validations:
required: true

- type: markdown
attributes:
value: |
<br>Через 15 сек. после отправления отзыв будет обработан (прилетит комментарий 💬 и метки проставятся 🏷️).
Для отправления отзыва нажми на зелёную кнопочку <picture><img width="100" src="https://github.com/user-attachments/assets/1c3c2b03-d0fc-485a-92f5-0a96c61f478c"></picture> ниже.
<br><h1 align="center">Спасибо за отзыв ❤️</h1>
<p align="center"><picture><img width="300" src="https://github.com/user-attachments/assets/05d53f26-ee31-44a3-bde3-dafe6b2d4edf"></picture></p>
27 changes: 27 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
comment: |
Спасибо тебе огромное человеческое ✨❤️
<picture><img width="400" src="https://github.com/smir-ant/smir-ant/assets/84059957/7d3ac67a-3523-4a67-8016-e706d2544fe9"></picture>
labels:
'2 / 5':
- '2 \(Плохо\)'
'3 / 5':
- '3 \(Ну\.\.\.\)'
'4 / 5':
- '4 \(Неплохо\)'
'5 / 5':
- '5 \(Отлично\)'
'5+ / 5':
- '5\+ \(Храни тебя господь\)'
'спасибо за отзыв ❤️':
- 'Отзыв'
- 'Оценка'
# 'Формат: видеокурс':
# - 'Видеокурс'
'Формат: онлайн занятия':
- 'Онлайн индивидуальные занятия'
- 'Онлайн групповые занятия'
'Формат: оффлайн занятия':
- 'Оффлайн групповые занятия'

19 changes: 19 additions & 0 deletions .github/workflows/issue-assigner.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Auto Assign Issue

on:
issues:
types: [opened]

jobs:
auto-assign:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Assign issue to smir-ant
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees \
-d '{"assignees":["smir-ant"]}'
20 changes: 20 additions & 0 deletions .github/workflows/label-edited-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Label Edited Issue

on:
issues:
types: [edited]

jobs:
add-label:
runs-on: ubuntu-latest
permissions:
issues: write

steps:
- name: Add "отредактировано" label
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels \
-d '{"labels":["редактировано"]}'
34 changes: 34 additions & 0 deletions .github/workflows/procces_labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Process the labels
on:
issues:
types: [opened, edited] # когда issue открывается или редактируется

jobs:
labeler:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Add Labels
uses: jimschubert/labeler-action@v2 # лучшие просто https://github.com/marketplace/actions/auto-labeler
with:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

- name: Handle Multiple Issues
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
label: "несколько отзывов" # повесить метку как причину закрытия
close: true # закрыть issue
issueNumber: true # указать номер issue
comment: "уже открыто тобой." # вместо стандартного "is already opened by you."

# Сохраню себе на память | закрытие issue текущего
# - name: Close Issue
# shell: bash
# run: |
# gh issue close -R "${{ github.repository }}" \
# --reason "completed" \
# ${{ steps.params.outputs.comment }} \
# "${{ github.event.issue.number }}"
# env:
# GH_TOKEN: ${{ github.token }}
99 changes: 99 additions & 0 deletions .github/workflows/reopen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# мощно, потому не удалю, чекай зачем всё это в строке "(последнее - это попытка..."
# но пришел по итогу от script к run, т.к. нужно максимально уменьшить окно между проверкой и отправкой.
# вроде как задержка между шагами script и if + run ощутимая, по крайней мере у меня получилось в неё влезть и закрыть issue когда метки ещё не было, а на момент открытия метка уже появлялась
# поэтому ступил на путь терминального программирования исключительно через run

# name: Reopen issue if closed by author

# on:
# issues:
# types: [closed]

# jobs:
# reopen:
# runs-on: ubuntu-latest
# permissions:
# issues: write

# steps:
# - name: Check who edited the issue
# id: check_closer
# uses: actions/github-script@v7
# with:
# # если автор закрыл свой же issue и на момент открытия issue это не повтор
# # (последнее - это попытка обуздать баг с закрытием после открытия issue спустя некоторое время, сперва он закроется как копия, но откроется через reopen)
# script: |
# const issue = context.payload.issue;
# const closer = context.actor;
# const author = issue.user.login;
# const labels = issue.labels.map(label => label.name);

# // Проверяем наличие метки "несколько отзывов"
# const fewIssue = labels.includes("несколько отзывов");
# console.log("labels:", labels);
# console.log("fewIssue:", fewIssue);

# const timeToOpen = closer === author && !fewIssue;
# core.exportVariable('needOpen', timeToOpen ? 'true' : 'false');
# # про core и context можно отсюда подробнее чекнуть(+про сам github-script@v7): https://github.com/actions/github-script?tab=readme-ov-file

# - name: Reopen issue
# if: env.needOpen == 'true'
# run: |
# curl -X PATCH \
# -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
# -H "Accept: application/vnd.github.v3+json" \
# https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }} \
# -d '{"state": "open"}'


name: REOPEN issue if closed by author and CLOSE else

on:
issues:
types: [closed, reopened]

jobs:
reopen:
runs-on: ubuntu-latest
permissions:
issues: write

steps:
- name: Check and reopen issue if conditions are met
env:
ISSUE_NUMBER: ${{ github.event.issue.number }}
REPO: ${{ github.repository }}
TOKEN: ${{ secrets.GITHUB_TOKEN }}
ACTOR: ${{ github.actor }}
EVENT_PAYLOAD: ${{ toJson(github.event) }}
run: |
# Получение данных о issue
AUTHOR=$(echo "$EVENT_PAYLOAD" | jq -r .issue.user.login)
# Проверка наличия метки "несколько отзывов"
LABELS=$(curl -s -H "Authorization: token $TOKEN" "https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER" | jq -r '.labels[].name')
# Вывод значений переменных для отладки
echo "ACTOR: $ACTOR"
echo "AUTHOR: $AUTHOR"
echo "LABELS: $LABELS"
# Проверка наличия метки "несколько отзывов"
LABEL_PRESENT=$(echo "$LABELS" | grep -q "несколько отзывов"; echo $?)
echo "LABEL_PRESENT (0 если найдена, 1 если не найдена): $LABEL_PRESENT"
if [[ "$ACTOR" == "$AUTHOR" && "$LABEL_PRESENT" -eq 1 ]]; then
echo "Reopening issue #$ISSUE_NUMBER"
curl -X PATCH \
-H "Authorization: token $TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER \
-d '{"state": "open"}'
else
curl -X PATCH \
-H "Authorization: token $TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER \
-d '{"state": "closed"}'
fi

0 comments on commit 41beb17

Please sign in to comment.