{"id":18773588,"url":"https://github.com/protocol/multiple-go-modules","last_synced_at":"2026-03-19T06:18:25.062Z","repository":{"id":43175832,"uuid":"365580545","full_name":"protocol/multiple-go-modules","owner":"protocol","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-14T17:11:04.000Z","size":12,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-15T19:31:53.309Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/protocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2021-05-08T18:05:16.000Z","updated_at":"2021-11-12T09:40:15.000Z","dependencies_parsed_at":"2024-08-22T11:21:09.785Z","dependency_job_id":null,"html_url":"https://github.com/protocol/multiple-go-modules","commit_stats":{"total_commits":13,"total_committers":2,"mean_commits":6.5,"dds":0.07692307692307687,"last_synced_commit":"ac694baecddc63fc5ba8fe8262d46659fbbf911d"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocol%2Fmultiple-go-modules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocol%2Fmultiple-go-modules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocol%2Fmultiple-go-modules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocol%2Fmultiple-go-modules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/protocol","download_url":"https://codeload.github.com/protocol/multiple-go-modules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239680983,"owners_count":19679509,"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","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-11-07T19:34:31.066Z","updated_at":"2025-12-13T23:30:13.490Z","avatar_url":"https://github.com/protocol.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Action: multiple-go-modules\n\nGo allows a Git repository to contain multiple Go modules (i.e. multiple directory trees that have their own `go.mod` file).\nWhen running Go tools like `go test ./...` or `go vet ./...` from the parent directory, it will only recurse into directories belonging to the same Go module.\nIn order to run the command in all subdirectories, no matter which module they belong to, the command has to be invoked separately for every Go module.\n\nThis GitHub Action makes it easy to do this.\n\n## Usage\n\nTake the following example, running a command (or multiple commands) directly:\n\n```yml\nsteps:\n  - name: Code Quality Checks\n    run: go vet ./...\n```\n\nUsing this action, this would run the same command(s) in all Go modules:\n\n```yml\nsteps:\n  - name: Code Quality Checks\n    uses: protocol/multiple-go-modules@master\n    with:\n      run: go vet ./...\n```\n\nOptionally, the working directory can be specified, analagously to the [`working-directory` option on `run`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_iddefaultsrun):\n```yml\nsteps:\n  - name: Code Quality Checks\n    uses: protocol/multiple-go-modules@master\n    with:\n      working-directory: scripts\n      run: go vet ./...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotocol%2Fmultiple-go-modules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprotocol%2Fmultiple-go-modules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotocol%2Fmultiple-go-modules/lists"}