{"id":20560091,"url":"https://github.com/webdriverio/expense-action","last_synced_at":"2026-04-20T01:35:31.309Z","repository":{"id":222245692,"uuid":"756676205","full_name":"webdriverio/expense-action","owner":"webdriverio","description":"GitHub Action that enables WebdriverIO's expense workflow.","archived":false,"fork":false,"pushed_at":"2024-04-08T06:29:49.000Z","size":16641,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-04-14T07:11:15.574Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md#sponsoring-and-donations","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/webdriverio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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},"funding":{"tidelift":"npm/webdriverio","open_collective":"webdriverio"}},"created_at":"2024-02-13T04:45:02.000Z","updated_at":"2024-02-17T18:20:12.000Z","dependencies_parsed_at":"2024-04-13T20:03:32.236Z","dependency_job_id":null,"html_url":"https://github.com/webdriverio/expense-action","commit_stats":{"total_commits":87,"total_committers":5,"mean_commits":17.4,"dds":0.367816091954023,"last_synced_commit":"a68e4f4709adf17e7ec44362c153d35883d2a724"},"previous_names":["webdriverio/expense-action"],"tags_count":21,"template":false,"template_full_name":"actions/typescript-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fexpense-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fexpense-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fexpense-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fexpense-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdriverio","download_url":"https://codeload.github.com/webdriverio/expense-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242168264,"owners_count":20083050,"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-16T03:53:12.285Z","updated_at":"2026-04-20T01:35:31.294Z","avatar_url":"https://github.com/webdriverio.png","language":"TypeScript","funding_links":["https://tidelift.com/funding/github/npm/webdriverio","https://opencollective.com/webdriverio"],"categories":[],"sub_categories":[],"readme":"# WebdriverIO Expense Action\n\n[![GitHub Super-Linter](https://github.com/actions/typescript-action/actions/workflows/linter.yml/badge.svg)](https://github.com/super-linter/super-linter)\n![CI](https://github.com/actions/typescript-action/actions/workflows/ci.yml/badge.svg)\n[![Check dist/](https://github.com/actions/typescript-action/actions/workflows/check-dist.yml/badge.svg)](https://github.com/actions/typescript-action/actions/workflows/check-dist.yml)\n\n---\n\n\u003e A GitHub Action that enables WebdriverIO TSC members to grant expense requests\n\u003e for contributed PRs to the project.\n\nThis GitHub Action enables the allocation of funds for contributions received by the WebdriverIO project. It allows us to set up a simple workflow everywhere and use the same process, independent of the GitHub repository we receive the contribution.\n\nAfter triggering the workflow providing a pull request number and the expansible amount, the action finds the author of the commit and their respective email and sends an automated generated Email using [resend.com](https://resend.com/):\n\n![Example Email](.github/assets/example.png)\n\nThe receiver can use the code to expense their contribution given the granted amount and by providing the code from the email. The token included in the email is valid for 90 days, after which it expires and cannot be used.\n\n## Usage\n\nCreate a workflow file in a WebdriverIO ecosystem project:\n\n```yaml\nname: Expense Contribution\n\non:\n    workflow_dispatch:\n        inputs:\n            prNumber:\n                description: 'Number of the PR (without #)'\n                required: true\n            amount:\n                description:\n                    'The expense amount you like to grant for the contribution\n                    in $'\n                required: true\n                type: choice\n                options:\n                    - 15\n                    - 25\n                    - 35\n                    - 50\n                    - 100\n                    - 150\n                    - 200\n                    - 250\n                    - 300\n                    - 350\n                    - 400\n                    - 450\n                    - 500\n                    - 550\n                    - 600\n                    - 650\n                    - 700\n                    - 750\n                    - 800\n                    - 850\n                    - 900\n                    - 950\n                    - 1000\n\njobs:\n    # (optional): make sure that the expense workflow is triggered\n    # by someone connected to a certain team, e.g. `technical-steering-committee`\n    authorize:\n        runs-on: ubuntu-latest\n        steps:\n            - uses: octokit/request-action@v2.1.9\n              with:\n                  route: GET /orgs/:organisation/teams/:team/memberships/${{ github.actor }}\n                  team: technical-steering-committee\n                  organisation: webdriverio\n              env:\n                  GITHUB_TOKEN: ${{ secrets.WDIO_BOT_GITHUB_TOKEN }}\n    expense:\n        needs: [authorize]\n        runs-on: ubuntu-latest\n        permissions:\n            contents: write\n            id-token: write\n        steps:\n            - name: Run Expense Flow\n              uses: webdriverio/expense-action@v1\n              with:\n                  prNumber: ${{ github.event.inputs.prNumber }}\n                  amount: ${{ github.event.inputs.amount }}\n              env:\n                  RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}\n                  GH_TOKEN: ${{ secrets.WDIO_BOT_GITHUB_TOKEN }}\n```\n\nThen make sure to add `wdio-bot` as project admin so the workflow can properly\nlabel the issue if needed and comment on it.\n\n## Fork it!\n\nIf you like to automate the expense process of your project and like to use this GitHub Action, please do so! All you need is to:\n\n- fork the project\n- create a GitHub bot account (or use your user account) that has admin access to all repositories you like to use this workflow for\n- generate an access token for that account and replace it with `WDIO_BOT_GITHUB_TOKEN` and make it accessible to all repositories in your organization\n- update the text within the [mail template](https://github.com/webdriverio/expense-action/blob/main/src/mail.tsx)\n\n---\n\nFor more information on WebdriverIO expense policies, take a look at the [governance](https://github.com/webdriverio/webdriverio/blob/main/GOVERNANCE.md#sponsoring-and-donations) docs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fexpense-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdriverio%2Fexpense-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fexpense-action/lists"}