Skip to main content
Version: Next (unreleased)

Assessment Issue & PDF

GrillMyCode always delivers the assessment as a GitHub Issue with a PDF download link — no inputs are required to enable this. This page describes how the delivery works and how to use the action outputs.

Copy this file to .github/workflows/grill-my-code.yml in the student repository.

name: GrillMyCode

on:
push:
branches: ["main", "master"]
workflow_dispatch:

# A new push cancels any run still in progress for the same branch,
# so only the latest commit is ever assessed (see FAQ).
# Do not modify this setting unless you have a compelling reason to.
concurrency:
group: grillmycode-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
generate-questions:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: write # gmc-assessments release + PDF asset
issues: write # assessment issue
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0 # full history required for diff resolution

- uses: NSCC-ITC-Assessment/GrillMyCode@v1
id: assess
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
api_key: ${{ secrets.OPENROUTER_API_KEY }}
# If desired, uncomment this input and edit to use a different one —
# any model from https://openrouter.ai/models (provider/model-name).
# ai_model: "google/gemini-3.5-flash-lite"
num_questions: "20"
instructor_context: |
Assignment 2 — Linked lists. Prioritize execution flow
questions that trace pointer state after insertion or
deletion, and at least one error identification question
about empty or single-node edge cases.

- name: Print issue link
run: echo "Assessment issue ${{ steps.assess.outputs.issue_url }}"

Issue assignment

The created issue is automatically assigned to the student who authored the head commit.

Every push regenerates the questions

Each push to the default branch triggers a full regeneration. The existing issue body is overwritten with the new questions — the issue number and URL stay the same, preserving comment history. Any duplicate issues for the same branch are deleted; if the workflow token lacks permission to delete them, they are left in place with a warning in the Actions log. A note comment is added each time, recording when the run occurred and at which commit SHA.

PDF download

The PDF is attached to a rolling GitHub Release tagged gmc-assessments and linked from the issue body. The download URL is stable — re-running the action replaces the asset while keeping the same URL. The pdf_url output exposes it for use in downstream steps.