Skip to content

[External Mode] GitHub Action inputs, mode plumbing, and compatibility #285

@ArthurCRodrigues

Description

@ArthurCRodrigues

[External Mode] GitHub Action interface changes (inputs, env, validation, backwards compatibility)

Goal

Add a new Action execution mode (external / private) while preserving current repository-config mode.

Scope

  • Update action.yml inputs:

    • execution-mode (repo default, external optional)
    • grading-config-id (required in external)
    • autograder-cloud-url (required in external)
    • autograder-cloud-token (required in external)
  • Keep existing inputs for repo mode unchanged.

  • Update github_action/entrypoint.sh:

    • Pass new arguments to Python entrypoint when present.
    • Validate mode-specific required env vars.
  • Update github_action/main.py:

    • Parse new args.
    • Enforce mode-specific validation rules.
    • Route execution path based on mode.

Backwards Compatibility Requirements

  • Existing GitHub Classroom workflows (repo mode) continue working without modifications.
  • Existing required inputs keep same meaning in repo mode.

Acceptance Criteria

  • repo mode remains default and stable.
  • external mode fails fast with actionable errors when required params are missing.
  • external mode receives and passes config ID/cloud URL/token to service layer.
  • Unit tests cover arg validation and mode routing.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions