{"id":28425199,"url":"https://github.com/metamask/action-utils","last_synced_at":"2025-06-25T21:31:10.903Z","repository":{"id":36961920,"uuid":"370770600","full_name":"MetaMask/action-utils","owner":"MetaMask","description":"Utilities for GitHub Actions.","archived":false,"fork":false,"pushed_at":"2025-03-28T16:12:11.000Z","size":56,"stargazers_count":5,"open_issues_count":3,"forks_count":5,"subscribers_count":35,"default_branch":"main","last_synced_at":"2025-06-20T04:06:00.345Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/MetaMask.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":"metamask","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-05-25T17:09:22.000Z","updated_at":"2025-04-04T03:31:41.000Z","dependencies_parsed_at":"2023-01-17T08:45:18.930Z","dependency_job_id":"312b88f1-d74c-41c0-bf91-497d308fde1d","html_url":"https://github.com/MetaMask/action-utils","commit_stats":{"total_commits":26,"total_committers":6,"mean_commits":4.333333333333333,"dds":"0.46153846153846156","last_synced_commit":"c57162aa925136e67cd6bda3b206b58c86e4cbf3"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":"MetaMask/metamask-module-template","purl":"pkg:github/MetaMask/action-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaMask%2Faction-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaMask%2Faction-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaMask%2Faction-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaMask%2Faction-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MetaMask","download_url":"https://codeload.github.com/MetaMask/action-utils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaMask%2Faction-utils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261955903,"owners_count":23235974,"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":"2025-06-05T10:36:34.755Z","updated_at":"2025-06-25T21:31:10.894Z","avatar_url":"https://github.com/MetaMask.png","language":"TypeScript","readme":"# @metamask/action-utils\n\nUtilities for MetaMask's GitHub Actions.\n\n## Installation\n\n`yarn add @metamask/action-utils`\n\nor\n\n`npm install @metamask/action-utils`\n\n## Usage\n\nFor example:\n\n```typescript\nimport {\n  getPackageManifest,\n  validatePackageManifestVersion,\n} from '@metamask/action-utils';\n\n// Partial\u003cPackageManifest\u003e\nconst rawManifest = await getPackageManifest('directory/package.json');\n\n// Partial\u003cPackageManifest\u003e \u0026 { version: string }\n// The version must be valid SemVer, or the function will throw.\n// The manifest is returned unmodified.\nconst manifestWithVersion = await validatePackageManifestVersion(\n  rawManifest,\n  'directory',\n);\n```\n\nFor more examples of how these utilities are used, see:\n\n- [MetaMask/action-publish-release](https://github.com/MetaMask/action-publish-release)\n- [MetaMask/action-create-release-pr](https://github.com/MetaMask/action-create-release-pr)\n\n## Testing\n\nRun `yarn test` to run the tests once.\n\nTo run tests on file changes, run `yarn test:watch`.\n\n## Release \u0026 Publishing\n\nThe project follows the same release process as the other libraries in the MetaMask organization:\n\n1. Create a release branch\n   - For a typical release, this would be based on `main`\n   - To update an older maintained major version, base the release branch on the major version branch (e.g. `1.x`)\n2. Update the changelog\n3. Update version in package.json file (e.g. `yarn version --minor --no-git-tag-version`)\n4. Create a pull request targeting the base branch (e.g. master or 1.x)\n5. Code review and QA\n6. Once approved, the PR is squashed \u0026 merged\n7. The commit on the base branch is tagged\n8. The tag can be published as needed\n","funding_links":["https://opencollective.com/metamask"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetamask%2Faction-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetamask%2Faction-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetamask%2Faction-utils/lists"}