Skip to content

Commit 4140772

Browse files
committedJul 17, 2024
main upload
1 parent c8dc750 commit 4140772

File tree

6 files changed

+277
-0
lines changed

6 files changed

+277
-0
lines changed
 

‎.github/ISSUE_TEMPLATE/form.yml

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Отзыв о моей работе можно оставить здесь
2+
description: Только давай договоримся, пиши честно и искренне, ладно? |
3+
title: "Отзыв"
4+
# labels: ["спасибо за отзыв ❤️"]
5+
# assignees: ["smir-ant"]
6+
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Спасибо, что нашел/нашла время на то чтобы оставить отзыв. Это не займёт много времени!
12+
13+
- type: input
14+
id: name
15+
attributes:
16+
label: Имя и Фамилия
17+
description: Анонимность это круто, но я бы хотел знать кто оставляет отзыв 👉👈
18+
placeholder: Иванов Иван
19+
validations:
20+
required: true
21+
22+
- type: dropdown
23+
id: format
24+
attributes:
25+
label: Формат занятий
26+
description: Можно выбирать несколько
27+
multiple: true
28+
options:
29+
# - Видеокурс
30+
- Онлайн групповые занятия
31+
- Онлайн индивидуальные занятия
32+
- Оффлайн групповые занятия
33+
validations:
34+
required: true
35+
36+
- type: textarea
37+
id: review
38+
attributes:
39+
label: Ощущение, послевкусие, мнение
40+
description: Поделись, что думаешь об этом вашем Антоне??
41+
placeholder: Ох, щас я как напишу подробный отзыв и поделюсь всяким и фоток ещё может каких прикреплю, а может и мемов даже...
42+
validations:
43+
required: true
44+
45+
- type: dropdown
46+
id: rating
47+
attributes:
48+
label: Оценка
49+
description: Пора ставить оценку преподу :)
50+
options:
51+
- 2 (Плохо)
52+
- 3 (Ну...)
53+
- 4 (Хорошо)
54+
- 5 (Отлично)
55+
- 5+ (Храни тебя господь)
56+
default: 0
57+
validations:
58+
required: true
59+
60+
- type: dropdown
61+
id: recomend
62+
attributes:
63+
label: Готов(-а) ли ты рекомендовать бренд `𝕊𝕞𝕚𝕣𝕟𝕠𝕧 𝔸𝕟𝕥𝕠𝕟 𝕍𝕝𝕒𝕕𝕚𝕞𝕚𝕣𝕠𝕧𝕚𝕔𝕙` другим?
64+
options:
65+
- Воздержусь
66+
- Хочу и буду
67+
default: 0
68+
validations:
69+
required: true
70+
71+
- type: markdown
72+
attributes:
73+
value: |
74+
<br>Через 15 сек. после отправления отзыв будет обработан (прилетит комментарий 💬 и метки проставятся 🏷️).
75+
Для отправления отзыва нажми на зелёную кнопочку <picture><img width="100" src="https://github.com/user-attachments/assets/1c3c2b03-d0fc-485a-92f5-0a96c61f478c"></picture> ниже.
76+
<br><h1 align="center">Спасибо за отзыв ❤️</h1>
77+
<p align="center"><picture><img width="300" src="https://github.com/user-attachments/assets/05d53f26-ee31-44a3-bde3-dafe6b2d4edf"></picture></p>

‎.github/labeler.yml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
comment: |
2+
Спасибо тебе огромное человеческое ✨❤️
3+
4+
<picture><img width="400" src="https://github.com/smir-ant/smir-ant/assets/84059957/7d3ac67a-3523-4a67-8016-e706d2544fe9"></picture>
5+
6+
labels:
7+
'2 / 5':
8+
- '2 \(Плохо\)'
9+
'3 / 5':
10+
- '3 \(Ну\.\.\.\)'
11+
'4 / 5':
12+
- '4 \(Хорошо\)'
13+
'5 / 5':
14+
- '5 \(Отлично\)'
15+
'5+ / 5':
16+
- '5\+ \(Храни тебя господь\)'
17+
'спасибо за отзыв ❤️':
18+
- 'Отзыв'
19+
- 'Оценка'
20+
# 'Формат: видеокурс':
21+
# - 'Видеокурс'
22+
'Формат: групповые занятия':
23+
- 'Оффлайн групповые занятия'
24+
- 'Онлайн групповые занятия'
25+
'Формат: индивидуальные занятия':
26+
- 'Онлайн индивидуальные занятия'
27+
28+

‎.github/workflows/issue-assigner.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Auto Assign Issue
2+
3+
on:
4+
issues:
5+
types: [opened]
6+
7+
jobs:
8+
auto-assign:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
issues: write
12+
steps:
13+
- name: Assign issue to smir-ant
14+
run: |
15+
curl -X POST \
16+
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
17+
-H "Accept: application/vnd.github.v3+json" \
18+
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees \
19+
-d '{"assignees":["smir-ant"]}'
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Label Edited Issue
2+
3+
on:
4+
issues:
5+
types: [edited]
6+
7+
jobs:
8+
add-label:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
issues: write
12+
13+
steps:
14+
- name: Add "отредактировано" label
15+
run: |
16+
curl -X POST \
17+
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
18+
-H "Accept: application/vnd.github.v3+json" \
19+
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels \
20+
-d '{"labels":["редактировано"]}'

