Автоматически отмечаем +
в таблице Google Sheet при успешном прохождении тестов.
На вход имеем таблицу:
# | Фамилия Имя | Контакты | Github | ... |
---|---|---|---|---|
1 | Романов Алексей | @romanowalex | romanow | ... |
2 | Иванов Иван | @notexisting | ivanov | ... |
3 | Сидоренко Николай | @sidorenko | sidorenko | ... |
По имени пользователя ищем строку, но номеру лабораторной вычисляем столбец.
- uses: romanow/google-sheet-autograder-marker@v1.0
with:
sheet_id: "<google-sheet-id>"
google_token: "<google-service-account-token>"
homework_number: 1
user_column: "D"
column_offset: "F"
mark: "'+"
Название | Тип | Описание | Обязательность | Значение по-умолчанию |
---|---|---|---|---|
sheet_id | string | ID таблицы в Google Sheet | + | |
google_token | string | Google Service token | + | |
homework_number | number | Номер работы | + | |
mark | string | Отметка | - | + |
user_column | string | Номер колонки с пользователем | - | D |
column_offset | string | Базовое смещение колонки | - | F |
- Google API key получаем через параметры action. Регистрируем как JWT.
- Пользователя, который запустил сборку, получаем из
github_user
, который подставляется в default как параметр Github Context (${{ github.actor }}
). - Запрашиваем строки 1:100 в колонке
user_column
, в полученных данных ищем пользователя. Если нашли, то получаем индекс строкиrow
. - По номеру лабораторной работы
homework_ number
и базового смещенияcolumn_offset
вычисляем номер колонкиcolumn
, в которой нужно поставить отметку. - Ставим отметку
mark
в строкеrow
из п.3 и колонкеcolumn
.
- Зайти в Google Cloud Platform -> Manage Resources -> Create Project: Github Classroom Autograder.
- Manage Service Account -> Create Service Account. Использовать роль Viewer.
- Включить Google Sheet API для Github Classroom Autograder.
- Создать Credentials для Service Account:
Credetials
->Service Accounts
->Keys
->Add Key
->Create new key
: JSON ->Create
. - Будет скачан файл в фомате
json
, все содержимое этого файла добавить как Organization Secret с именемGOOGLE_API_KEY
. - Добавить Service Account (email) как редактора в Google Sheet.
Создание Service Account описано здесь.