{"id":17887562,"url":"https://github.com/sheldonhull/daggerverse","last_synced_at":"2025-08-18T11:43:26.310Z","repository":{"id":228106059,"uuid":"773176030","full_name":"sheldonhull/daggerverse","owner":"sheldonhull","description":"Dagger functions","archived":false,"fork":false,"pushed_at":"2025-07-21T06:35:44.000Z","size":90,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-24T04:05:33.988Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sheldonhull.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-17T00:00:23.000Z","updated_at":"2025-07-21T06:35:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"53c9ebaa-873f-408d-bc82-92736770f992","html_url":"https://github.com/sheldonhull/daggerverse","commit_stats":null,"previous_names":["sheldonhull/daggerverse"],"tags_count":0,"template":false,"template_full_name":"sheldonhull/scripts-to-rule-them-all-go","purl":"pkg:github/sheldonhull/daggerverse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonhull%2Fdaggerverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonhull%2Fdaggerverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonhull%2Fdaggerverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonhull%2Fdaggerverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sheldonhull","download_url":"https://codeload.github.com/sheldonhull/daggerverse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheldonhull%2Fdaggerverse/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267576068,"owners_count":24110309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T13:30:23.618Z","updated_at":"2025-07-28T19:37:06.264Z","avatar_url":"https://github.com/sheldonhull.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scripts-to-rule-them-all-go\n\nInspired from the 2015 repo for \"Scripts to Rule Them All\", this applies that same concept but with using a more modern toolchain like Go and Mage.\nMage provides a Go based task runner that can replace makefiles, custom bash/python/powershell scripts, and instead provide a cross-platform common set of commands to run a project.\n\n\u003e 2022-03 🚧 WIP - Bringing in a few more examples. It's ready to use for basics though!\n\n## Why Mage\n\n- Mage is cross-platform.\n- Mage is Go. Go is fun. Go helps write really robust safe code with the error handling.\n- Easy to plug-in to CI since Mage is just Go.\n\n## Why This Template?\n\nThis project is a template to help bootstrap a new project with a few things that normally result in more setup work.\nI've tended to standardize on a few key things.\n\n- If it's complicated and I do periodically, wrap up the bash script commands in Go instead if it's only a few minutes of work.\n- If I can, I'll use a package, but for things that are more complicated (like Kubernetes), start with just wrapping up kubectl commands and go from there.\n\nNormal tasks:\n\n### Included \u0026 Prebaked\n\n- Aqua: install project tooling with [aqua](https://aquaproj.github.io/docs/tutorial-basics/quick-start#install-aqua) and run `aqua install` to get tools setup.\n- `init`: All projects bootstrap from this. It runs go mod tidy, go installs, and is extended for any other tools as well.\n  For example, I'll add `asdf:install` to the `init` task and let it also ensure all apps I want are setup.\n- `devcontainer:build`: Locally run the steps to grab the image and build a local containerized devcontainer to work in.\n\n## You Want More?\n\n👉 Checkout [magetools](https://github.com/sheldonhull/magetools)\n\nI've been steadily baking automation tasks that are tested and reusable in there.\nMost of the tasks self-setup any tooling as well.\n\n### Custom\n\n- `publish`: Focused on CI based publishing with a tool like `goreleaser` or `ko`.\n- `bump`: Semantic versions\n- `doctor`: Anytime a setup/problem in the project is experienced I try to add a diagnostic check on versions of apps, env vars, and other things and return this as a pass/fail or info table to summarize in a very clean way. This uses pterm.\n\n## Example Output\n\nRunning `mage` in a brand new project.\n\n```text\n⚡ Core Mage Tasks\n\nTargets:\n  clean                  up after yourself.\n  gittools:init          ⚙️ Init runs all required steps to use this package.\n  go:doctor              🏥 Doctor will provide config details.\n  go:fix                 🔎 Run golangci-lint and apply any auto-fix.\n  go:fmt                 ✨ Fmt runs gofumpt.\n  go:init                ⚙️ Init runs all required steps to use this package.\n  go:lint                🔎 Run golangci-lint without fixing.\n  go:lintConfig          🏥 LintConfig will return output of golangci-lint config.\n  go:test                🧪 Run go test.\n  go:testSum             🧪 Run gotestsum (Params: Path just like you pass to go test, ie ./..., pkg/, etc ).\n  go:tidy                🧹 Tidy tidies.\n  go:wrap                ✨ Wrap runs golines powered by gofumpt.\n  init                   runs multiple tasks to initialize all the requirements for running a project for a new contributor.\n  precommit:commit       🧪 Commit runs pre-commit checks using pre-commit.\n  precommit:init         ⚙️ Init configures precommit hooks.\n  precommit:prepush      🧪 Push runs pre-push checks using pre-commit.\n  precommit:uninstall    ✖ Uninstall removes the pre-commit hooks.\n  secrets:detect         🔐 Detect scans for secret violations with gitleaks without git consideration.\n  secrets:protect        🔐 Protect scans the staged artifacts for violations.\n```\n\n## Template\n\nYou can use this as a template to get started with a project ready to run using Mage.\n\n## Setup\n\n- Multiple options to install on [Mage - Docs](https://magefile.org/)\n- Additional options:\n\n### Using Go (won't have version info embedded)\n\n```go\ngo install github.com/magefile/mage@latest\n```\n\n## Note\n\nOptional: maintain `//go:build mage` to avoid impacting test coverage reports.\n\nI've added this to the tags for language server build to recognize so you can use code completion.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheldonhull%2Fdaggerverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsheldonhull%2Fdaggerverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheldonhull%2Fdaggerverse/lists"}