{"id":27148946,"url":"https://github.com/mach-composer/mach-composer-plugin-vercel","last_synced_at":"2025-08-09T05:16:49.236Z","repository":{"id":64301442,"uuid":"573460408","full_name":"mach-composer/mach-composer-plugin-vercel","owner":"mach-composer","description":"Vercel plugin for Mach Composer","archived":false,"fork":false,"pushed_at":"2025-03-21T22:19:02.000Z","size":115,"stargazers_count":6,"open_issues_count":4,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-21T22:22:32.229Z","etag":null,"topics":["mach-composer","mach-composer-plugin","vercel"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"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/mach-composer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/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},"funding":{"github":["labd"]}},"created_at":"2022-12-02T14:13:28.000Z","updated_at":"2025-03-21T21:46:02.000Z","dependencies_parsed_at":"2024-04-19T14:42:20.755Z","dependency_job_id":"a0381310-c1db-4328-b214-1f6610a187d9","html_url":"https://github.com/mach-composer/mach-composer-plugin-vercel","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-composer%2Fmach-composer-plugin-vercel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-composer%2Fmach-composer-plugin-vercel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-composer%2Fmach-composer-plugin-vercel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mach-composer%2Fmach-composer-plugin-vercel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mach-composer","download_url":"https://codeload.github.com/mach-composer/mach-composer-plugin-vercel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247843865,"owners_count":21005529,"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":["mach-composer","mach-composer-plugin","vercel"],"created_at":"2025-04-08T12:34:46.760Z","updated_at":"2025-08-09T05:16:49.204Z","avatar_url":"https://github.com/mach-composer.png","language":"Go","funding_links":["https://github.com/sponsors/labd"],"categories":[],"sub_categories":[],"readme":"# Vercel plugin for MACH composer\n\nThis plugin adds an integration for Vercel for use with MACH composer.\n\nThis allows you to streamline your configuration and share it as an integration with your MACH components.\n\n## Requirements\n- [MACH Composer \u003e=2.5](https://github.com/labd/mach-composer)\n- [terraform-provider-vercel](https://github.com/vercel/terraform-provider-vercel)\n\n## Usage\n\nYou can set up configuration variables on a global, a site and a component specific level. Inheritance will take place on each level, combining configuration from global\nall the way down to a component level.\n\nExample of setting up global and component level configuration:\n```yaml\nglobal:\n   # ...\n   vercel:\n    api_token: \"token\"\n    team_id: \"team\"\n    project_config:\n        manual_production_deployment: false # Variable to help with setting up manual deployments in Terraform\n        serverless_function_region: \"fra1\"\n        node_version: \"20.x\" # Default Node.js version for all projects\n        environment_variables:\n            - key: CUSTOM_GLOBAL_ENVIRONMENT_VARIABLE\n              value: custom\n              environments: [\"production\"] # When left empty it will default to [\"production\", \"preview\", \"development\"]\nsites:\n    - identifier: my-site\n      # ...\n      vercel:\n        project_config:\n          environment_variables:\n            - key: SITE_SPECIFIC_ENVIRONMENT_VARIABLE\n              value: site\n      components:\n        - name: my-component\n          vercel: # Override defaults on component level\n            project_config:\n                name: \"my-vercel-project\"\n                framework: \"nextjs\"\n                manual_production_deployment: true\n                node_version: \"22.x\" # Specify Node.js version for builds\n                git_repository:\n                  type: \"github\"\n                  repo: \"mach-composer/my-vercel-project\"\n                environment_variables:\n                    - key: CUSTOM_COMPONENT_SPECIFIC_ENVIRONMENT_VARIABLE\n                      value: custom\n                      environments: [\"preview\"]\n                domains:\n                  - domain: \"cool-plugin.com\"\n                    git_branch: main\n                    redirect: \"cool-plugin.vercel.app\"\n                    redirect_status_code: 307\n```\n\nYou can then set up Vercel as an integration for a specific component:\n```yaml\ncomponents:\n    - name: my-site\n      source: git::https://github.com/mach-composer/my-site//terraform\n      version: \"1234567\"\n      integrations: [vercel] # This will prepend the config as variables for your terraform config\n```\n\nThen you can set up your terraform resources with the given variables:\n```hcl\nresource \"vercel_project\" \"project\" {\n  name                       = var.vercel_project_name\n  framework                  = var.vercel_project_framework\n  team_id                    = var.vercel_team_id\n  serverless_function_region = var.vercel_project_serverless_function_region\n  environment                = local.environment\n  git_repository = var.vercel_project_git_repository\n\n  build_command  = var.vercel_project_build_command\n  root_directory = var.vercel_project_root_directory\n  node_version   = var.vercel_project_node_version\n\n  lifecycle {\n    # never accidentally destroy this resource\n    prevent_destroy = true\n  }\n}\n```\n\n### Manual deployment example\n\nThis is an example if you want to manually deploy vercel projects on MACH config updates:\n```hcl\nresource \"vercel_deployment\" \"manual_production_deployment\" {\n  count      = var.manual_production_deployment ? 1 : 0\n  project_id = vercel_project.my_project.id\n  team_id    = var.vercel_team_id\n  ref        = var.component_version\n  production = true\n}\n```\n\n## Support\n\nThis plugin is in an early stage of development and only supports a tiny subset of the Vercel terraform provider.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmach-composer%2Fmach-composer-plugin-vercel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmach-composer%2Fmach-composer-plugin-vercel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmach-composer%2Fmach-composer-plugin-vercel/lists"}