Query
RequiredTextKeywords plus qualifiers.
shortcuts language:swift stars:>100
Find repositories by name, language, stars or topic.
First, connect GitHub in Services. Then open Actions → + → GitHub and choose Search Public Repositories.
The query is GitHub's own search syntax, so qualifiers do the real work: `language:swift`, `stars:>500`, `topic:shortcuts`, `user:apple`, `pushed:>2026-01-01`. Words with no qualifier are matched against the name, description and README.
Two limits are worth knowing before an action is built on this. Search allows 30 requests a minute, far less than the rest of the API, so a multi-page fetch here is expensive. And no search returns more than 1,000 results however many pages are requested — narrow the query rather than paging further.
Sorting is by best match unless Sort By is set; setting Direction alone does nothing.
Open an input to choose its value. Keep a fixed value with Text, receive it from Shortcuts, ask when the action runs, or use an Earlier Step. Read how input sources work.
Keywords plus qualifiers.
shortcuts language:swift stars:>100
Omit for best match.
Choices: stars, forks, help-wanted-issues, updated
Ignored unless Sort By is set.
Choices: desc, asc
Default: desc
1–100. GitHub silently clamps anything larger.
100
Starts at 1. Bind this to a Shortcuts slot if you want to page from a Repeat loop rather than fetching several pages in one go.
1
In the action editor, open Output → Returned Value to choose fields for your shortcut. These are the response fields described by the app; a service may omit an optional field or return an empty list. JSON File contains the full response.
| Returned field | Type | Meaning |
|---|---|---|
total_count | integer | Matches found, capped for paging at 1,000. |
incomplete_results | boolean | True when the search timed out and the list is partial. |
items | array | A list of values. |
items[].id | integer | Whole-number value. |
items[].name | string | Without the owner. |
items[].full_name | string | owner/repo. |
items[].description | string | Null when unset. |
items[].html_url | string | The repository page. |
items[].clone_url | string | HTTPS clone URL. |
items[].ssh_url | string | Text value. |
items[].homepage | string | Text value. |
items[].private | boolean | True or false. |
items[].visibility | string | public, private or internal. |
items[].fork | boolean | True or false. |
items[].archived | boolean | Archived repositories are read-only. |
items[].disabled | boolean | True or false. |
items[].default_branch | string | Usually main. |
items[].language | string | The most-used language, or null. |
items[].topics | array | Topic strings. |
items[].size | integer | Kilobytes. |
items[].stargazers_count | integer | Whole-number value. |
items[].watchers_count | integer | A copy of the star count, not watchers. |
items[].forks_count | integer | Whole-number value. |
items[].open_issues_count | integer | Open issues plus open pull requests. |
items[].has_issues | boolean | False means issues are turned off. |
items[].created_at | string | ISO 8601. |
items[].updated_at | string | Text value. |
items[].pushed_at | string | Last push to any branch. |
items[].owner | object | A group of named values. |
items[].owner.login | string | Username. |
items[].owner.id | integer | Whole-number value. |
items[].owner.html_url | string | Their profile page. |
items[].owner.avatar_url | string | Text value. |
items[].owner.type | string | User, Organization or Bot. |
items[].license | object | Null when the repository has no licence file. |
items[].license.key | string | mit, apache-2.0, … |
items[].license.name | string | Text value. |
items[].license.spdx_id | string | Text value. |
items[].permissions | object | What this token may do here. |
items[].permissions.admin | boolean | True or false. |
items[].permissions.push | boolean | Write access. |
items[].permissions.pull | boolean | Read access. |
items[].score | number | Relevance, only meaningful within one search. |
If the result is unexpected, open Logs in Shortcutify, select the run, and inspect this step’s inputs and response.
This action supports multiple pages of results. Open its Fetch setting to retrieve more pages when one page is not enough. Each page adds a service request.
Request: GET https://api.github.com/search/repositories
Action identifier: github.repos.search.v1
No additional per-action permissions are declared in the app’s catalog. The integration’s connection and account access rules still apply.
| Input | Request key | Location |
|---|---|---|
| Query | q | query |
| Sort By | sort | query |
| Direction | order | query |
| Page Size | per_page | query |
| Page | page | query |