{"id":13584305,"url":"https://github.com/tailscale/github-action","last_synced_at":"2025-04-23T07:07:31.903Z","repository":{"id":37875337,"uuid":"360548653","full_name":"tailscale/github-action","owner":"tailscale","description":"A GitHub Action to connect your workflow to your Tailscale network.","archived":false,"fork":false,"pushed_at":"2025-04-09T22:23:58.000Z","size":67,"stargazers_count":698,"open_issues_count":45,"forks_count":104,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-04-23T07:07:24.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tailscale.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":"2021-04-22T14:29:54.000Z","updated_at":"2025-04-23T01:32:21.000Z","dependencies_parsed_at":"2023-10-05T03:44:24.560Z","dependency_job_id":"7b5f89f6-07c8-4e63-9ef1-a1794893a3c0","html_url":"https://github.com/tailscale/github-action","commit_stats":{"total_commits":47,"total_committers":19,"mean_commits":2.473684210526316,"dds":0.5957446808510638,"last_synced_commit":"16d7e0b7812f55e668628a71630a09956522baa9"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailscale%2Fgithub-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailscale%2Fgithub-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailscale%2Fgithub-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailscale%2Fgithub-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tailscale","download_url":"https://codeload.github.com/tailscale/github-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250386755,"owners_count":21422028,"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-08-01T15:04:09.562Z","updated_at":"2025-04-23T07:07:31.895Z","avatar_url":"https://github.com/tailscale.png","language":null,"funding_links":[],"categories":["Others","TypeScript"],"sub_categories":[],"readme":"# Tailscale GitHub Action\n\nThis GitHub Action connects to your [Tailscale network](https://tailscale.com)\nby adding a step to your workflow.\n\n```yaml\n  - name: Tailscale\n    uses: tailscale/github-action@v3\n    with:\n      oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}\n      oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}\n      tags: tag:ci\n```\n\nSubsequent steps in the Action can then access nodes in your Tailnet.\n\noauth-client-id and oauth-secret are an [OAuth client](https://tailscale.com/s/oauth-clients/)\nfor the tailnet to be accessed. We recommend storing these as\n[GitHub Encrypted Secrets.](https://docs.github.com/en/actions/security-guides/encrypted-secrets)\nOAuth clients used for this purpose must have the\n[`auth_keys` scope.](https://tailscale.com/kb/1215/oauth-clients#scopes)\n\ntags is a comma-separated list of one or more [ACL Tags](https://tailscale.com/kb/1068/acl-tags/)\nfor the node. At least one tag is required: an OAuth client is not associated\nwith any of the Users on the tailnet, it has to Tag its nodes.\n\nNodes created by this Action are [marked as Ephemeral](https://tailscale.com/s/ephemeral-nodes) to\nbe automatically removed by the coordination server a short time after they\nfinish their run. The nodes are also [marked Preapproved](https://tailscale.com/kb/1085/auth-keys/)\non tailnets which use [Device Approval](https://tailscale.com/kb/1099/device-approval/)\n\n## Tailnet Lock\n\nIf you are using this Action in a [Tailnet\nLock](https://tailscale.com/kb/1226/tailnet-lock) enabled network, you need to:\n\n* Authenticate using an ephemeral reusable [pre-signed auth key](\n  https://tailscale.com/kb/1226/tailnet-lock#add-a-node-using-a-pre-signed-auth-key)\n  rather than an OAuth client.\n* Specify a [state directory](\n  https://tailscale.com/kb/1278/tailscaled#flags-to-tailscaled) for the\n  client to store the Tailnet Key Authority data in.\n\n```yaml\n  - name: Tailscale\n    uses: tailscale/github-action@v3\n    with:\n      authkey: tskey-auth-...\n      statedir: /tmp/tailscale-state/\n```\n\n## Defining Tailscale version\n\nWhich Tailscale version to use can be set like this:\n\n```yaml\n  - name: Tailscale\n    uses: tailscale/github-action@v3\n    with:\n      oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}\n      oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}\n      tags: tag:ci\n      version: 1.52.0\n```\n\nIf you'd like to specify the latest version, simply set the version as `latest`\n\n```yaml\n  - name: Tailscale\n    uses: tailscale/github-action@v3\n    with:\n      oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}\n      oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}\n      tags: tag:ci\n      version: latest\n```\n\nYou can find the latest Tailscale stable version number at\nhttps://pkgs.tailscale.com/stable/#static.\n\n\n## Cache Tailscale binaries\n\nCaching can reduce download times and download failures on runners with slower network connectivity. Although caching is not enabled by default, it is generally recommended.\n\nYou can opt in to caching Tailscale binaries by passing `'true'` to the `use-cache` input:\n\n```yaml\n  - name: Tailscale\n    uses: tailscale/github-action@v3\n    with:\n      oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}\n      oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}\n      use-cache: 'true'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailscale%2Fgithub-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftailscale%2Fgithub-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailscale%2Fgithub-action/lists"}