Agent Skills: gh-api

Use when managing draft PRs, posting PR comments, or querying GitHub Discussions

UncategorizedID: rcdailey/dotfiles/gh-api

Install this agent skill to your local

pnpm dlx add-skill https://github.com/rcdailey/dotfiles/tree/HEAD/home/dot_config/opencode/exact_skills/gh-api

Skill Files

Browse the full folder contents for gh-api.

Download Skill

Loading file tree…

home/dot_config/opencode/exact_skills/gh-api/SKILL.md

Skill Metadata

Name
gh-api
Description
Use when managing draft PRs, posting PR comments, or querying GitHub Discussions

Draft Pull Requests

Create a draft PR

gh api --method POST repos/:owner/:repo/pulls -f title="My new feature" -f body="Description of changes" -f head="feature-branch" -f base="main" -F draft=true

For cross-repo PRs, use head="username:branch".

Get PR details (check if draft)

gh api repos/:owner/:repo/pulls/<number>

Response includes "draft": true|false and "state": "open|closed".

Check if PR is draft (minimal output)

gh api repos/:owner/:repo/pulls/<number> --jq '{draft, state, title}'

Convert draft to ready for review

gh api --method PATCH repos/:owner/:repo/pulls/<number> -F draft=false

Note: Cannot convert back to draft via API once marked ready.

List open draft PRs

gh api repos/:owner/:repo/pulls --jq '.[] | select(.draft) | {number, title}'

List my open PRs in a repo

gh api repos/:owner/:repo/pulls -f state=open --jq '.[] | select(.user.login=="USERNAME") | {number, title, draft}'

PR Conversation Comments

Comments on the PR timeline (not on specific lines of code).

List conversation comments

gh api repos/:owner/:repo/issues/<number>/comments

Create a conversation comment

gh api --method POST repos/:owner/:repo/issues/<number>/comments -f body="Comment text"

Discussions (GraphQL)

List discussions:

gh api graphql -f query='query($owner:String!,$repo:String!) { repository(owner:$owner,name:$repo) { discussions(first:10) { nodes { number title url } } } }' -F owner=OWNER -F repo=REPO

View discussion:

gh api graphql -f query='query($owner:String!,$repo:String!,$number:Int!) { repository(owner:$owner,name:$repo) { discussion(number:$number) { title body comments(first:10) { nodes { body author { login } } } } } }' -F owner=OWNER -F repo=REPO -F number=NUM

Search discussions:

gh api graphql -f query='query($q:String!) { search(query:$q,type:DISCUSSION,first:10) { nodes { ...on Discussion { number title url } } } }' -f q="repo:OWNER/REPO QUERY"