{"id":20660640,"url":"https://github.com/tryghost/action-deploy-theme","last_synced_at":"2025-05-15T08:00:19.910Z","repository":{"id":38798994,"uuid":"214454509","full_name":"TryGhost/action-deploy-theme","owner":"TryGhost","description":":octocat: Deploy your Ghost theme with Github Actions","archived":false,"fork":false,"pushed_at":"2025-05-05T05:03:46.000Z","size":929,"stargazers_count":371,"open_issues_count":6,"forks_count":47,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-05-08T08:02:50.679Z","etag":null,"topics":["ghost","ghost-theme","github-action","github-actions"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/TryGhost.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,"zenodo":null},"funding":{"github":"tryghost","open_collective":"ghost"}},"created_at":"2019-10-11T14:16:41.000Z","updated_at":"2025-05-05T05:03:49.000Z","dependencies_parsed_at":"2023-09-25T06:16:28.380Z","dependency_job_id":"8577a078-973a-4622-864c-ca14d8efcaf3","html_url":"https://github.com/TryGhost/action-deploy-theme","commit_stats":{"total_commits":366,"total_committers":19,"mean_commits":"19.263157894736842","dds":0.5683060109289617,"last_synced_commit":"17231ec7d65583c8eab412687c5d1c65fde19b57"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryGhost%2Faction-deploy-theme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryGhost%2Faction-deploy-theme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryGhost%2Faction-deploy-theme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryGhost%2Faction-deploy-theme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TryGhost","download_url":"https://codeload.github.com/TryGhost/action-deploy-theme/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254301420,"owners_count":22047901,"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":["ghost","ghost-theme","github-action","github-actions"],"created_at":"2024-11-16T19:05:38.386Z","updated_at":"2025-05-15T08:00:16.481Z","avatar_url":"https://github.com/TryGhost.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ghost.org\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/65487235/157884383-1b75feb1-45d8-4430-b636-3f7e06577347.png\" width=\"200px\" alt=\"Ghost\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003ch3 align=\"center\"\u003eDeploy your Ghost Theme from GitHub\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/marketplace/actions/deploy-ghost-theme\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/view-action-blue.svg\" alt=\"View Action\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/TryGhost/action-deploy-theme/contributors/\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/contributors/TryGhost/action-deploy-theme.svg\" alt=\"Contributors\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/tryghost/action-deploy-theme/issues\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/issues/tryghost/action-deploy-theme.svg\" alt=\"Issues\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://opencollective.com/ghost\"\u003e\n        \u003cimg src=\"https://opencollective.com/ghost/backers/badge.svg\" alt=\"OpenCollective\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    This \u003ca href=\"https://github.com/features/actions\"\u003eGitHub action\u003c/a\u003e allows you to automatically build and deploy your \u003ca href=\"https://ghost.org/docs/api/handlebars-themes/\"\u003eGhost Theme\u003c/a\u003e \u003cbr\u003efrom GitHub to any \u003ca href=\"https://ghost.org\"\u003eGhost\u003c/a\u003e install, via the Ghost Admin API!\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/120485/67154934-747e7300-f32e-11e9-9448-586a171c5169.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/120485/66710712-20ace080-eda8-11e9-8559-7f0c3fd96651.png\" /\u003e\n\u003c/p\u003e\n\n---\n\n\u0026nbsp;\n\n\n## Getting Started\n\n💡 This action expects that you already have a working Ghost install running at least v2.25.5.\n\n1. Generate a set of Ghost Admin API credentials, by configuring a new Custom Integration in Ghost Admin \u0026rarr; Integrations.\n\n2. On GitHub, navigate to your theme repository \u0026rarr; Settings \u0026rarr; Secrets and variables \u0026rarr; Actions. Create a secret called `GHOST_ADMIN_API_URL` containing the API URL and another one called `GHOST_ADMIN_API_KEY` containing the Admin API Key. Both must be copied exactly from Ghost Admin \u0026rarr; Integrations.\n\n3. Once your secrets are in place, copy this example config into `.github/workflows/deploy-theme.yml`. Then commit and push your changes:\n\n```yml\nname: Deploy Theme\non:\n  push:\n    branches:\n      - master\n      - main\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - name: Deploy Ghost Theme\n        uses: TryGhost/action-deploy-theme@v1\n        with:\n          api-url: ${{ secrets.GHOST_ADMIN_API_URL }}\n          api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}\n```\n\nThis will trigger a deployment for every commit to master. If you'd like to change the \"on\" event, see the [GitHub action documentation](https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#on), which shows how to build on Pull Requests, Releases, Tags and more.\n\n## Configuration\n\nThe `with` portion of the workflow **must** be configured before the action will work. Any `secrets` must be referenced using the bracket syntax and stored in the GitHub repositories `Settings/Secrets` menu. You can learn more about setting environment variables with GitHub actions [here](https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idstepsenv).\n\n| Key  | Value Information | Type | Required |\n| ------------- | ------------- | ------------- | ------------- |\n| `api-url`  | The base URL of your Ghost Admin API, found by configuring a new Custom Integration in Ghost Admin \u0026rarr; Integrations | `secrets` | **Yes** |\n| `api-key`  | The authentication key for your Ghost Admin API, found by configuring a new Custom Integration in Ghost Admin \u0026rarr; Integrations | `secrets` | **Yes** |\n| `exclude` | A list of files \u0026 folders to exclude from the generated zip file in addition to the [defaults](https://github.com/TryGhost/action-deploy-theme/tree/main/index.js#L28), e.g. `\"gulpfile.js *dist/*\"` | `string` | No |\n| `theme-name` | A custom theme name that overrides the default name in package.json. Useful if you use a fork of Casper, e.g. `\"my-theme\"` | `string` | No |\n| `file` | Path to a built zip file. If this is included, the `exclude` and `theme-name` options are ignored | `string` | No |\n| `working-directory` | A custom directory to zip when a theme is in a subdirectory, e.g. `packages/my-theme` | `string` | No |\n\n\u0026nbsp;\n\n:bulb: Use `exclude` to reduce the size of the zip file \u0026 keep deployment times minimal.\n\n\u0026nbsp;\n\n---\n\n\u003cp align=\"center\"\u003eDon't forget to 🌟 Star 🌟 the repo if you like this GitHub Action!\u003c/p\u003e\n\n# Copyright \u0026 License\n\nCopyright (c) 2013-2025 Ghost Foundation - Released under the [MIT license](LICENSE).\n","funding_links":["https://github.com/sponsors/tryghost","https://opencollective.com/ghost"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryghost%2Faction-deploy-theme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftryghost%2Faction-deploy-theme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryghost%2Faction-deploy-theme/lists"}