{"id":19608585,"url":"https://github.com/teamwork/github-sync","last_synced_at":"2025-09-21T20:32:28.669Z","repository":{"id":45408402,"uuid":"289878464","full_name":"Teamwork/github-sync","owner":"Teamwork","description":"This action helps you to sync your PRs with tasks in Teamwork to streamline team collaboration and your development workflows.","archived":false,"fork":false,"pushed_at":"2024-07-15T18:14:29.000Z","size":187,"stargazers_count":65,"open_issues_count":5,"forks_count":26,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-01-06T18:17:17.818Z","etag":null,"topics":["github-actions","teamwork"],"latest_commit_sha":null,"homepage":"https://developer.teamwork.com","language":"Shell","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/Teamwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-24T09:01:53.000Z","updated_at":"2024-10-10T01:01:51.000Z","dependencies_parsed_at":"2024-11-02T20:31:38.128Z","dependency_job_id":"4eb2020b-1b61-480d-b48b-550d87aee0f4","html_url":"https://github.com/Teamwork/github-sync","commit_stats":{"total_commits":75,"total_committers":14,"mean_commits":5.357142857142857,"dds":0.4933333333333333,"last_synced_commit":"01c7592ba4fc6dfa4e6588390b8814ce78a1d7b5"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teamwork%2Fgithub-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teamwork%2Fgithub-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teamwork%2Fgithub-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teamwork%2Fgithub-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Teamwork","download_url":"https://codeload.github.com/Teamwork/github-sync/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233794925,"owners_count":18731360,"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":["github-actions","teamwork"],"created_at":"2024-11-11T10:15:49.366Z","updated_at":"2025-09-21T20:32:23.380Z","avatar_url":"https://github.com/Teamwork.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.teamwork.com?ref=github\"\u003e\n    \u003cimg src=\"./.github/assets/teamwork.svg\" width=\"139px\" height=\"30px\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e\n  Teamwork GitHub Sync\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    This action helps you to sync your PRs with tasks in Teamwork to streamline team collaboration and your development workflows.\n\u003c/p\u003e\n\n![Linter](https://github.com/Teamwork/github-sync/workflows/Linter/badge.svg)\n\n## Getting Started\n\n### Prerequisites\nCreate the next environment vars in your repository:\n* `TEAMWORK_URI`: The URL of your installation (e.g.: https://yourcompany.teamwork.com)\n* `TEAMWORK_API_TOKEN`: The API token to authenticate the workflow. Follow [this guide](https://support.teamwork.com/projects/using-teamwork/locating-your-api-key) to find your URL and API key.\n\n**Please Note:** The Teamwork account associated with this API key is the account which these comments will be created under. If this user does not have permission to access the project, this action will be ignored.\n\n`GITHUB_TOKEN` doesn't need to be setup in the repository, this var is always available during the workflows execution.\n\n### Installation\nCreate a new file `/.github/workflows/teamwork.yml` with the following:\n\n```yaml\nname: teamwork\n\non:\n  pull_request:\n    types: [opened, closed]\n  pull_request_review:\n    types: [submitted]\n\njobs:\n  teamwork-sync:\n    runs-on: ubuntu-latest\n    name: Teamwork Sync\n    steps:\n      - uses: teamwork/github-sync@master\n        with:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          TEAMWORK_URI: ${{ secrets.TEAMWORK_URI }}\n          TEAMWORK_API_TOKEN: ${{ secrets.TEAMWORK_API_TOKEN }}\n          AUTOMATIC_TAGGING: false\n          BOARD_COLUMN_OPENED: 'PR Open'\n          BOARD_COLUMN_MERGED: 'Ready to Test'\n          BOARD_COLUMN_CLOSED: 'Rejected'\n        env:\n          IGNORE_PROJECT_IDS: '1 2 3'\n\n```\n\n## Usage\nWhen creating a new PR, write in the description of the PR the URL of the task. The action will automatically add a comment in the task.\n\nPlease note, the comment will be created in Teamwork under the account you have attached to this action. If the API key of the user you are using does not have permissions to access certain projects, the comment will not be created.\n\n![GitHub pr comment](./.github/assets/github_pr_comment.png)\n\n![Teamwork pr comment](./.github/assets/teamwork_pr_comment.png)\n\nTags are added automatically on the task if you are have the option `AUTOMATIC_TAGGING` set to `true` and the tag exists in you targeting project:\n- A new PR is open: tag `PR Open`\n- A PR is approved: tag `PR Approved` added\n- A PR is merged: tags `PR Open` and `PR Approved` removed, tag `PR merged` added\n- A PR is closed: tags `PR Open` and `PR Approved` removed\n\nYou may also specify columns you'd like the task to be moved to on every stage of the PR:\n- `BOARD_COLUMN_OPENED`: The case-sensitive column name of the column you'd like the task to be moved to once the PR has been opened\n- `BOARD_COLUMN_MERGED`: The case-sensitive column name of the column you'd like the task to be moved to once the PR has been merged\n- `BOARD_COLUMN_CLOSED`: The case-sensitive column name of the column you'd like the task to be moved to if the PR was closed without being merged\n\nThe column names will be checked against all board columns in the task's project, this will be using a `contains()` method so you may specify part of the name instead of the full name, however this `contains()` check is case-sensitive. The first matching column will be used.\n\n## Contributing\n* Open a PR: https://github.com/Teamwork/github-sync/pulls\n* Open an issue: https://github.com/Teamwork/github-sync/issues\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamwork%2Fgithub-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteamwork%2Fgithub-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamwork%2Fgithub-sync/lists"}