feat: add upload-image skill - #43
Open
saoudrizwan wants to merge 1 commit into
Open
Conversation
Uploads a local image to a public GitHub bucket repo via the contents API and returns its raw.githubusercontent.com URL for embedding in PR descriptions, issues, or markdown. Defaults the bucket to cline/assets-internal; requires push access to the bucket repo.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a new
upload-imageskill: upload a local image (screenshot, diagram, gif) and get back a public URL to embed in a GitHub PR description, issue, or any markdown.The skill commits the image into a public GitHub repo that acts as an image bucket and returns its
raw.githubusercontent.comURL. The bucket defaults tocline/assets-internalbut is aREPOvariable so anyone can point it at a public repo they can push to.Why this approach
We wanted a dead-simple "give me a URL for this screenshot" flow for writing PR descriptions, and evaluated the options:
gh release upload— works on a normal machine, but the upload goes touploads.github.com, which some restricted/sandboxed environments (e.g. agent sandboxes sitting behind an auth proxy) don't authenticate — you get401 Bad credentials. The contents API goes throughapi.github.com, which works everywhere, so committing the file is the portable path.The bucket repo must be public so the raw URLs render for anyone reading the PR (a private repo's URLs require auth and show as broken images).
Requirement / caveat
The skill commits the image, so it needs push access to the bucket repo. With the default
cline/assets-internalbucket that means being a Cline org member; external users without write access will get a403unless they changeREPOto a bucket they own. This is called out prominently at the top of the skill.How it works
How to test
gh auth status(authed with push access to a public bucket repo)REPOat that bucket,SRCat a local image, run the upload block from the skillcurl -sL -o /dev/null -w "HTTP %{http_code}" "$URL"returnsHTTP 200