{"id":15677886,"url":"https://github.com/jamiemason/syncpack-github-action","last_synced_at":"2025-05-07T01:45:42.046Z","repository":{"id":39533421,"uuid":"492546015","full_name":"JamieMason/syncpack-github-action","owner":"JamieMason","description":"A GitHub Action to synchronise monorepo dependency versions with syncpack.","archived":false,"fork":false,"pushed_at":"2023-09-14T09:50:35.000Z","size":9,"stargazers_count":14,"open_issues_count":4,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-18T19:35:06.462Z","etag":null,"topics":["dependencies","github-actions","lerna","monorepo","npm","pnpm","semver","versions","workspaces","yarn"],"latest_commit_sha":null,"homepage":"","language":null,"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/JamieMason.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"JamieMason"}},"created_at":"2022-05-15T16:46:02.000Z","updated_at":"2024-10-04T19:09:31.000Z","dependencies_parsed_at":"2024-06-21T14:17:24.245Z","dependency_job_id":"11ca4dd4-148f-4ab6-9b41-8caa4fb2110a","html_url":"https://github.com/JamieMason/syncpack-github-action","commit_stats":{"total_commits":7,"total_committers":4,"mean_commits":1.75,"dds":0.5714285714285714,"last_synced_commit":"ef06019082d0dfe291b49c9858fd25fd121207d4"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Fsyncpack-github-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Fsyncpack-github-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Fsyncpack-github-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Fsyncpack-github-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamieMason","download_url":"https://codeload.github.com/JamieMason/syncpack-github-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252798770,"owners_count":21805879,"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":["dependencies","github-actions","lerna","monorepo","npm","pnpm","semver","versions","workspaces","yarn"],"created_at":"2024-10-03T16:13:36.688Z","updated_at":"2025-05-07T01:45:42.030Z","avatar_url":"https://github.com/JamieMason.png","language":null,"funding_links":["https://github.com/sponsors/JamieMason"],"categories":[],"sub_categories":[],"readme":"# syncpack-github-action\n\nA GitHub Action to Synchronise monorepo dependency versions with [`syncpack`](https://github.com/JamieMason/syncpack).\n\n## ⚠️ Project Status\n\n[`syncpack`](https://github.com/JamieMason/syncpack) is stable but this GitHub Action is very new (May 15th 2022).\n\n## 🌩 Installation\n\n1. Create a [`.syncpackrc`](https://github.com/JamieMason/syncpack#-configuration-file) file in the root of your project.\n   ```json\n   {\n     \"dev\": true,\n     \"filter\": \".\",\n     \"indent\": \"  \",\n     \"overrides\": true,\n     \"peer\": true,\n     \"prod\": true,\n     \"resolutions\": true,\n     \"workspace\": true,\n     \"semverGroups\": [],\n     \"semverRange\": \"\",\n     \"sortAz\": [\n       \"contributors\",\n       \"dependencies\",\n       \"devDependencies\",\n       \"keywords\",\n       \"peerDependencies\",\n       \"resolutions\",\n       \"scripts\"\n     ],\n     \"sortFirst\": [\"name\", \"description\", \"version\", \"author\"],\n     \"source\": [],\n     \"versionGroups\": []\n   }\n   ```\n1. Create a `/.github/workflows/syncpack.yml` workflow to run syncpack on Pull Requests.\n\n   ```yaml\n   on:\n     # Run whenever a pull request is updated\n     pull_request:\n       branches:\n         - main\n   jobs:\n     syncpack:\n       runs-on: ubuntu-latest\n       name: syncpack\n       steps:\n         # Check out the branch so we can read/write its files\n         - uses: actions/checkout@v3\n         # Use Node.js as syncpack is written in that\n         - uses: actions/setup-node@v3\n           with:\n             node-version: 16\n         - uses: JamieMason/syncpack-github-action@0.2.3\n           env:\n             # If any options are set to 'fix' then\n             # env.GITHUB_TOKEN is needed to push to PRs\n             GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n   ```\n\n1. Unless you don't plan to use `fix` to commit automatic fixes to your Pull Requests, go to `/settings/actions` in your repository and enable **Read and write permissions** under **Workflow permissions**.\n\n## 🛠 Settings\n\nAll settings are optional, and their default values are listed below.\n\n```yaml\nwith:\n  # Email to be used when the GitHub Action Commits and Comments\n  bot-email: 'github-actions@github.com'\n  # GitHub Username to be used when the GitHub Action Commits and\n  # Comments\n  bot-username: 'github-actions[bot]'\n  # Commit message to be used when auto-fixing PRs\n  commit-message: 'chore(syncpack): format and sync package.json files'\n  # How to handle unconventional formatting/ordering of package.json\n  # files\n  #\n  # * 'fix' - Auto-fix and commit to the PR\n  # * 'ignore' - Do nothing\n  format-mismatches: 'fix'\n  # Whether to update package-lock.json, pnpm-lock.yaml, or yarn.lock\n  # when semver range or version mismatches have been auto-fixed\n  #\n  # * 'fix' - Auto-fix and commit to the PR\n  # * 'ignore' - Do nothing\n  lockfile-mismatches: 'fix'\n  # The specific version of your chosen `package-manager`\n  package-manager-version: 'latest'\n  # What to use to update your lockfile\n  #\n  # * 'npm'\n  # * 'pnpm'\n  # * 'yarn'\n  package-manager: 'npm'\n  # Ensure dependency versions follow a consistent format\n  #\n  # * 'lint' - Block merging the PR until manually fixed\n  # * 'fix' - Auto-fix and commit to the PR\n  # * 'ignore' - Do nothing\n  semver-range-mismatches: 'fix'\n  # Migrate to a newer version of syncpack than was available at the\n  # time of writing this GitHub action\n  syncpack-version: '7.2.1'\n  # How to handle dependencies which are required by multiple packages,\n  # where the version is not the same across every package\n  #\n  # * 'lint' - Block merging the PR until manually fixed\n  # * 'fix' - Auto-fix and commit to the PR\n  # * 'ignore' - Do nothing\n  version-mismatches: 'fix'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamiemason%2Fsyncpack-github-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamiemason%2Fsyncpack-github-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamiemason%2Fsyncpack-github-action/lists"}