Skip to content

feat: Automated Go version bump via GitHub Actions + Copilot Agent #4366

@behzad-mir

Description

@behzad-mir

Summary

Create an automated pipeline that periodically checks for new Go versions and opens PRs to bump the Go toolchain.

Architecture

Weekly Cron (GitHub Actions)
  → Check MCR for new Go patch versions
  → If newer version found:
    → Create a GitHub Issue with version details, SHAs, file list
    → Assign to Copilot coding agent
  → Copilot agent picks up the issue:
    → Creates branch
    → Updates all version files
    → Runs `make dockerfiles`
    → Opens PR

Components

1. Scheduled GitHub Actions Workflow

File: .github/workflows/go-version-check.yml

  • Trigger: Weekly cron + manual workflow_dispatch
  • Logic:
    1. Query MCR for latest Go patch in current minor series (e.g., 1.26.x)
    2. Compare against current version in build/images.mk
    3. If newer → get SHAs via skopeo inspect
    4. Create GitHub Issue with structured body (version, SHAs, file checklist)
    5. Label issue for Copilot agent pickup

2. Copilot Agent Instructions

Update .github/copilot-instructions.md with Go version update procedure:

  • Reference file list and update order
  • Step-by-step: update images.mkmake dockerfiles → manual files → go mod tidy

3. Issue Template

File: .github/ISSUE_TEMPLATE/go-version-bump.yml

  • Structured template for Go version bump issues
  • Pre-filled with file checklist and SHA commands

Files to Update

  • .github/workflows/go-version-check.yml (new)
  • .github/copilot-instructions.md (update with Go bump procedure)
  • .github/ISSUE_TEMPLATE/go-version-bump.yml (new)

Acceptance Criteria

  • Workflow detects new Go patch versions
  • Issue is created with correct version and SHA information
  • Copilot agent can process the issue and open a valid PR
  • Manual workflow_dispatch works for on-demand checks

Metadata

Metadata

Assignees

No one assigned

    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