# Gh Issue Release

> Manage Fabric8 Kubernetes Client release tracking issues. Creates the next version's release issue and completes the current version's issue after a release.

- Skill: `fabric8io/gh-issue-release` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add fabric8io/gh-issue-release`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fabric8io/gh-issue-release/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: fabric8io (https://skillmd.com/u/fabric8io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fabric8io/gh-issue-release

---


## Release Issue Manager

You are a core maintainer of the Fabric8 Kubernetes Client project (`fabric8io/kubernetes-client`).

After a release is published, you manage the release tracking issues:
1. Create a new tracking issue for the **next** version
2. Update the **current** version's tracking issue marking all tasks as completed with their links
3. Close the current version's tracking issue

### Arguments

- `$0` — The version that was just released (e.g., `7.6.0`) **(required)**
- `$1` — The next version to release (e.g., `7.7.0` or `8.0.0`) **(required)**

### Pre-fetched Release Context

```
!`${CLAUDE_SKILL_DIR}/scripts/get-release-context.sh "$0" "$1"`
```

### Running in a Sandbox

Every step talks to the GitHub API through `gh`. Inside the Claude Code sandbox `gh` commonly fails with `tls: failed to verify certificate: x509: OSStatus -26276` (macOS) or HTTP 401 (keyring-stored tokens are unreachable), so the repo's `.claude/settings.json` excludes `gh` and the context script from the sandbox. Only when a `gh` command (or the context script) still fails with such an error, rerun it with the sandbox disabled. If it still fails outside the sandbox, stop and report it to the user; never disable TLS verification.

### Process

#### 1. Validate Context

First check the pre-fetched context for failure markers:
- `!! MISSING_ARGS` — ask the user for the released and next versions, then run `${CLAUDE_SKILL_DIR}/scripts/get-release-context.sh "<released-version>" "<next-version>"` with the Bash tool.
- `!! GH_FETCH_FAILED` — check the error above it. A TLS or auth error means the injected command ran inside the sandbox: rerun `${CLAUDE_SKILL_DIR}/scripts/get-release-context.sh "$0" "$1"` with the Bash tool and the sandbox disabled. Otherwise report the error to the user.
- `!! LOOKUP_FAILED` — that single query failed (unlike `Not found`, it says nothing about whether the item exists). Rerun the script, or run the query yourself, before drawing conclusions.

Then review the context and verify:
- A release tracking issue exists for version `$0` and is **OPEN**
- The release tag `v$0` exists
- The milestone for `$0` exists
- A milestone for the next version `$1` exists
- A Quarkus version bump PR was found

If any critical item is missing (no release issue, no release tag), inform the user and stop.
If the next milestone is missing, ask the user for the milestone URL.
If the Quarkus PR was not found, ask the user for the URL using `AskUserQuestion`.

#### 2. Confirm Plan

Present a summary to the user showing what will be done:
- The next version release issue to be created (title, milestone, labels)
- The updates to the current release issue (body with checked tasks and links)
- The current issue will be closed
- The Quarkus PR that will be linked

Wait for user confirmation via `AskUserQuestion` before proceeding.

#### 3. Create Next Version Release Issue

If a release issue for the next version does **NOT** already exist, create it with `gh issue create`.

Use this exact format:

```
gh issue create --repo fabric8io/kubernetes-client \
  --title "Release Fabric8 Kubernetes Client <NEXT_VERSION>" \
  --label "status/never-stale" \
  --milestone "<NEXT_VERSION>" \
  --body "$(cat <<'EOF'
### Description

Issue to track the required tasks to release Fabric8 Kubernetes Client <NEXT_VERSION>
- [ ] <NEXT_VERSION_MILESTONE_URL>
- [ ] Prepare release
- [ ] Create issue for next release (and milestone if needed)
- [ ] Quarkus Version Bump
EOF
)"
```

If the next version release issue already exists, skip this step and inform the user.

#### 4. Update Current Version Release Issue

Update the current release issue body with all tasks checked and links filled in using `gh issue edit`:

```
gh issue edit <ISSUE_NUMBER> --repo fabric8io/kubernetes-client \
  --body "$(cat <<'EOF'
### Description

Issue to track the required tasks to release Fabric8 Kubernetes Client <VERSION>
- [x] <CURRENT_MILESTONE_URL>
- [x] Prepare release
  <RELEASE_TAG_URL>
- [x] Create issue for next release (and milestone if needed)
  <NEXT_MILESTONE_URL>
  #<NEXT_ISSUE_NUMBER>
- [x] Quarkus Version Bump
  <QUARKUS_PR_URL>
EOF
)"
```

#### 5. Close Current Version Release Issue

Close the current release issue:

```
gh issue close <ISSUE_NUMBER> --repo fabric8io/kubernetes-client --reason completed
```

#### 6. Summary

After all steps are complete, provide a summary with links to:
- The newly created (or existing) next version issue
- The updated and closed current version issue

