{"id":17231932,"url":"https://github.com/eruvanos/flightplan","last_synced_at":"2026-02-08T08:03:15.884Z","repository":{"id":57431383,"uuid":"287109961","full_name":"eruvanos/flightplan","owner":"eruvanos","description":"AWS CDK like tool to code Concourse pipelines (with autocompletion.)","archived":false,"fork":false,"pushed_at":"2023-07-24T01:25:52.000Z","size":94,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-14T07:02:49.451Z","etag":null,"topics":["code-generation","concourse","python3","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","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/eruvanos.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}},"created_at":"2020-08-12T20:32:37.000Z","updated_at":"2023-01-06T13:54:52.000Z","dependencies_parsed_at":"2022-09-02T10:52:32.603Z","dependency_job_id":null,"html_url":"https://github.com/eruvanos/flightplan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eruvanos%2Fflightplan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eruvanos%2Fflightplan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eruvanos%2Fflightplan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eruvanos%2Fflightplan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eruvanos","download_url":"https://codeload.github.com/eruvanos/flightplan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451630,"owners_count":20940946,"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":["code-generation","concourse","python3","yaml"],"created_at":"2024-10-15T05:00:00.613Z","updated_at":"2026-02-08T08:03:08.637Z","avatar_url":"https://github.com/eruvanos.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Flight plan - Plan your Concourse Pipeline with ease\n\nAWS CDK like tool to code Concourse pipelines (with autocompletion.)\n\n## Why not stick with YAML\n\nWriting YAML files feels not as heavy as XML, \nbut still lacks the comfort of autocompletion and some kind of structuring \n(Beside anchors or tools like [YTT](https://get-ytt.io/)).\n\nThe vision of Flightplan does not stop with replacing YAML, the real benefit\nstarts with component libraries, which ease the setup of pipelines.\n\nFurthermore these components can be updated, which make all improvements \nautomatically available to all pipelines.  \n\n## Features\n\n* Convert:\n  * YAML -\u003e Python\n  * Python -\u003e YAML\n* Fly integration\n  * Set pipeline\n  * Get pipeline\n* Shiped examples\n  * Hello world\n  * more to come\n\n## Disclaimer - Alpha\n\n\u003e The package is still in alpha. Upcoming versions may include breaking changes. \n\n## Upcoming\n\n* Provide high level components that handle common use cases\n\n## Setup \n\nFlightplan requires Python 3.8 and higher.\n\n### Install FlightPlan\n\nFlightplan requires `fly` to be installed on path.\n\n```bash\npip3 install flightplan\n```\n\n## Usage\n\nIf you start with Flightplan it is recommended to have a look on the quickstart examples, \nwhich are shipped within the cli.\n\nIf you want to migrate an existing pipeline you can use \n * `fp import` - to convert YAML to Python\n * `fp get ...` - to get and convert a running pipeline \n\n### Quickstart\nGenerate a basic pipeline example.\n\n```bash\nfp quickstart\n```\n\n### Import existing pipeline file\nConvert a pipeline yaml and render a flightplan `.py` file.\n\n```bash\nfp import \u003csrc.yaml\u003e \u003ctarget.py\u003e\n```\n\n### Import existing pipeline from fly\nConvert a pipeline from fly and render a flightplan `.py` file.\n\n```bash\nfp get \u003cfly_target\u003e \u003cpipeline_name\u003e \u003ctarget.py\u003e\n```\n\n\u003e Static and dynamic vars will be imported as `Var(str)`, if the type of the field is limited to an int or Enum type.\n\n### Synthesize yaml from flightplan `.py` file\n\n```bash\nfp synth \u003csrc.py\u003e \u003ctarget.yaml\u003e\n```\n\n### Direct Fly Set Pipeline\n\n```bash\nfp set \u003cfly-target\u003e \u003cpipeline_name\u003e \u003csrc.py\u003e\n```\n\n\n\n## Examples\n\nQuickstart hello world example:\n\n```python\nfrom flightplan.render import *\n\npipe = Pipeline(\n    resource_types=[],\n    resources=[],\n    jobs=[\n        Job(\n            name=\"job-hello-world\",\n            public=True,\n            plan=[\n                Task(\n                    task=\"hello-world\",\n                    config=TaskConfig(\n                        platform=\"linux\",\n                        image_resource=ImageResource(\n                            type=\"docker-image\",\n                            source=dict(repository=\"busybox\", tag=\"latest\"),\n                        ),\n                        run=Command(path=\"echo\", args=[\"hello world\"]),\n                        inputs=[],\n                        outputs=[],\n                    ),\n                )\n            ],\n        )\n    ],\n)\n\nif __name__ == \"__main__\":\n    print(pipe.synth())\n``` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feruvanos%2Fflightplan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feruvanos%2Fflightplan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feruvanos%2Fflightplan/lists"}