{"id":43034758,"url":"https://github.com/bscotch/stitch","last_synced_at":"2026-01-31T08:14:24.234Z","repository":{"id":48386158,"uuid":"296704153","full_name":"bscotch/stitch","owner":"bscotch","description":"Tools and apps for GameMaker development: a CLI for pipeline development, a VSCode extension for coding, and more.","archived":false,"fork":false,"pushed_at":"2026-01-11T18:53:02.000Z","size":9319,"stargazers_count":147,"open_issues_count":23,"forks_count":19,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2026-01-11T21:26:51.206Z","etag":null,"topics":["audio","game-development","game-development-workflow","gamedev","gamemaker","gamemaker-studio","gamemaker-studio-2","gms2","sprites"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"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/bscotch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"ko_fi":"bscotch","custom":null}},"created_at":"2020-09-18T18:47:33.000Z","updated_at":"2026-01-11T18:53:05.000Z","dependencies_parsed_at":"2023-10-17T05:53:43.292Z","dependency_job_id":"88f7bf4d-34bf-4a86-898c-eae9dd635ca3","html_url":"https://github.com/bscotch/stitch","commit_stats":{"total_commits":623,"total_committers":5,"mean_commits":124.6,"dds":0.1203852327447833,"last_synced_commit":"7e640a296f8ecbbf326c2f8011de9ae4fc8a7362"},"previous_names":[],"tags_count":921,"template":false,"template_full_name":null,"purl":"pkg:github/bscotch/stitch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bscotch%2Fstitch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bscotch%2Fstitch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bscotch%2Fstitch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bscotch%2Fstitch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bscotch","download_url":"https://codeload.github.com/bscotch/stitch/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bscotch%2Fstitch/sbom","scorecard":{"id":256133,"data":{"date":"2025-08-11","repo":{"name":"github.com/bscotch/stitch","commit":"254f8fab0e8c954e4cf1be657b25f21154f398a6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/28 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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: topLevel 'contents' permission set to 'write': .github/workflows/publish-cl2-editor.yaml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/publish-stitch-site.yaml:10","Warn: topLevel 'contents' permission set to 'write': .github/workflows/publish-stitch-vscode.yaml:10","Info: no jobLevel write permissions found"],"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":10,"reason":"30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-cl2-editor.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-cl2-editor.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-cl2-editor.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-cl2-editor.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-stitch-site.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-stitch-site.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-stitch-site.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-stitch-site.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-stitch-site.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-stitch-site.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-stitch-site.yaml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-stitch-site.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-stitch-vscode.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-stitch-vscode.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-stitch-vscode.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/bscotch/stitch/publish-stitch-vscode.yaml/develop?enable=pin","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned"],"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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact stitch-desktop@0.11.24 not signed: https://api.github.com/repos/bscotch/stitch/releases/118466581","Warn: release artifact stitch-desktop@0.11.23 not signed: https://api.github.com/repos/bscotch/stitch/releases/118455894","Warn: release artifact stitch-desktop@0.11.22 not signed: https://api.github.com/repos/bscotch/stitch/releases/117367332","Warn: release artifact stitch-desktop@0.11.21 not signed: https://api.github.com/repos/bscotch/stitch/releases/112331890","Warn: release artifact stitch-desktop@0.11.20 not signed: https://api.github.com/repos/bscotch/stitch/releases/111974125","Warn: release artifact stitch-desktop@0.11.24 does not have provenance: https://api.github.com/repos/bscotch/stitch/releases/118466581","Warn: release artifact stitch-desktop@0.11.23 does not have provenance: https://api.github.com/repos/bscotch/stitch/releases/118455894","Warn: release artifact stitch-desktop@0.11.22 does not have provenance: https://api.github.com/repos/bscotch/stitch/releases/117367332","Warn: release artifact stitch-desktop@0.11.21 does not have provenance: https://api.github.com/repos/bscotch/stitch/releases/112331890","Warn: release artifact stitch-desktop@0.11.20 does not have provenance: https://api.github.com/repos/bscotch/stitch/releases/111974125"],"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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 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":0,"reason":"16 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-8266-84wp-wv5c","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-c76h-2ccp-4975","Warn: Project is vulnerable to: GHSA-cxrh-j4jr-qwg3"],"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-17T09:45:45.868Z","repository_id":48386158,"created_at":"2025-08-17T09:45:45.868Z","updated_at":"2025-08-17T09:45:45.868Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28934815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T07:49:44.436Z","status":"ssl_error","status_checked_at":"2026-01-31T07:49:34.274Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["audio","game-development","game-development-workflow","gamedev","gamemaker","gamemaker-studio","gamemaker-studio-2","gms2","sprites"],"created_at":"2026-01-31T08:14:23.665Z","updated_at":"2026-01-31T08:14:24.226Z","avatar_url":"https://github.com/bscotch.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.bscotch.net/fit-in/256x256/logos/stitch.png\" alt=\"Stitch (GameMaker Pipeline Development Kit) Logo\"/\u003e\n\u003c/p\u003e\n\n# Stitch Monorepo\n\n[Butterscotch Shenanigans](https://www.bscotch.net) (\"Bscotch\") develops and maintains a collection of tools for management of [GameMaker](https://gamemaker.io) projects. These tools are collected under the umbrella trademark \"Stitch\".\n\nThis monorepo includes the code for many of the Stitch projects.\n\n\u003e 💡 Bscotch only develops features and fixes bugs that impact our studio directly. If you need other features or fixes, feel free to fork this project to add them yourself. You may submit pull requests with your changes, but we make no promises that we will merge them.\n\n_Butterscotch Shenanigans\u0026reg; and Stitch\u0026trade; are not affiliated with GameMaker\u0026reg;._\n\n## Stitch Projects\n\nSome of the projects listed here are available as compiled packages via [npm](https://npmjs.com) or other 3rd party repositories. Others are only used locally.\n\n- [**Stitch for VSCode**](packages/vscode): A [Visual Studio Code](https://code.visualstudio.com/) extension providing code editing features for GameMaker project files. Available as [`bscotch.bscotch-stitch-vscode` via the Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=bscotch.bscotch-stitch-vscode).\n- [**Stitch YY**](packages/yy): Utilities for reading, validating, and writing `.yy` and `.yyp` files. Available as [`@bscotch/yy` via npm](https://www.npmjs.com/package/@bscotch/yy).\n- [**GML Parser**](packages/parser): A GML parser and project modeler, providing programmatic access to a GameMaker project's resources and code. Provides features like go-to-definition, adding/removing resources, etc. Underpins Stitch for VSCode, but can be used on its own to create other tools and pipelines. Available as [`@bscotch/gml-parser` via npm](https://www.npmjs.com/package/@bscotch/gml-parser).\n- [**Sprite Source**](packages/sprite-source): A library for creating art asset pipelines for GameMaker projects, including a basic CLI. Built into Stitch for VSCode, but also available as a standalone thing for other workflows. Available as [`@bscotch/sprite-source` via npm](https://www.npmjs.com/package/@bscotch/sprite-source).\n- [**Stitch Launcher**](packages/launcher): Utilities for automatically installing the GameMaker IDE by version, and opening GameMaker projects with specific IDE versions.\n- [**GameMaker Merged Releases**](packages/releases): Utilities for merging the various GameMaker IDE and Runtime release notes into a single merged listing. Available as [`@bscotch/gamemaker-releases` via npm](https://www.npmjs.com/package/@bscotch/gamemaker-releases). Merged feeds are regularly published to [this repo's releases](https://github.com/bscotch/stitch/releases/latest/download/releases-summary.json).\n- [**Stitch Core (LEGACY)**](https://github.com/bscotch/stitch-legacy/tree/develop/packages/core): The core SDK for managing and manipulating GameMaker projects. It includes a programmatic API and a CLI. Available as [`@bscotch/stitch` via npm](https://www.npmjs.com/package/@bscotch/stitch). (No longer maintained. Superseded by the GML Parser project.)\n- [**Spritely (LEGACY)**](packages/spritely): Utilities for batch-preparation of source images for import as GameMaker sprites. It includes a programmatic API and a CLI. Available as [`@bscotch/spritely` via npm](https://www.npmjs.com/package/@bscotch/spritely). (No longer maintained. Superseded by the Sprite Source project.)\n\n## Development\n\n### Setup\n\n1. Install [pnpm](https://pnpm.io/installation)\n\n- If you already have corepack available but do not have pnpm, you can run `npm run setup:pnpm` in this directory to install it.\n\n2. Run `pnpm install` in this directory to install all dependencies.\n\n- You can use [pnpm filters](https://pnpm.io/filtering) to only install the dependencies for a specific package.\n\n3. Run `pnpm build:all` to build all packages.\n","funding_links":["https://ko-fi.com/bscotch"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbscotch%2Fstitch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbscotch%2Fstitch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbscotch%2Fstitch/lists"}