https://github.com/ryanatkn/fuz_gitops
a tool for managing many repos 🪄
https://github.com/ryanatkn/fuz_gitops
Last synced: 2 months ago
JSON representation
a tool for managing many repos 🪄
- Host: GitHub
- URL: https://github.com/ryanatkn/fuz_gitops
- Owner: ryanatkn
- License: mit
- Created: 2023-10-17T22:30:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-14T20:06:37.000Z (about 1 year ago)
- Last Synced: 2024-04-15T03:01:33.848Z (about 1 year ago)
- Language: Svelte
- Homepage: https://gitops.fuz.dev/
- Size: 520 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# fuz_gitops
[
](https://gitops.fuz.dev/)
> a tool for managing many repos 🪄 [gitops.fuz.dev](https://gitops.fuz.dev/)
fuz_gitops is alternative to the monorepo pattern that more loosely couples repos:
- enables automations across repos without requiring them to be in the same monorepo
- allows each repo to be managed from multiple fuz_gitops projects
- runs automations locally on your machine, giving you full control and visibility
(big tradeoffs in both directions compared to GitHub actions)With fuz_gitops you can:
- fetch metadata about collections of repos and import it as typesafe JSON (using
[Gro's public package patterns](https://github.com/grogarden/gro/blob/main/src/lib/docs/gro_plugin_sveltekit_frontend.md#well_known_package_json))
- publish a generated docs website for your collections of repos
- import its components to view and interact with repo collection metadata
- publish metadata about your collections of repos to the web for other users and toolsplanned additions:
- run updating operations and other workflows from the frontend in dev mode
(ultimately, an `update all` button)## Usage
```bash
npm i -D @ryanatkn/fuz_gitops
```- configure [`gitops.config.ts`](/gitops.config.ts)
- fuz_gitops calls the GitHub API using the environment variable `SECRET_GITHUB_API_TOKEN` for authorization,
which is a [classic GitHub token](https://github.com/settings/tokens)
(with "public access" for public repos, no options selected)
or a [fine-grainted GitHub token (beta)](https://github.com/settings/tokens?type=beta)
(with `"Public Repositories (read-only)"` selected)
in either `process.env`, a project-local `.env`, or the parent directory at `../.env`
(currently optional to read public repos, but it's recommended regardless,
and you'll need to select options to support private repos)
- re-export the `gro gitops` task by creating `$lib/gitops.task.ts` with
the contents `export * from '@ryanatkn/fuz_gitops/gitops.task.js';`
- run `gro gitops` to update the local dataGetting started as a dev? Start with [Gro](https://github.com/grogarden/gro)
and the [Fuz template](https://github.com/fuz-dev/fuz_template).TODO
- figure out better automation than manually running `gro gitops`
- show the rate limit info
- think about how fuz_gitops could better leverage both GitHub Actions and
[Forgejo Actions](https://forgejo.org/docs/v1.20/user/actions/)
without unwieldy compat## License [🐦](https://wikipedia.org/wiki/Free_and_open-source_software)
[MIT](LICENSE)