Skip to content

GitHub CLI v2.102.0 compatibility review #31

Description

@github-actions

GitHub CLI v2.102.0 is available. SkillView currently requires gh 2.97.0+.

  • Run the required contract tests against gh 2.97.0 and 2.102.0.
  • Compare gh skill --help, search/preview/install/update/list flags, and JSON output with SkillView's adapters.
  • Diff gh skill install --help agent selectors against InstallAgentCatalog and its tests.
  • Check extension launch, GH_PATH, authentication, install defaults, and any release-note changes to gh skill.
  • Update the minimum only when a needed behavior requires it. Ask Copilot to propose focused tests or fixes; keep changes under human review.

Suggested checks from release notes:

  • gh skill subcommands, agent selectors, and install defaults
  • JSON inventory/search output and parser fixtures
  • extension launch, GH_PATH, authentication, and subprocess selection

Activity

  1. harder commented on Oct 5, 2026

    @harder
    Owner

    Initial compatibility investigation for gh 2.102.0:

    • The relevant upstream change is the gh skill search option-injection fix. Upstream commit adds -- before repository/skill selectors in its interactive install path. SkillView uses JSON search, so it does not invoke that interactive path.
    • SkillView's own install adapter accepted selectors from search results without this boundary. PR #33 adds it to both install and read-only listing, with a regression test.
    • The existing scheduled contract run passed its six checks on gh 2.102.0 and 2.97.0. Locally, the expanded seven-test contract suite passed on 2.102.0, all 48 current agent selectors matched InstallAgentCatalog, and SkillView JSON search returned parsed results.

    I found no evidence of a breaking command or JSON change for SkillView in this release. The contract suite does not exercise every interactive path, and PR #33 is still awaiting CI. I will close this issue after that fix and the manual Copilot assessment are verified.

  2. github-actions commented on Oct 5, 2026

    @github-actions
    Author

    Copilot compatibility assessment

    Automated analysis of upstream notes and SkillView source. Verify conclusions before changing dependencies or minimum versions.

    What changed

    gh 2.102.0 fixes four security advisories: symlink-redirected writes in gh release download/gh run download/gh repo read-file --output/gh attestation download (GHSA-39wj-f2f4-978v), case-insensitive --source-ref matching in gh attestation verify (GHSA-4mq3-hpgx-9cx8), prefix-only --signer-workflow matching in gh attestation verify (GHSA-wjmr-j3rp-mh2g), and — the one relevant item — an option-injection bug where interactive gh skill search passed a search result's repository path to gh skill install without an option separator, letting a crafted result inject installer flags and redirect where skill files were written (GHSA-qcwj-mr2r-2cx7). The remaining What's Changed items are unrelated CLI fixes/docs/dependency bumps, not gh skill changes.

    SkillView impact

    GHSA-qcwj-mr2r-2cx7 describes a bug in gh's own interactive gh skill search → install flow, not a bug in SkillView's adapter code. Per AGENTS.md, SkillView already treats this exact class of injection as a standing invariant: GhSkillInstallService.BuildArgs/BuildListArgs (src/SkillView.Core/Gh/GhSkillInstallService.cs) place trusted flags before -- and put repository/skill selectors (which may originate from search results) after it, and --pin is always emitted as --pin=<ref> rather than a bare flag. This advisory is evidence that gh's own CLI needed the fix SkillView already applies at its process-call boundary — it does not indicate SkillView needs a code change. The release notes show no changes to gh skill subcommand surface, flags, JSON schema, or agent selectors, so InstallAgentCatalog (src/SkillView.Core/Gh/Models and related install/search services) and Terminal.Gui-facing behavior appear unaffected. I did not find any release-note detail on the three attestation/download fixes beyond the advisories, so I cannot assess those beyond "not applicable to gh skill."

    Compatibility assessment

    Likely compatible. Evidence: the only gh skill-adjacent advisory (GHSA-qcwj-mr2r-2cx7) describes a vulnerability in gh's own interactive flow that SkillView's existing -- boundary already defends against independently, and the changelog lists no gh skill flag/JSON/behavior changes between 2.97.0 and 2.102.0. Limits: I have not run the contract-test suite against 2.102.0, diffed live gh skill install --help/gh skill search --help output, or exercised install/search/update/TUI flows against the new binary — passing help/flag contract tests in CI (if any exist) would not by itself confirm install, search, or TUI runtime behavior, and none of that has been executed here.

    Focused follow-up

    1. Run the required contract-test lane against gh 2.102.0 (per agent_docs/running-tests.md) and diff gh skill --help / gh skill install --help output against InstallAgentCatalog and the search/install adapters to confirm no silent flag/output drift.
    2. Manually exercise gh skill search → SkillView install (not gh's own interactive flow) against 2.102.0 to confirm SkillView's -- separator still produces the expected argv with a search-result-derived selector.
    3. No action needed on the attestation/download advisories — SkillView does not call gh attestation or gh release/run download; confirm that remains true if those commands are ever adopted.
  3. harder commented on Oct 5, 2026

    @harder
    Owner

    Resolved by #33, merged to main as bb46663.

    GitHub CLI 2.102.0 fixes the interactive gh skill search → install option-injection vulnerability (GHSA-qcwj-mr2r-2cx7). SkillView uses JSON search and does not invoke that interactive path. We nevertheless hardened SkillView's own install/list argument construction by placing untrusted selectors after --, and corrected --pin, --upstream, and skill-version argument handling with regression coverage.

    Compatibility verification: the live contract lane passed for both the minimum supported gh 2.97.0 and current 2.102.0; seven local contract tests passed on 2.102.0; all 48 supported agent selectors matched the CLI help; JSON search parsed successfully; and a read-only gh skill install --pin=v2.102.0 -- cli/cli listing worked. PR #33 passed tests on Linux, macOS, and Windows, four AOT publish checks, CodeQL, workflow lint, site checks, and Copilot PR review. No breaking gh skill command, flag, or JSON change was found, so SkillView's minimum remains 2.97.0.

    The new issue workflow also ran successfully against this issue: deterministic release highlights and focused checks were published, and Copilot produced a validated compatibility assessment. Future runs will retry missing or malformed assessments and can be dispatched for manual reassessment. The Copilot comment is an automated analysis; the verification results above are from actual tests and source inspection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

critical-dependencyUpstream release requiring SkillView compatibility review

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions