{"id":13565599,"url":"https://github.com/garygrossgarten/github-action-scp","last_synced_at":"2025-04-05T06:08:41.450Z","repository":{"id":48256249,"uuid":"206200771","full_name":"garygrossgarten/github-action-scp","owner":"garygrossgarten","description":"⬆️ Copy a folder to a remote server using SSH","archived":false,"fork":false,"pushed_at":"2024-07-11T17:21:39.000Z","size":10862,"stargazers_count":191,"open_issues_count":13,"forks_count":53,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-29T23:59:27.400Z","etag":null,"topics":["actions","copy","github-actions","scp","ssh"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/garygrossgarten.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":"2019-09-04T01:06:13.000Z","updated_at":"2024-10-25T00:53:24.000Z","dependencies_parsed_at":"2024-01-16T18:59:38.260Z","dependency_job_id":"be4a1c5c-83b6-43a8-8a92-ef2c34217877","html_url":"https://github.com/garygrossgarten/github-action-scp","commit_stats":{"total_commits":102,"total_committers":8,"mean_commits":12.75,"dds":0.196078431372549,"last_synced_commit":"018af5390d23febac3487b064a460f5fb6966db7"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garygrossgarten%2Fgithub-action-scp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garygrossgarten%2Fgithub-action-scp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garygrossgarten%2Fgithub-action-scp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garygrossgarten%2Fgithub-action-scp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/garygrossgarten","download_url":"https://codeload.github.com/garygrossgarten/github-action-scp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294539,"owners_count":20915340,"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":["actions","copy","github-actions","scp","ssh"],"created_at":"2024-08-01T13:01:50.923Z","updated_at":"2025-04-05T06:08:41.425Z","avatar_url":"https://github.com/garygrossgarten.png","language":"JavaScript","readme":"# GitHub Action SCP\n\nSimple GitHub Action to copy a folder or single file to a remote server using SSH. This is working with the latest [GitHub Actions](https://github.com/features/actions).\n\n## ✨ Example Usage\n\n**Copy a folder recursively to a remote server**\n\n```yml\n- name: Copy folder content recursively to remote\n  uses: garygrossgarten/github-action-scp@release\n  with:\n    local: test\n    remote: scp/directory\n    host: ${{ secrets.HOST }}\n    username: ${{ secrets.SSH_USER }}\n    password: ${{ secrets.PASSWORD }}\n\n```\n\n**Copy a single file to a remote server**\n\n```yml\n- name: Copy single file to remote\n  uses: garygrossgarten/github-action-scp@release\n  with:\n    local: test/oof.txt\n    remote: scp/single/oof.txt\n    host: ${{ secrets.HOST }}\n    username: ${{ secrets.SSH_USER }}\n    password: ${{ secrets.PASSWORD }}\n\n```\n\n🔐 Set your secrets here: `https://github.com/USERNAME/REPO/settings/secrets`.\n\nCheck out [the workflow example](.github/workflows/scp-example-workflow.yml) for a minimalistic yaml workflow in GitHub Actions.\n\n**Result**\n\n![result of example ssh workflow](result.png)\n\n## Options\n\n- **local** - _string_ - Path to local folder you want to copy. **required**\n\n- **remote** - _string_ - Path to folder to copy the contents to. **required**\n\n- **concurrency** - _number_ - Number of concurrent file transfers. **Default:** `1`\n\n- **recursive** - _boolean_ - Copy directory contents recursively. **Default:** `true`\n\n- **verbose** - _boolean_ - Output every single file transfer status. **Default:** `true`\n\n- **host** - _string_ - Hostname or IP address of the server. **Default:** `'localhost'`\n\n- **port** - _integer_ - Port number of the server. **Default:** `22`\n\n- **username** - _string_ - Username for authentication. **Default:** (none)\n\n- **password** - _string_ - Password for password-based user authentication. **Default:** (none)\n\n- **dotfiles** - _boolean_ - Include files with a leading `.` e.g. `.htaccess` **Default:** `false`\n\n- **privateKey** - _mixed_ - _Buffer_ or _string_ that contains a private key for either key-based or hostbased user authentication (OpenSSH format). **Default:** (none)\n\n- **passphrase** - _string_ - For an encrypted private key, this is the passphrase used to decrypt it. **Default:** (none)\n\n- **tryKeyboard** - _boolean_ - Try keyboard-interactive user authentication if primary user authentication method fails. **Default:** `false`\n\n- **atomicPut** - _boolean_ - Upload files to temporary file first, then rename once upload completed. **Default:** `false`\n- **rmRemote** - _boolean_ - Clean directory before uploading. **Default:** `false`\n\n## Development\n\n---\n\nThis thing is build using Typescript and\n[ssh2](https://github.com/mscdex/ssh2) (via [node-ssh](https://github.com/steelbrain/node-ssh)). 🚀\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarygrossgarten%2Fgithub-action-scp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgarygrossgarten%2Fgithub-action-scp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarygrossgarten%2Fgithub-action-scp/lists"}