{"id":13463305,"url":"https://github.com/scttnlsn/dandelion","last_synced_at":"2025-10-24T00:35:57.079Z","repository":{"id":40773251,"uuid":"1475433","full_name":"scttnlsn/dandelion","owner":"scttnlsn","description":"Incremental Git repository deployment.","archived":false,"fork":false,"pushed_at":"2022-07-25T21:59:50.000Z","size":272,"stargazers_count":739,"open_issues_count":9,"forks_count":57,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-04-07T03:17:05.832Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://scttnlsn.github.io/dandelion","language":"Ruby","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/scttnlsn.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":"2011-03-13T19:21:36.000Z","updated_at":"2025-03-31T20:59:30.000Z","dependencies_parsed_at":"2022-09-05T04:21:04.903Z","dependency_job_id":null,"html_url":"https://github.com/scttnlsn/dandelion","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttnlsn%2Fdandelion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttnlsn%2Fdandelion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttnlsn%2Fdandelion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttnlsn%2Fdandelion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scttnlsn","download_url":"https://codeload.github.com/scttnlsn/dandelion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248890681,"owners_count":21178488,"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-07-31T13:00:50.327Z","updated_at":"2025-10-24T00:35:52.041Z","avatar_url":"https://github.com/scttnlsn.png","language":"Ruby","funding_links":[],"categories":["Provision, Deploy \u0026 Host","Ruby"],"sub_categories":["Deployment Automation"],"readme":"Dandelion\n=========\n[![Gem Version](https://badge.fury.io/rb/dandelion.png)](http://badge.fury.io/rb/dandelion)\n[![Test Status](https://github.com/scttnlsn/dandelion/actions/workflows/test.yml/badge.svg)](https://github.com/scttnlsn/dandelion/actions/workflows/test.yml)\n\nIncremental Git repository deployment.\n\nInstall\n-------\n\nEnsure that Ruby \u003e= 2.0.0 is installed, then run:\n\n    $ gem install dandelion\n\nYou may need to install `pkg-config` and `cmake` before installing Dandelion.  They're likely available in your OS package manager.  For example:\n\n    $ brew install pkg-config cmake\n\nor\n\n    $ apt-get install pkg-config cmake\n\nYou may also need to install the Ruby headers if you're using a version of Ruby installed by your OS package manager (`ruby-dev` on Debian, `ruby-all-dev` on Ubuntu).\n\nConfig\n------\n\nConfiguration options are specified in a YAML file (by default, the root of your\nGit repository is searched for a file named `dandelion.yml`).\n\nExample:\n\n```yaml\nadapter: sftp\nhost: example.com\nusername: user\npassword: pass\npath: path/to/deployment\n\nexclude:\n    - .gitignore\n    - dandelion.yml\n    - dir/\n\nadditional:\n    - config/auth.yml\n```\n\nRequired:\n\n * `adapter` (alias: `scheme`, the file transfer adapter)\n\nOptional:\n\n* `path` (relative path from root of remote file tree, defaults to the root)\n* `local_path` (relative path from root of local repository, defaults to repository root)\n* `exclude` (list of files or directories to exclude from deployment, if `local_path` is set files are relative to that path)\n* `additional` (additional list of files from your working directory that will be deployed)\n* `revision_file` (remote file in which revision SHA is stored, defaults to .revision)\n\nThe `additional` section can either take a list of local file names or key-value formats if you want to upload something to a specific path:\n\n```yaml\nadditional:\n    - localdir: remotedir\n    - file.txt: remotedir/file.txt\n```\n\nThe `localdir` in this example is relative to the repository root (ignoring `local_path` if you set it).\n\nEach adapter also has additional required and optional configuration parameters (see below).  Note that you can dynamically set configuration values by using environment variables.  For example:\n\n```yaml\npassword: \u003c%= ENV['DANDELION_PASSWORD'] %\u003e\n```\n\nAdapters\n--------\n\nThere is support for multiple backend file transfer adapters.  The configuration\nmust specify one of these adapters and the set of additional parameters required\nby the given adapter.\n\n**SFTP**: `adapter: sftp` (honors SSH config files)\n\nRequired:\n\n * `host`\n * `username`\n * `password` (not required if you're using an SSH key)\n\nOptional:\n\n * `port` (defaults to 22)\n * `preserve_permissions` (defaults to true)\n\n**FTP**: `adapter: ftp`\n\nRequired:\n\n * `host`\n * `username`\n * `password`\n\nOptional:\n\n * `port` (defaults to 21)\n * `passive` (defaults to false)\n\n**FTPS**: `adapter: ftps`\n\nRequired: (same as FTP)\n\n * `host`\n * `username`\n * `password`\n\nOptional: (in addition to options for FTP)\n\n * `port`\n * `passive`\n * `ftps_implicit` (default false: explicit TLS)\n * `insecure` (default false, true to allow self-signed certificates)\n\n**Amazon S3**: `adapter: s3`\n\nRequired:\n\n * `access_key_id`\n * `secret_access_key`\n * `bucket_name`\n * `host` (one of the endpoints listed [here](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region), defaults to s3.amazonaws.com)\n\nOptional:\n\n * `preserve_permissions` (defaults to true)\n * `cache_control` (time to cache content in seconds, e.g. '1296000')\n * `expires` (time to cache content in seconds, e.g. '1296000')\n\nUsage\n-----\n\nFrom within your Git repository, run:\n\n    $ dandelion deploy\n\nThis will deploy the local `HEAD` revision to the location specified in the config\nfile.  Dandelion keeps track of the currently deployed revision so that only files\nwhich have been added/changed/deleted need to be transferred.\n\nYou can specify the revision you wish to deploy and Dandelion will determine which\nfiles need to be transferred:\n\n    $ dandelion deploy \u003crevision\u003e\n\nFor a more complete summary of usage options, run:\n\n    $ dandelion -h\n    Usage: dandelion [options] \u003ccommand\u003e [\u003cargs\u003e]\n        -v, --version                    Display the current version\n        -h, --help                       Display this screen\n            --repo=[REPO]                Use the given repository\n            --config=[CONFIG]            Use the given configuration file\n\n    Available commands:\n        deploy\n        init\n        status\n\nNote that when specifying the repository or configuration file, the given paths\nare relative to the current working directory (not the repository root).\n\nTo see the options for a particular command, run `dandelion \u003ccommand\u003e -h`:\n\n    $ dandelion deploy -h\n    Usage: dandelion deploy [options] [\u003crevision\u003e]\n            --dry-run                    Show what would have been deployed\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscttnlsn%2Fdandelion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscttnlsn%2Fdandelion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscttnlsn%2Fdandelion/lists"}