{"id":21273281,"url":"https://github.com/sclorg/auto-merge-wrapper","last_synced_at":"2026-01-03T11:08:12.658Z","repository":{"id":249110378,"uuid":"830516084","full_name":"sclorg/auto-merge-wrapper","owner":"sclorg","description":"GitHub Action for automatic merging of PR within sclorg","archived":false,"fork":false,"pushed_at":"2024-10-23T11:54:12.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-01-22T03:09:13.796Z","etag":null,"topics":["automation","ci","github-action"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sclorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2024-07-18T12:31:40.000Z","updated_at":"2024-09-27T10:02:34.000Z","dependencies_parsed_at":"2024-07-18T17:31:09.892Z","dependency_job_id":null,"html_url":"https://github.com/sclorg/auto-merge-wrapper","commit_stats":null,"previous_names":["sclorg/auto-merge-wrapper"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sclorg%2Fauto-merge-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sclorg%2Fauto-merge-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sclorg%2Fauto-merge-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sclorg%2Fauto-merge-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sclorg","download_url":"https://codeload.github.com/sclorg/auto-merge-wrapper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243732252,"owners_count":20338831,"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":["automation","ci","github-action"],"created_at":"2024-11-21T09:13:17.958Z","updated_at":"2026-01-03T11:08:12.601Z","avatar_url":"https://github.com/sclorg.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Auto Merge wrapper\n\nA simple composite GitHub Action that composes the Actions needed to automatically merge a Pull Requests when all required checks have passed (e.g. CI, review, etc).\n\n## Usage\n\n### On Pull Request\n\n```yaml\nname: Gather Pull Request Metadata\non:\n  pull_request:\n    types: [ opened, reopened, synchronize ]\n    branches: [ master ]\n\npermissions:\n  contents: read\n\njobs:\n  gather-metadata:\n    if: github.repository_owner == 'sclorg'\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Repository checkout\n        uses: actions/checkout@v4\n\n      - id: Metadata\n        name: Gather Pull Request Metadata\n        uses: redhat-plumbers-in-action/gather-pull-request-metadata@v1\n\n      - name: Upload artifact with gathered metadata\n        uses: actions/upload-artifact@v4\n        with:\n          name: pr-metadata\n          path: ${{ steps.Metadata.outputs.metadata-file }}\n```\n\n```yaml\nname: Auto Merge\non:\n  workflow_run:\n    workflows: [ Gather Pull Request Metadata ]\n    types:\n      - completed\n\npermissions:\n  contents: read\n\njobs:\n  download-metadata:\n    if: \u003e\n      github.event.workflow_run.event == 'pull_request' \u0026\u0026\n      github.event.workflow_run.conclusion == 'success'\n    runs-on: ubuntu-latest\n\n    outputs:\n      pr-metadata: ${{ steps.Artifact.outputs.pr-metadata-json }}\n\n    steps:\n      - id: Artifact\n        name: Download Artifact\n        uses: redhat-plumbers-in-action/download-artifact@v1\n        with:\n          name: pr-metadata\n\n  auto-merge:\n    needs: [ download-metadata ]\n    runs-on: ubuntu-latest\n\n    permissions:\n      # required for merging PRs\n      contents: write\n      # required for PR comments and setting labels\n      pull-requests: write\n\n    steps:\n      - name: Auto Merge wrapper\n        uses: sclorg/auto-merge-wrapper@v1\n        with:\n          pr-metadata: ${{ needs.download-metadata.outputs.pr-metadata }}\n          token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n### On Schedule / On Demand\n\n```yaml\nname: Auto Merge Scheduled / On Demand\non:\n  schedule:\n    # Workflow runs every 30 minutes\n    - cron: '*/30 * * * *'\n  workflow_dispatch:\n    inputs:\n      pr-number:\n        description: 'Pull Request number/s ; when not provided, the workflow will run for all open PRs'\n        required: true\n        default: '0'\n\npermissions:\n  contents: read\n\njobs:\n  # Get all open PRs\n  gather-pull-requests:\n    if: github.repository_owner == 'sclorg'\n    runs-on: ubuntu-latest\n\n    outputs:\n      pr-numbers: ${{ steps.get-pr-numbers.outputs.result }}\n      pr-numbers-manual: ${{ steps.parse-manual-input.outputs.result }}\n\n    steps:\n      - id: get-pr-numbers\n        if: inputs.pr-number == '0'\n        name: Get all open PRs\n        uses: actions/github-script@v7\n        with:\n          # !FIXME: this is not working if there is more than 100 PRs opened\n          script: |\n            const { data: pullRequests } = await github.rest.pulls.list({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              state: 'open',\n              per_page: 100\n            });\n            return pullRequests.map(pr =\u003e pr.number);\n\n      - id: parse-manual-input\n        if: inputs.pr-number != '0'\n        name: Parse manual input\n        run: |\n          # shellcheck disable=SC2086\n          echo \"result=\"[ ${{ inputs.pr-number }} ]\"\" \u003e\u003e $GITHUB_OUTPUT\n        shell: bash\n\n  validate-pr:\n    name: 'Validation of Pull Request #${{ matrix.pr-number }}'\n    needs: [ gather-pull-requests ]\n    runs-on: ubuntu-latest\n\n    strategy:\n      fail-fast: false\n      matrix:\n        pr-number: ${{ inputs.pr-number == 0 \u0026\u0026 fromJSON(needs.gather-pull-requests.outputs.pr-numbers) || fromJSON(needs.gather-pull-requests.outputs.pr-numbers-manual) }}\n\n    permissions:\n      # required for merging PRs\n      contents: write\n      # required for PR comments and setting labels\n      pull-requests: write\n\n    steps:\n      - name: Auto Merge wrapper\n        uses: sclorg/auto-merge-wrapper@v1\n        with:\n          pr-number: ${{ matrix.pr-number }}\n          token: ${{ secrets.GITHUB_TOKEN }}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsclorg%2Fauto-merge-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsclorg%2Fauto-merge-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsclorg%2Fauto-merge-wrapper/lists"}