{"id":16771077,"url":"https://github.com/ionbazan/composer-diff-action","last_synced_at":"2025-04-10T19:43:46.777Z","repository":{"id":43148500,"uuid":"352598497","full_name":"IonBazan/composer-diff-action","owner":"IonBazan","description":"Compare composer.lock files and generate human-readable list of package changes","archived":false,"fork":false,"pushed_at":"2025-02-06T07:29:40.000Z","size":52,"stargazers_count":21,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T01:24:45.529Z","etag":null,"topics":["composer","composer-diff","composer-plugin","diff","github","github-actions","markdown","packages","packagist","php","pullrequest"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/IonBazan.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},"funding":{"github":"IonBazan"}},"created_at":"2021-03-29T10:09:25.000Z","updated_at":"2025-02-08T04:35:16.000Z","dependencies_parsed_at":"2023-01-04T12:39:14.190Z","dependency_job_id":null,"html_url":"https://github.com/IonBazan/composer-diff-action","commit_stats":{"total_commits":23,"total_committers":3,"mean_commits":7.666666666666667,"dds":0.4782608695652174,"last_synced_commit":"d6157c5c42cdc37efdb6e5cf738aa9b25ee5b9ad"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IonBazan%2Fcomposer-diff-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IonBazan%2Fcomposer-diff-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IonBazan%2Fcomposer-diff-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IonBazan%2Fcomposer-diff-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IonBazan","download_url":"https://codeload.github.com/IonBazan/composer-diff-action/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248281424,"owners_count":21077423,"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":["composer","composer-diff","composer-plugin","diff","github","github-actions","markdown","packages","packagist","php","pullrequest"],"created_at":"2024-10-13T06:26:42.165Z","updated_at":"2025-04-10T19:43:46.754Z","avatar_url":"https://github.com/IonBazan.png","language":"Dockerfile","readme":"# Composer Diff action\n\nThis action compares your `composer.lock` files and generates human-readable report with packages changed in PR or commit using [composer-diff](https://github.com/IonBazan/composer-diff).\nYou may use the action output to annotate your code or add a comment to your Pull Request.\n\n## Example\n\nHere's an example of the Composer Diff Github Action providing feedback on a Pull Request:\n\n![preview](preview.png)\n\n_**Note:** you must use the actions/checkout step with `fetch-depth: 0` as shown below before running the Composer Diff action in order for it to function properly_\n_You may set it to `1` if you want to compare only with the previous commit._\n\n```yaml\nname: Composer Diff\non:\n  pull_request:\n    paths:\n      - 'composer.lock'\njobs:\n  composer-diff:\n    name: Composer Diff\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2\n        with:\n          fetch-depth: 0 # Required to make it possible to compare with PR base branch\n\n      - name: Generate composer diff\n        id: composer_diff # To reference the output in comment\n        uses: IonBazan/composer-diff-action@v1\n\n      - uses: marocchino/sticky-pull-request-comment@v2\n        # An empty diff result will break this action.\n        if: ${{ steps.composer_diff.outputs.composer_diff_exit_code != 0 }}\n        with:\n          header: composer-diff # Creates a collapsed comment with the report\n          message: |\n            \u003cdetails\u003e\n            \u003csummary\u003eComposer package changes\u003c/summary\u003e\n\n            ${{ steps.composer_diff.outputs.composer_diff }}\n\n            \u003c/details\u003e\n```\n\n## Inputs\n\nThis action takes same input arguments as the [composer-diff command](https://github.com/IonBazan/composer-diff#usage):\n\n- `base` - base (old) `composer.lock` path and/or git reference - default: `${{ github.event.pull_request.base.sha }}` (last commit in base branch of PR)\n\n  To use it with custom `composer.lock` path, follow `commit_hash:path/to/composer.lock` convention.\n- `target` - target (new) `composer.lock` path and/or git reference - default: `composer.lock` (current file version)\n\n  Follows same convention as `base` argument\n- `format` - output format - either `mdtable`, `mdlist` or `json` - see [composer-diff documentation](https://github.com/IonBazan/composer-diff#usage) - default: `mdtable`\n- `strict` - returns non-zero exit code if there are any changes - default: `false`\n- `no-dev` - excludes dev dependencies - default: `false`\n- `no-prod` - excludes prod dependencies - default: `false`\n- `direct` - only show direct dependencies - default: `false`\n- `with-platform` - include platform (`php`, `ext-*`) dependencies - default: `false`\n- `with-links` - adds compare/release URLs - default: `false`\n- `with-licenses` - adds license information - default: `false`\n- `extra-arguments` - additional arguments to be passed to the command - default: `--ansi` (for colorful output)\n\n## Outputs\n\nThis command produces an output named `composer_diff` containing the output of the command with stripped colors and prepared for processing further with other actions (creating a comment, annotation, etc.). \n\nResult of command is available as `composer_diff_exit_code`:\n\n*  `0` - OK.\n*  `1` - General error.\n*  `2` - There were changes in prod packages.\n*  `4` - There were changes is dev packages.\n*  `8` - There were downgrades in prod packages.\n* `16` - There were downgrades in dev packages.\n\nYou may reference it using:\n```yaml\nsteps:\n  - name: Generate composer diff\n    id: composer_diff\n    uses: IonBazan/composer-diff-action@v1\n  - uses: foo/bar@v1\n    with:\n      diff: ${{ steps.composer_diff.outputs.composer_diff }}\n```\n\n## Usage with push or schedule triggered workflows\n\nThis action is intended to be used with Pull Requests, hence `base` defaults to `${{ github.event.pull_request.base.sha }} ` which produces an empty string for runs triggered without a PR. This may cause issues when running it in a workflow triggered with a push or cron, producing an empty diff as `composer-diff` will use same file for base and head (see https://github.com/IonBazan/composer-diff-action/issues/9). \n\nTo prevent this from happening, set `base` parameter to `HEAD` (or any other git reference):\n\n```yml\n      - name: Generate composer diff\n        id: composer_diff # To reference the output in comment\n        uses: IonBazan/composer-diff-action@v1\n        with: \n          base: HEAD\n          no-dev: true\n          format: mdlist\n```\n","funding_links":["https://github.com/sponsors/IonBazan"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fionbazan%2Fcomposer-diff-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fionbazan%2Fcomposer-diff-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fionbazan%2Fcomposer-diff-action/lists"}