{"id":18611662,"url":"https://github.com/nhs-england-tools/update-from-template-app","last_synced_at":"2025-04-10T23:30:59.026Z","repository":{"id":182018877,"uuid":"662613864","full_name":"nhs-england-tools/update-from-template-app","owner":"nhs-england-tools","description":":octocat: 🔄 📁 Automation to synchronise updates from a template repository to all associated repositories. Enhances maintainability, consistency and governance across the NHS England's GitHub projects.","archived":false,"fork":false,"pushed_at":"2024-06-14T12:28:47.000Z","size":1431,"stargazers_count":2,"open_issues_count":6,"forks_count":2,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-25T06:09:05.193Z","etag":null,"topics":["automation","devops","engineering","github-action","github-app","nhs-digital","nhs-england"],"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/nhs-england-tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-05T14:03:52.000Z","updated_at":"2024-06-14T12:27:59.000Z","dependencies_parsed_at":"2024-06-14T13:51:51.656Z","dependency_job_id":"de9707a6-849d-4297-a270-44b3c87b4c92","html_url":"https://github.com/nhs-england-tools/update-from-template-app","commit_stats":null,"previous_names":["nhs-england-tools/update-from-template-action"],"tags_count":0,"template":false,"template_full_name":"nhs-england-tools/repository-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhs-england-tools%2Fupdate-from-template-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhs-england-tools%2Fupdate-from-template-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhs-england-tools%2Fupdate-from-template-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhs-england-tools%2Fupdate-from-template-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nhs-england-tools","download_url":"https://codeload.github.com/nhs-england-tools/update-from-template-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248315949,"owners_count":21083351,"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":["automation","devops","engineering","github-action","github-app","nhs-digital","nhs-england"],"created_at":"2024-11-07T03:14:31.306Z","updated_at":"2025-04-10T23:30:58.647Z","avatar_url":"https://github.com/nhs-england-tools.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Update from Template App\n\nThe Update from Template App is a powerful GitHub App and Action designed to propagate changes made in a template repository to all repositories created from it. This action is particularly beneficial for maintaining consistency across multiple repositories, which were initially set up using the [template repository](https://github.com/nhs-england-tools/repository-template) in the NHS England GitHub organisations. This ensures that improvements, fixes or any updates to the template repository are automatically synchronised across all linked repositories, enhancing maintainability, ensuring consistency and helping with governance.\n\n\n## Table of Contents\n\n- [Update from Template App](#update-from-template-app)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n    - [Prerequisites](#prerequisites)\n  - [Usage](#usage)\n  - [Architecture](#architecture)\n    - [Diagrams](#diagrams)\n    - [Configuration](#configuration)\n  - [Contributing](#contributing)\n  - [Contacts](#contacts)\n  - [Licence](#licence)\n\n## Installation\n\nBy including preferably a one-liner or if necessary a set of clear CLI instructions we improve user experience. This should be a frictionless installation process that works on various operating systems (macOS, Linux, Windows WSL) and handles all the dependencies.\n\nClone the repository\n\n```shell\ngit clone https://github.com/nhs-england-tools/repository-template.git\ncd nhs-england-tools/repository-template\n```\n\nInstall and configure toolchain dependencies\n\n```shell\nmake config\n```\n\nIf this repository is\n\n```shell\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/org/repo/branch/install.sh)\"\n```\n\n### Prerequisites\n\nThe following software packages or their equivalents are expected to be installed\n\n- [GNU make](https://www.gnu.org/software/make/)\n- [Docker](https://www.docker.com/)\n\n## Usage\n\nAfter a successful installation, provide an informative example of how this project can be used. Additional code snippets, screenshots and demos work well in this space. You may also link to the other documentation resources, e.g. the [User Guide](./docs/user-guide.md) to demonstrate more use cases and to show more features.\n\nLocally\n\n```shell\nmake docker-build\nmake docker-test \\\n  REPOSITORY_TEMPLATE=github.com/nhs-england-tools/repository-template \\\n  BRANCH_NAME=main \\\n  REPOSITORY_TO_UPDATE=github.com/nhs-england-tools/update-from-template-app \\\n  GIT_USER_NAME=\"Update from Template App\" \\\n  GIT_USER_EMAIL=\"update-from-template-app@users.noreply.github.com\" \\\n  DRY_RUN=true \\\n  VERBOSE=false\n```\n\n## Architecture\n\n### Diagrams\n\nThe [C4 model](https://c4model.com/) is a simple and intuitive way to create software architecture diagrams that are clear, consistent, scalable and most importantly collaborative. This should result in documenting all the system interfaces, external dependencies and integration points.\n\n![Repository Template](./docs/diagrams/Update_from_Template_High_level_design.png)\n\n### Configuration\n\nMost of the projects are built with customisability and extendability in mind. At a minimum, this can be achieved by implementing service level configuration options and settings. The intention of this section is to show how this can be used. If the system processes data, you could mention here for example how the input is prepared for testing - anonymised, synthetic or live data.\n\nGitHub secret variables\n\n- `UPDATE_FROM_TEMPLATE_GH_APP_ID`: GitHub App ID\n- `UPDATE_FROM_TEMPLATE_GH_APP_PK`: GitHub App private key\n- `UPDATE_FROM_TEMPLATE_GH_APP_SK_ID`: GitHub App commit signing key ID, this belongs to a bot account\n- `UPDATE_FROM_TEMPLATE_GH_APP_SK_CONTENT`: GitHub App commit signing key content, this belongs to a bot account\n- `UPDATE_FROM_TEMPLATE_GH_APP_SK_PASSPHRASE`: GitHub App commit signing key passphrase, this belongs to a bot account\n\n## Contributing\n\nDescribe or link templates on how to raise an issue, feature request or make a contribution to the codebase. Reference the other documentation files, like\n\n- Environment setup for contribution, i.e. `CONTRIBUTING.md`\n- Coding standards, branching, linting, practices for development and testing\n- Release process, versioning, changelog\n- Backlog, board, roadmap, ways of working\n- High-level requirements, guiding principles, decision records, etc.\n\n## Contacts\n\n- [Dan Stefaniuk](https://github.com/stefaniuk)\n\n## Licence\n\n\u003e The [LICENCE.md](./LICENCE.md) file will need to be updated with the correct year and owner\n\nUnless stated otherwise, the codebase is released under the MIT License. This covers both the codebase and any sample code in the documentation.\n\nAny HTML or Markdown documentation is [© Crown Copyright](https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/) and available under the terms of the [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhs-england-tools%2Fupdate-from-template-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhs-england-tools%2Fupdate-from-template-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhs-england-tools%2Fupdate-from-template-app/lists"}