This repository uses GitHub Agentic Workflows to categorize the authenticated user's starred repositories into their actual GitHub Lists once a week.
It reads stars and existing Lists through GitHub's GraphQL API. The AI files
each star into the most suitable of your existing Lists, and a deterministic
step validates the plan before calling updateUserListsForItem. Lists are
managed manually: create them yourself at https://github.com/stars, and when
the AI thinks a new List would help it opens an issue instead of creating one.
Install the package into any GitHub repository with the guided wizard:
gh aw add-wizard yutkat/github-star-organizerThe installer adds the workflow, compiles its lock file, copies the companion
uv runtime under .github/workflows/github-star-organizer/, and records its
source for future updates. Pull upstream releases later with gh aw update.
- Enable GitHub Actions in the repository where the package was installed.
- Create one classic personal access token with the
userscope and save it as the Actions secretSTAR_LISTS_TOKEN. It reads stars and Lists and performs the List updates; GitHub Lists mutations reject fine-grained tokens, so this must be a classic token. - Create one fine-grained personal access token owned by the same user with
only the
Copilot Requestspermission and save it as the Actions secretCOPILOT_GITHUB_TOKEN. It is used solely to authenticate the Copilot engine, which ignores classic tokens. - Run
Categorize starred repositoriesmanually from the Actions tab once.
Set expirations appropriate for the deployment and rotate the repository secrets before they expire.
See GitHub's documentation for creating a fine-grained PAT.
- Runs weekly on Monday at a time distributed by GitHub Agentic Workflows and supports manual dispatch.
- Scheduled runs inspect only stars added during the preceding seven days.
- Manual runs default to the same weekly scope; select
fullexplicitly to process the complete uncategorized backlog. - Retrieves the token owner's stars and Lists, without a hard-coded username.
- Skips repositories that already belong to at least one List.
- Preserves existing and concurrent List memberships.
- Never creates or edits Lists; new List ideas are filed as issues on this repository (at most one per run).
- Writes classifications directly to GitHub Lists; no Markdown catalog is used.
To avoid sending thousands of stars to the agent at once, each run normally
processes up to 500 uncategorized repositories. Repeat manual runs to complete
the initial backfill. Run the manual full scope after a failed or disabled
scheduled run to recover stars outside the seven-day window.
If you edit the Agentic Workflow source, run gh aw compile and commit the
generated .github/workflows/categorize-stars.lock.yml as well.
Python is managed with uv. Run the test suite with:
uv run --frozen python -m unittest -vGitHub Agentic Workflows and GitHub Lists are evolving features. Recompile and
run the workflow manually after upgrading gh-aw.