{"id":48622088,"url":"https://github.com/fastly/devex-reusable-workflows","last_synced_at":"2026-04-09T04:01:35.879Z","repository":{"id":283556665,"uuid":"944031411","full_name":"fastly/devex-reusable-workflows","owner":"fastly","description":"GitHub Actions workflows that are used in many DevEx Engineering repositories","archived":false,"fork":false,"pushed_at":"2026-03-25T13:24:18.000Z","size":54,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-04T01:43:31.031Z","etag":null,"topics":["fastly-oss-tier2"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fastly.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":".github/CODEOWNERS","security":"SECURITY.md","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}},"created_at":"2025-03-06T17:07:44.000Z","updated_at":"2026-03-25T13:24:23.000Z","dependencies_parsed_at":"2025-06-16T14:33:18.808Z","dependency_job_id":"4d05449d-8159-46c0-a61e-2fc320fb81fc","html_url":"https://github.com/fastly/devex-reusable-workflows","commit_stats":null,"previous_names":["fastly/devex-reusable-workflows"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fastly/devex-reusable-workflows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastly%2Fdevex-reusable-workflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastly%2Fdevex-reusable-workflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastly%2Fdevex-reusable-workflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastly%2Fdevex-reusable-workflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastly","download_url":"https://codeload.github.com/fastly/devex-reusable-workflows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastly%2Fdevex-reusable-workflows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31582021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"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":["fastly-oss-tier2"],"created_at":"2026-04-09T04:01:35.100Z","updated_at":"2026-04-09T04:01:35.868Z","avatar_url":"https://github.com/fastly.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reusable GitHub Actions Workflows\n\nThese workflows are intended for use in the public repositories\nmanaged the Fastly Developer Experience Engineering team. Since the\nrepository is public anyone is free to use if them if they wish, but\nthe team does not make any guarantees about maintaining compatibility\nwhen changes are made.\n\n## Workflows\n\n### `compute-starter-kit-rust-v1.yml`\n\nTODO: Add description\n\n### `compute-starter-kit-rust-v2.yml`\n\nTODO: Add description\n\n### `dependabot-changelog-update.yml`\n\nTODO: Add description\n\n### `process-semver-v1.yml`\n\nProcesses a provided string or the tag name as a SemVer.\n\n#### Inputs\n\n* `version` - (optional) The version string to process, with or without a leading v,\n  e.g. `1.2.3` or `v1.2.3-rc.1`. If not provided, then the current tag name is used.\n\n* `tag_prefix` - Tag prefix, when triggered by a tag. This prefix is strict and\n  must fully match the tag format (e.g. `'v'` → `v1.2.3`, `'release/v'` → `release/v1.2.3`).\n\n#### Outputs\n\nIf the string is successfully processed as a SemVer, the workflow succeeds and produces two outputs:\n\n* `version` - the SemVer string, such as `1.2.3` or `1.2.3-beta.0`\n\n* `dist_tag` - the \"tag\" part of the semver (such as `beta`, `rc`, or `latest` if not provided) \n\nIf the string is not process as a SemVer, the workflow fails.\n\n### `publish-javascript-github-v1.yml`\n\nPublishes a package to GitHub Packages, using the provided dist tag. Optionally checks the package's\nname and version.\n\n#### Inputs\n\n* `expected_pkg_name` - (optional) Expected package name. If provided, must match the `name`\n  field in the `package.json` file, or the workflow fails.\n\n* `expected_pkg_version` - (optional) Expected package version. If provided, must match the `version`\n  field in the `package.json` file, or the workflow fails.\n\n* `dist_tag` - Dist tag to release, e.g., `latest`, `alpha`, `beta`, `rc`. If not provided,\n  defaults to `latest`.\n\n* `node_auth_token` - Token used to authenticate to GitHub Packages. If not provided,\n  defaults to `secrets.GITHUB_TOKEN`.\n\n* `dry_run` - If set to `\"true\"`, passes `--dry-run` to `npm publish`.\n  If not provided, defaults to `\"false\"`.\n\n* `cwd` - Path to directory containing `package.json`, relative to the repo root. If not provided,\n  defaults to the repo root.\n\n#### Outputs\n\nIf all the following steps are successful, the workflow succeeds.\n- there is a `package.json` file in the `cwd` directory\n- if `expected_*` checks are provided, they pass\n- the `npm publish` command successfully publishes the package to npmjs.org\n\nOtherwise, the workflow fails.\n\n#### Notes\n\nIf `node_auth_token` is provided, the token must have permissions to publish the package.\n\nIf `node_auth_token` is not provided, then the calling workflow must have permissions\nto publish the package. A workflow can be given permissions by adding the permission:\n\n```yaml\npermissions:\n  contents: read\n  packages: write\n```\n\n### `publish-javascript-npmjs-v1.yml`\n\nPublishes a package to npmjs.org, using the provided dist tag. Optionally checks the package's\nname and version.\n\n#### Inputs\n\n* `expected_pkg_name` - (optional) Expected package name. If provided, must match the `name`\n  field in the `package.json` file, or the workflow fails.\n\n* `expected_pkg_version` - (optional) Expected package version. If provided, must match the `version`\n  field in the `package.json` file, or the workflow fails.\n\n* `dist_tag` - Dist tag to release, e.g., `latest`, `alpha`, `beta`, `rc`. If not provided,\n  defaults to `latest`.\n\n* `dry_run` - If set to `\"true\"`, passes `--dry-run` to `npm publish`.\n  If not provided, defaults to `\"false\"`.\n\n* `cwd` - Path to directory containing `package.json`, relative to the repo root. If not provided,\n  defaults to the repo root.\n\n#### Outputs\n\nIf all the following steps are successful, the workflow succeeds.\n- there is a `package.json` file in the `cwd` directory\n- if `expected_*` checks are provided, they pass\n- the `npm publish` command successfully publishes the package to npmjs.org\n\nOtherwise, the workflow fails.\n\n#### Notes\n\nAuthentication for publishing the package to npmjs.org is performed using\n[trusted publishing](https://docs.npmjs.com/trusted-publishers).\n\n- The package must be set up for trusted publishing.\n  [See the npm docs](https://docs.npmjs.com/trusted-publishers#step-1-add-a-trusted-publisher-on-npmjscom)\n  for detailed instructions on adding the calling workflow as a trusted publisher\n  under the settings tab of the package page on npmjs.org.\n\n- The calling workflow must have permissions to generate OIDC tokens.\n  A workflow can be given permissions by adding the permission:\n  ```yaml\n  permissions:\n    id-token: write\n    contents: read\n  ```\n\n## Actions\n\n### `publish-javascript-github-v1`\n\nTODO: Add description\n\n### `publish-javascript-npmjs-v1`\n\nTODO: Add description\n\n### `validate-javascript-package-v1`\n\nTODO: Add description\n\n## Security issues\n\nPlease see [SECURITY.md](SECURITY.md) for guidance on reporting\nsecurity-related issues.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastly%2Fdevex-reusable-workflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastly%2Fdevex-reusable-workflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastly%2Fdevex-reusable-workflows/lists"}