{"id":28403784,"url":"https://github.com/askrella/terraform-provider-ssh","last_synced_at":"2026-02-13T06:15:40.333Z","repository":{"id":278464822,"uuid":"935709992","full_name":"askrella/terraform-provider-ssh","owner":"askrella","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-26T12:46:02.000Z","size":149,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T04:17:59.175Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/askrella.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-02-19T22:21:05.000Z","updated_at":"2025-03-03T14:15:12.000Z","dependencies_parsed_at":"2025-03-03T15:23:38.963Z","dependency_job_id":"41fe144e-0457-4a27-ab74-4463302864b1","html_url":"https://github.com/askrella/terraform-provider-ssh","commit_stats":null,"previous_names":["askrella/askrella-ssh-provider","askrella/terraform-provider-ssh"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/askrella/terraform-provider-ssh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askrella%2Fterraform-provider-ssh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askrella%2Fterraform-provider-ssh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askrella%2Fterraform-provider-ssh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askrella%2Fterraform-provider-ssh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/askrella","download_url":"https://codeload.github.com/askrella/terraform-provider-ssh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askrella%2Fterraform-provider-ssh/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260571916,"owners_count":23029973,"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":"2025-06-01T19:10:45.750Z","updated_at":"2026-02-13T06:15:40.328Z","avatar_url":"https://github.com/askrella.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Askrella SSH Provider for Terraform\n\nThis Terraform provider enables you to manage files and directories on remote servers via SSH. It provides resources to create, read, update, and delete files and directories on remote systems using SSH authentication.\n\n## Features\n\n- Create, read, update, and delete files on remote servers\n- Create and manage directories on remote servers\n- Secure SSH authentication using various methods (password, private key)\n- Support for file permissions and ownership\n- Telemetry integration using OpenTelemetry\n- Robust error handling and logging\n- Comprehensive test coverage\n\n## Requirements\n\n- Go 1.22 or higher\n- Terraform 1.0 or higher\n- MacOS, Linux, BSD or other *nix platforms where the file system is capable of understanding file permissions (unlike Windows)\n\n## Installation\n\n### From Terraform Registry\n\n```hcl\nterraform {\n  required_providers {\n    ssh = {\n      source  = \"askrella/ssh\"\n      version = \"0.1.0\"\n    }\n  }\n}\n```\n\n### Building From Source\n\n1. Clone the repository\n```bash\ngit clone https://github.com/askrella/askrella-ssh-provider.git\n```\n\n2. Enter the repository directory\n```bash\ncd askrella-ssh-provider\n```\n\n3. Build the provider\n```bash\ngo build -o terraform-provider-askrella-ssh\n```\n\n## Using the Provider\n\n```hcl\nterraform {\n  required_providers {\n    ssh = {\n      source  = \"askrella/ssh\"\n      version = \"0.1.0\"\n    }\n  }\n}\n\nprovider \"ssh\" {}\n\nlocals {\n  ssh_config = {\n    host        = \"example.com\"\n    port        = 22\n    username    = \"user\"\n    password    = \"your-password\"  # or use private_key\n    # private_key = file(\"~/.ssh/id_rsa\")\n  }\n}\n\n# Create a directory on a remote server\nresource \"ssh_directory\" \"example_dir\" {\n  ssh         = local.ssh_config\n  path        = \"/path/to/directory\"\n  permissions = \"0755\"\n}\n\n# Create a file in the directory\nresource \"ssh_file\" \"example_file\" {\n  ssh         = local.ssh_config\n  path        = \"${ssh_directory.example_dir.path}/example.txt\"\n  content     = \"Hello, World!\"\n  permissions = \"0644\"\n\n  depends_on = [ssh_directory.example_dir]\n}\n```\n\n## Development\n\n### Requirements\n\n- [Go](https://golang.org/doc/install) 1.22 or higher\n- [Terraform](https://www.terraform.io/downloads.html) 1.0 or higher\n- [golangci-lint](https://golangci-lint.run/usage/install/) for code linting\n\n### Building\n\n```bash\ngo build\n```\n\n### Testing\n\nThe project uses Go's testing framework with Gomega matchers. Tests are designed to run in parallel and are isolated from each other.\n\n```bash\n# Run all tests\ngo test -v ./...\n\n# Run tests with race detection\ngo test -race -v ./...\n\n# Run tests with coverage\ngo test -coverprofile=coverage.out ./...\ngo tool cover -html=coverage.out\n```\n\n### Telemetry\n\nThis provider integrates with OpenTelemetry for distributed tracing and monitoring. Traces are automatically created for provider operations and can be exported to your preferred observability backend.\n\n### Code Quality\n\nThe project maintains high code quality standards through:\n\n- Comprehensive test coverage\n- Static code analysis using golangci-lint\n- Mutation testing\n- Continuous Integration via GitHub Actions\n- Automated dependency updates via Dependabot\n\n### Local Development\n\nTo use a locally built version of the provider:\n\n1. Build the provider as described above\n2. Configure your Terraform project to use the local provider:\n\n```hcl\nterraform {\n  required_providers {\n    ssh = {\n      source = \"askrella/ssh\"\n    }\n  }\n}\n```\n\n## Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes with descriptive commit messages\n4. Add tests for any new functionality\n5. Create a pull request\n\nPlease ensure your code:\n- Passes all tests\n- Includes appropriate documentation\n- Follows the project's code style\n- Includes relevant test cases\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faskrella%2Fterraform-provider-ssh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faskrella%2Fterraform-provider-ssh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faskrella%2Fterraform-provider-ssh/lists"}