{"id":24537415,"url":"https://github.com/glassflow/pipelines-push-action","last_synced_at":"2026-05-19T00:37:32.263Z","repository":{"id":272750280,"uuid":"914386568","full_name":"glassflow/pipelines-push-action","owner":"glassflow","description":"This Github Action lets you automate GlassFlow pipelines deployments as code","archived":false,"fork":false,"pushed_at":"2025-02-05T11:48:55.000Z","size":98,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-05T12:38:47.595Z","etag":null,"topics":["data","data-processing","datastreaming","deployment","github-actions","glassflow","python","real-time","stream-processing"],"latest_commit_sha":null,"homepage":"https://app.glassflow.dev/","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/glassflow.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-01-09T13:52:09.000Z","updated_at":"2025-02-05T11:48:37.000Z","dependencies_parsed_at":"2025-01-16T12:50:59.969Z","dependency_job_id":"5567ae64-455e-486e-870c-ebc783add216","html_url":"https://github.com/glassflow/pipelines-push-action","commit_stats":null,"previous_names":["glassflow/pipelines-push-action"],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassflow%2Fpipelines-push-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassflow%2Fpipelines-push-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassflow%2Fpipelines-push-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glassflow%2Fpipelines-push-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glassflow","download_url":"https://codeload.github.com/glassflow/pipelines-push-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243811072,"owners_count":20351649,"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":["data","data-processing","datastreaming","deployment","github-actions","glassflow","python","real-time","stream-processing"],"created_at":"2025-01-22T14:12:32.755Z","updated_at":"2026-05-19T00:37:32.216Z","avatar_url":"https://github.com/glassflow.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pipelines-push-action\n\nA GitHub Action to automate GlassFlow pipeline deployments as code.\n\n## Features\n\nThis GitHub Action enables you to:\n\n- **Track Changes in Your Pipelines**: Detect changes in `*.yaml`, `*.py`, and `requirements.txt` files since the last commit (via [Changed Files Action](https://github.com/marketplace/actions/changed-files)).\n- **Create Spaces**: Assign pipelines to new spaces by omitting `space_id` and specifying `space_name`. The action will create a space with the given name and update the YAML file with the assigned `space_id`.\n- **Create Pipelines**: New pipelines without an assigned `pipeline_id` (empty or missing `pipeline_id` key) will be created, and the YAML file will be updated with the assigned ID.\n- **Update Pipelines**: Changes to pipeline YAML files, `requirements.txt`, or linked Python files will be pushed to GlassFlow.\n- **Delete Pipelines**: If a pipeline's YAML file is deleted, the corresponding pipeline will be deleted from GlassFlow.\n\n## Configuration\n\n### Store Your Token Securely\nTo use this action, configure your repository with a **GlassFlow Personal Access Token**:\n\n- Navigate to `Settings \u003e Secrets and variables \u003e Actions` in your repository.\n- Click `New repository secret`.\n- Set the secret name (e.g., `GlassFlowPAT`).\n- Retrieve your access token from your [GlassFlow profile](https://app.glassflow.dev/profile) and paste it as the secret value.\n\nGitHub encrypts your token, and the action will not expose it in logs, ensuring security.\n\n### Set Workflow Permissions\nFor the action to update YAML files with assigned `space_id` and `pipeline_id` values for newly created spaces and pipelines:\n\n- Go to `Settings \u003e Actions \u003e General \u003e Workflow Permissions`.\n- Ensure `Read and write permissions` are enabled.\n\n## Usage\n\nBelow is an example GitHub Actions workflow to push pipelines to GlassFlow on every push to the `main` branch:\n\n```yaml\nname: Push to GlassFlow\non:\n  push:\n    branches:\n      - main\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: glassflow/pipelines-push-action@v1\n        with:\n          glassflow-personal-access-token: ${{ secrets.GlassFlowPAT }}\n```\n\n## Inputs\n\n| Name | Required | Description |\n|------|----------|-------------|\n| `glassflow-personal-access-token` | ✅ | GlassFlow Personal Access Token (stored in GitHub Secrets). |\n| `pipelines-dir` | ❌ | Directory containing pipelines (Default: `'pipelines'`). |\n| `dry-run` | ❌ | If `'true'`, changes will not be pushed to GlassFlow (Default: `'false'`). |\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `to-create-count` | Number of new pipelines to create. |\n| `to-create-ids` | Pipeline IDs created (available only if `dry-run` is `false`). |\n| `to-update-count` | Number of pipelines to update. |\n| `to-update-ids` | Pipeline IDs updated. |\n| `to-delete-count` | Number of pipelines to delete. |\n| `to-delete-ids` | Pipeline IDs deleted. |\n| `space-to-create-count` | Number of spaces to be created. |\n| `spaces-to-create-ids` | Space IDs created. |\n\n## FAQs\n\n- **What happens if a pipeline was deleted from the Web App, but its YAML file is modified?**\n  - The action will fail because the `pipeline_id` in the YAML file no longer exists in GlassFlow.\n- **What happens if I update a pipeline in the Web App?**\n  - This action syncs changes **from YAML to GlassFlow** only. Updates made in the web app may be overwritten when changes are pushed from the YAML, handler, or `requirements.txt` files.\n\n---\n\nThis action provides a streamlined way to manage your GlassFlow pipelines as code, ensuring consistency and automation in your deployment process.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglassflow%2Fpipelines-push-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglassflow%2Fpipelines-push-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglassflow%2Fpipelines-push-action/lists"}