{"id":15501975,"url":"https://github.com/luzlab/testrail-createtestrun-action","last_synced_at":"2026-07-08T13:31:20.568Z","repository":{"id":45873217,"uuid":"388865055","full_name":"luzlab/testrail-createTestrun-action","owner":"luzlab","description":null,"archived":false,"fork":false,"pushed_at":"2021-10-07T23:56:03.000Z","size":1082,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T18:17:39.393Z","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/luzlab.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}},"created_at":"2021-07-23T16:40:09.000Z","updated_at":"2022-01-14T18:22:12.000Z","dependencies_parsed_at":"2023-01-04T18:30:17.209Z","dependency_job_id":null,"html_url":"https://github.com/luzlab/testrail-createTestrun-action","commit_stats":{"total_commits":38,"total_committers":2,"mean_commits":19.0,"dds":0.02631578947368418,"last_synced_commit":"6d8e6d11b0c8dc1f36f4dcd5dd5b1055121b305d"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luzlab%2Ftestrail-createTestrun-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luzlab%2Ftestrail-createTestrun-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luzlab%2Ftestrail-createTestrun-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luzlab%2Ftestrail-createTestrun-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luzlab","download_url":"https://codeload.github.com/luzlab/testrail-createTestrun-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247296137,"owners_count":20915585,"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-10-02T09:06:48.156Z","updated_at":"2025-10-05T02:07:48.896Z","avatar_url":"https://github.com/luzlab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Create Testrail testrun for PR\n\nThis action the basic structure for organizing tests on a per PR basis. When a PR is\nopened, this action creates a new testrun in Testrail and adds a comment to the pullrequest.\nThe testrun description and the pullrequest comment contain information that's\nused by later actions. \n\n## Screenshots\n![commentscreenshot](./.images/prcomment.png)\n\n![testrunscreenshot](./.images/testrun.png)\n\n## Usage\n\n### Inputs\n\n#### `testrail_project`\n\n**Required** The ID of the Testrail project the testrun should be added to.\n\n#### `testrail_suite`\n\n**Required** The testsuite ID that contains all the acceptance test. No testcases will\nbe added to the testrun. Instead, testers are expected to add testcases to the testrun\nmanually.\n\n#### `testrail_URL`\n\nThe URL of the TestRail server. Default `\"https://gs3.testrail.io\"`.\n\n#### `testrail_user`\n\nThe Testrail user email.\n\n#### `testrail_token`\n\nThe token for logging into Testrail.\n\n#### `github_token`\n\nThe Github API token used to add the comment to the PR\n\n### Skipping\nIf the pullrequest description includes any of the following strings, this action\nwill _not_ create a testrun.\n\n- `[skip testrun]`\n- `[no testrun]`\n- `***NO_TESTRUN***`\n- `skip-testrun`\n\n## Example usage\n\n```\nuses: luzlab/testrail-createTestRun-action@v1\nwith:\n  testrail_token: ${{ secrets.TESTRAIL_TOKEN }}\n  github_token: ${{ secrets.GITHUB_TOKEN }}\n  testrail_user: testrailuser@somecompany.com\n  testrail_suite: 25\n  testrail_project: 7\n```\n\n## Explanation\n\nThis action handles the PR `opened`, `synchronize` and `closed` events.\n\n- `opened` A new testrun is created in testrail and a PR status check of `pending` is added. \n- `synchronize` The PR status check is reset to `pending`.\n- `closed` The testrun is closed in testrail.\n\n## Testrail UI Script\n\nThis action includes an accompanying Testrail UI script to add an `Update PR` button to the Testrail UI. Clicking on the button updates the status check on the linked PR. \n\n![testrunscreenshot](./.images/uiscript.png)\n\nThe script is located in `dist/uiscript`. A Github PAT token with `repo` scope must be generated and copied\ninto the uiscript. Replace the string `\u003cGITHUB_PAT\u003e` with your PAT, then paste into Testrail as a custom UI script.\n\nCurrently, testresult status of `success` or `retest` count as passing. Any other testresult status will results in a failing PR status check and prevent merging.\n\n## Development\n\nClone the repo, install node modules, and run `npm run build`. This generates both `index.js` for the Github Action and the `uiscript` for Testrail.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluzlab%2Ftestrail-createtestrun-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluzlab%2Ftestrail-createtestrun-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluzlab%2Ftestrail-createtestrun-action/lists"}