{"id":14156024,"url":"https://github.com/screwdriver-cd/config-parser","last_synced_at":"2026-05-20T02:02:15.314Z","repository":{"id":37514579,"uuid":"62014893","full_name":"screwdriver-cd/config-parser","owner":"screwdriver-cd","description":"Node module for parsing screwdriver.yaml configurations","archived":false,"fork":false,"pushed_at":"2024-05-17T22:04:42.000Z","size":351,"stargazers_count":3,"open_issues_count":2,"forks_count":9,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-05-21T20:49:41.065Z","etag":null,"topics":["parser","yaml"],"latest_commit_sha":null,"homepage":"https://cd.screwdriver.cd/pipelines/18","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/screwdriver-cd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2016-06-27T00:39:55.000Z","updated_at":"2024-05-30T08:16:14.323Z","dependencies_parsed_at":"2024-02-22T03:30:21.680Z","dependency_job_id":"59d7ea91-e585-4ca7-8d39-3085c6149f6b","html_url":"https://github.com/screwdriver-cd/config-parser","commit_stats":{"total_commits":140,"total_committers":39,"mean_commits":3.58974358974359,"dds":0.7428571428571429,"last_synced_commit":"8e7eed81b1de9a6cf35f77563a981262afa2e7bf"},"previous_names":[],"tags_count":133,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/screwdriver-cd%2Fconfig-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/screwdriver-cd%2Fconfig-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/screwdriver-cd%2Fconfig-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/screwdriver-cd%2Fconfig-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/screwdriver-cd","download_url":"https://codeload.github.com/screwdriver-cd/config-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227724165,"owners_count":17810022,"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":["parser","yaml"],"created_at":"2024-08-17T08:05:09.835Z","updated_at":"2026-01-06T06:26:25.229Z","avatar_url":"https://github.com/screwdriver-cd.png","language":"JavaScript","funding_links":[],"categories":["yaml"],"sub_categories":[],"readme":"# Screwdriver.yaml Configuration Parser\n[![Version][npm-image]][npm-url] ![Downloads][downloads-image] [![Build Status][status-image]][status-url] [![Open Issues][issues-image]][issues-url] ![License][license-image]\n\n\u003e Node module for validating and parsing `screwdriver.yaml` configurations\n\n - Validates a `screwdriver.yaml` for structural and functional specification\n - Outputs the pipeline's workflowGraph configuration\n - Generates a list of jobs to execute, including:\n     - build permutations\n     - environment variables to set\n     - steps to execute\n     - container image to use\n\n## YAML\n\n```yaml\nshared:\n    environment:\n        NODE_ENV: test\n    settings:\n        email: foo@bar.com\n\njobs:\n    main:\n        image: node:18\n        steps:\n            - init: npm install\n            - test: npm test\n        requires:\n            - ~pr\n            - ~commit\n\n    publish:\n        environment:\n            NODE_TAG: latest\n        image: node:4\n        steps:\n            - bump: npm run bump\n            - publish: npm publish --tag $NODE_TAG\n            - tag: git push origin --tags\n        secrets:\n            - NPM_TOKEN\n            - GIT_KEY\n        requires:\n            - main\n```\n\n## Usage\n\n```bash\nnpm install screwdriver-config-parser\n```\n\nParse in Node.js:\n\n```javascript\nconst parser = require('screwdriver-config-parser');\n\n// Configuration (in YAML form)\nparser(fs.readFileSync('screwdriver.yaml')).then((pipeline) =\u003e {\n    // Workflow for the pipeline\n    // pipeline.workflowGraph\n\n    // All the main jobs with the steps to execute and environment variables to set\n    // pipeline.jobs.main[].commands\n    // pipeline.jobs.main[].environment\n    // pipeline.jobs.main[].image\n\n    // All the publish jobs with the steps to execute and environment variables to set\n    // pipeline.jobs.publish[].commands\n    // pipeline.jobs.publish[].environment\n    // pipeline.jobs.publish[].image\n});\n```\n\n## Testing\n\n```bash\nnpm test\n```\n\n## License\n\nCode licensed under the BSD 3-Clause license. See LICENSE file for terms.\n\n[npm-image]: https://img.shields.io/npm/v/screwdriver-config-parser.svg\n[npm-url]: https://npmjs.org/package/screwdriver-config-parser\n[downloads-image]: https://img.shields.io/npm/dt/screwdriver-config-parser.svg\n[license-image]: https://img.shields.io/npm/l/screwdriver-config-parser.svg\n[issues-image]: https://img.shields.io/github/issues/screwdriver-cd/screwdriver.svg\n[issues-url]: https://github.com/screwdriver-cd/screwdriver/issues\n[status-image]: https://cd.screwdriver.cd/pipelines/18/badge\n[status-url]: https://cd.screwdriver.cd/pipelines/18","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrewdriver-cd%2Fconfig-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscrewdriver-cd%2Fconfig-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrewdriver-cd%2Fconfig-parser/lists"}