{"id":29020383,"url":"https://github.com/appbaseio/pipelines-action","last_synced_at":"2026-07-08T15:31:53.704Z","repository":{"id":40991764,"uuid":"463472678","full_name":"appbaseio/pipelines-action","owner":"appbaseio","description":"GitHub Action to let users create pipelines from a repository directly","archived":false,"fork":false,"pushed_at":"2022-06-23T11:22:59.000Z","size":1107,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2026-06-30T12:29:12.065Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appbaseio.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":"2022-02-25T09:27:42.000Z","updated_at":"2023-10-10T18:56:13.000Z","dependencies_parsed_at":"2023-01-05T04:51:51.745Z","dependency_job_id":null,"html_url":"https://github.com/appbaseio/pipelines-action","commit_stats":{"total_commits":115,"total_committers":1,"mean_commits":115.0,"dds":0.0,"last_synced_commit":"02a03926291768f184fa085b973759d18fb540b2"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/appbaseio/pipelines-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fpipelines-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fpipelines-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fpipelines-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fpipelines-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appbaseio","download_url":"https://codeload.github.com/appbaseio/pipelines-action/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fpipelines-action/sbom","scorecard":{"id":203366,"data":{"date":"2025-08-11","repo":{"name":"github.com/appbaseio/pipelines-action","commit":"02a03926291768f184fa085b973759d18fb540b2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.4,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/23 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'dev'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-7r3h-m5j6-3q42","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T23:12:21.979Z","repository_id":40991764,"created_at":"2025-08-16T23:12:21.979Z","updated_at":"2025-08-16T23:12:21.979Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35270196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-08T02:00:06.796Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-26T01:05:30.165Z","updated_at":"2026-07-08T15:31:53.446Z","avatar_url":"https://github.com/appbaseio.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n## GitHub Action to manage an Appbase.io pipeline from a github repository.\n\n\u003cimg src=\"./.github/assets/preview.png\" alt=\"Preview of deploying action\" width=500px\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n[![forthebadge](https://forthebadge.com/images/badges/made-with-javascript.svg)](https://forthebadge.com)\n\n[![GitHub release](https://img.shields.io/github/v/release/appbaseio/pipelines-action.svg?style=for-the-badge)](https://github.com/appbaseio/pipelines-action/releases/latest)\n[![GitHub marketplace](https://img.shields.io/badge/marketplace-reactivesearch--pipelines-pink?logo=github\u0026style=for-the-badge)](https://github.com/marketplace/actions/reactivesearch-pipelines)\n[![Maintained](https://img.shields.io/badge/Maintained%3F-Yes-lightgreen?style=for-the-badge)](https://github.com/appbaseio/pipelines-action)\n[![License](https://img.shields.io/badge/License-Apache%20License%202.0-orange.svg?style=for-the-badge)](./LICENSE)\n\n\u003cbr/\u003e\n\n### \\[[Usage](#usage)] \\[[Inputs](#inputs)] \\[[Environments](#environments)] \\[[Development](#development)]\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n\u003c/div\u003e\n\n## Usage\n\nThis action can be used out of the box to manage a pipeline from a GitHub repository.\n\n**[Get started with pipelines right away using our template repo](https://github.com/appbaseio/pipelines-template)**\n\nFollowing is an example action.yaml for using the pipeline with default values and a `pipeline.yaml` file in the root of the repository:\n\n```yaml\non: [push]\n\njobs:\n  pipeline_deploy:\n    runs-on: ubuntu-latest\n    name: A job to deploy pipeline from the GitHub repo\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@v2\n      - name: Deploy ReactiveSearch Pipeline\n        uses: appbaseio/pipelines-action\n        with:\n          url: ${{secrets.APPBASEIOURL}}\n```\n\n## Inputs\n\nIt just requires a few inputs from the user:\n\n| Field | Type | Required | Description | Default |\n| --- | --- | --- | --- | --- |\n| **[url](#url)** | string | true | URL to connect to Appbase.io's instance | --- |\n| **[pipeline_id](#pipeline-id)** | string | false | Pipeline ID to map for the pipeline | `\u003corgname\u003e-\u003creponame\u003e` |\n| **[file](#file)** | string | true | Path to the pipeline file | `./pipeline.yaml` |\n| **[depends](#depends)** | string | false | This is a string of objects that are dependencies of the pipeline | '{}' |\n\n### URL\n\nURL is the url to connect to Appbase.io's instance. This URL should contain the credentials in the following way:\n\n```\nhttps://username:password@appbaseioinstanceURL.com\n```\n\nIt is best to not keep this in the file directly and instead store it as a secret. It can then be referenced as a secret in the action file. [Read more about GitHub secrets here](https://docs.github.com/en/actions/security-guides/encrypted-secrets)\n\n### Pipeline ID\n\nThe ID for the pipeline mananged from the current repository. This parameter is optional. By default it is set to `\u003corgname\u003e-\u003creponame\u003e` which is picked up from the github context.\n\nIf the repository is `appbaseio/pipelines-action`, pipeline ID will be: `appbaseio-pipelines-action`\n\n### File\n\nPath to the pipeline file. This file should follow the pipeline file structure based on Appbase.io's details. By default this will be set to `./pipeline.yaml` which would be a `pipeline.yaml` in the root of the repo.\n\n\u003e The `scriptRef` field in stages can contain relative paths or direct paths and will be resolved by the action. For this to work, `depends` should not be passed in the yaml file.\n\n### Depends\n\nThis should be a stringified object of dependencies. The **key** should be the **key** used in the `scriptRef` field at any stage and the **value** should be a path to a file.\n\nIf there is a stage defined in the pipeline file:\n\n```yaml\nstages:\n  - id: \"test stage\"\n    scriptRef: \"helloFile\"\n```\n\nThe `depends` object should be:\n\n```json\n{\n  \"helloFile\": \"./hello.js\"\n}\n```\n\n\u003e NOTE: In order to resolve the `scriptRef` automatically, this field should be omitted.\n\n\n## Environments\n\nIn the pipeline file, `envs` can be passed on a global or a per stage basis. These envs can be strings that are passed directly or referenced using the following syntax:\n\n```yaml\n- envs:\n    SOME_ENV_KEY: ${{ ENV_VALUE }}\n```\n\nThe action will resovle any envs that have the value in the above syntax by extracting the key `ENV_VALUE` from the actions environment (GitHub parses that).\n\nLet's say, in the above code, we want the `ENV_VALUE` field to resolve to `some secret string`.\n\nWe can [add this as a GitHub secret]() with the key: `ENV_VALUE_SECRET`.\n\nOnce, it's added on GitHub, while calling the `pipelines-action`, we need to pass this env in the following way:\n\n```yaml\n- name: Deploy Pipeline\n  uses: appbaseio/pipelines-action@0.1.1\n  with:\n    url: ${{secrets.APPBASEIOURL}}\n    file: \"./basic/pipeline.yaml\"\n  env:\n    ENV_VALUE: ${{ secrets.ENV_VALUE_SECRET }}\n```\n\n\u003e We cannot access GitHub's secret variable directly so we need to basically proxy the envs through the stage envs.\n\nOnce, we run the action with the above code, the final `pipeline.yaml` will be resolve to the following:\n\n```yaml\n- envs:\n    SOME_ENV_KEY: some secret string\n```\n\n\n## Development\n\nThe package is written in plain JS and the source code lies on the `src` directory. `src/index.js` is the main entrypoint into the action. However, since GitHub doesn't install the node modules, we are using [@vercel/ncc](https://github.com/vercel/ncc) to create a distributable `index.js` that contains all the code.\n\nAfter making changes to the `src` directory, the `dist/index.js` file can be generated using the following:\n\n```sh\nncc build src/index.js -o dist\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappbaseio%2Fpipelines-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappbaseio%2Fpipelines-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappbaseio%2Fpipelines-action/lists"}