‎.github/workflows/procces_labels.yml

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Process the labels
2+
on:
3+
issues:
4+
types: [opened, edited] # когда issue открывается или редактируется
5+
6+
jobs:
7+
labeler:
8+
runs-on: ubuntu-latest
9+
permissions:
10+
issues: write
11+
steps:
12+
- name: Add Labels
13+
uses: jimschubert/labeler-action@v2 # лучшие просто https://github.com/marketplace/actions/auto-labeler
14+
with:
15+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
16+
17+
- name: Handle Multiple Issues
18+
uses: Anmol-Baranwal/handle-multiple-issues@v1
19+
with:
20+
label: "несколько отзывов" # повесить метку как причину закрытия
21+
close: true # закрыть issue
22+
issueNumber: true # указать номер issue
23+
comment: "уже открыто тобой." # вместо стандартного "is already opened by you."
24+
25+
# Сохраню себе на память | закрытие issue текущего
26+
# - name: Close Issue
27+
# shell: bash
28+
# run: |
29+
# gh issue close -R "${{ github.repository }}" \
30+
# --reason "completed" \
31+
# ${{ steps.params.outputs.comment }} \
32+
# "${{ github.event.issue.number }}"
33+
# env:
34+
# GH_TOKEN: ${{ github.token }}

‎.github/workflows/reopen.yml

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# мощно, потому не удалю, чекай зачем всё это в строке "(последнее - это попытка..."
2+
# но пришел по итогу от script к run, т.к. нужно максимально уменьшить окно между проверкой и отправкой.
3+
# вроде как задержка между шагами script и if + run ощутимая, по крайней мере у меня получилось в неё влезть и закрыть issue когда метки ещё не было, а на момент открытия метка уже появлялась
4+
# поэтому ступил на путь терминального программирования исключительно через run
5+
6+
# name: Reopen issue if closed by author
7+
8+
# on:
9+
# issues:
10+
# types: [closed]
11+
12+
# jobs:
13+
# reopen:
14+
# runs-on: ubuntu-latest
15+
# permissions:
16+
# issues: write
17+
18+
# steps:
19+
# - name: Check who edited the issue
20+
# id: check_closer
21+
# uses: actions/github-script@v7
22+
# with:
23+
# # если автор закрыл свой же issue и на момент открытия issue это не повтор
24+
# # (последнее - это попытка обуздать баг с закрытием после открытия issue спустя некоторое время, сперва он закроется как копия, но откроется через reopen)
25+
# script: |
26+
# const issue = context.payload.issue;
27+
# const closer = context.actor;
28+
# const author = issue.user.login;
29+
# const labels = issue.labels.map(label => label.name);
30+
31+
# // Проверяем наличие метки "несколько отзывов"
32+
# const fewIssue = labels.includes("несколько отзывов");
33+
# console.log("labels:", labels);
34+
# console.log("fewIssue:", fewIssue);
35+
36+
# const timeToOpen = closer === author && !fewIssue;
37+
# core.exportVariable('needOpen', timeToOpen ? 'true' : 'false');
38+
# # про core и context можно отсюда подробнее чекнуть(+про сам github-script@v7): https://github.com/actions/github-script?tab=readme-ov-file
39+
40+
# - name: Reopen issue
41+
# if: env.needOpen == 'true'
42+
# run: |
43+
# curl -X PATCH \
44+
# -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
45+
# -H "Accept: application/vnd.github.v3+json" \
46+
# https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }} \
47+
# -d '{"state": "open"}'
48+
49+
50+
name: REOPEN issue if closed by author and CLOSE else
51+
52+
on:
53+
issues:
54+
types: [closed, reopened]
55+
56+
jobs:
57+
reopen:
58+
runs-on: ubuntu-latest
59+
permissions:
60+
issues: write
61+
62+
steps:
63+
- name: Check and reopen issue if conditions are met
64+
env:
65+
ISSUE_NUMBER: ${{ github.event.issue.number }}
66+
REPO: ${{ github.repository }}
67+
TOKEN: ${{ secrets.GITHUB_TOKEN }}
68+
ACTOR: ${{ github.actor }}
69+
EVENT_PAYLOAD: ${{ toJson(github.event) }}
70+
run: |
71+
# Получение данных о issue
72+
AUTHOR=$(echo "$EVENT_PAYLOAD" | jq -r .issue.user.login)
73+
74+
# Проверка наличия метки "несколько отзывов"
75+
LABELS=$(curl -s -H "Authorization: token $TOKEN" "https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER" | jq -r '.labels[].name')
76+
77+
# Вывод значений переменных для отладки
78+
echo "ACTOR: $ACTOR"
79+
echo "AUTHOR: $AUTHOR"
80+
echo "LABELS: $LABELS"
81+
82+
# Проверка наличия метки "несколько отзывов"
83+
LABEL_PRESENT=$(echo "$LABELS" | grep -q "несколько отзывов"; echo $?)
84+
echo "LABEL_PRESENT (0 если найдена, 1 если не найдена): $LABEL_PRESENT"
85+
86+
if [[ "$ACTOR" == "$AUTHOR" && "$LABEL_PRESENT" -eq 1 ]]; then
87+
echo "Reopening issue #$ISSUE_NUMBER"
88+
curl -X PATCH \
89+
-H "Authorization: token $TOKEN" \
90+
-H "Accept: application/vnd.github.v3+json" \
91+
https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER \
92+
-d '{"state": "open"}'
93+
else
94+
curl -X PATCH \
95+
-H "Authorization: token $TOKEN" \
96+
-H "Accept: application/vnd.github.v3+json" \
97+
https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER \
98+
-d '{"state": "closed"}'
99+
fi

0 commit comments

Comments
 (0)
Please sign in to comment.