{"id":18772215,"url":"https://github.com/kyaulabs/template","last_synced_at":"2025-07-19T16:36:51.592Z","repository":{"id":167722709,"uuid":"641705792","full_name":"kyaulabs/template","owner":"kyaulabs","description":"This basis for all other @kyaulabs repositories.","archived":false,"fork":false,"pushed_at":"2024-01-16T07:55:42.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2024-12-29T08:13:13.091Z","etag":null,"topics":["github-template","issue-template","pull-request-template","repository","repository-template","template","template-repository"],"latest_commit_sha":null,"homepage":"https://kyaulabs.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kyaulabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":"kyau"}},"created_at":"2023-05-17T02:11:00.000Z","updated_at":"2023-05-26T23:14:57.000Z","dependencies_parsed_at":"2024-01-16T09:50:31.067Z","dependency_job_id":"07fe976f-0cd5-46a5-b88c-e32b721a0c45","html_url":"https://github.com/kyaulabs/template","commit_stats":null,"previous_names":["kyaulabs/template"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Ftemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Ftemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Ftemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyaulabs%2Ftemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kyaulabs","download_url":"https://codeload.github.com/kyaulabs/template/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239680625,"owners_count":19679502,"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":["github-template","issue-template","pull-request-template","repository","repository-template","template","template-repository"],"created_at":"2024-11-07T19:28:12.097Z","updated_at":"2025-02-19T14:44:02.825Z","avatar_url":"https://github.com/kyaulabs.png","language":"JavaScript","funding_links":["https://github.com/sponsors/kyau"],"categories":[],"sub_categories":[],"readme":"﻿# 📘 template\n\n[https://kyaulabs.com/](https://kyaulabs.com/)\n\n[![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-2.1-4baaaa.svg?logo=open-source-initiative\u0026logoColor=4baaaa)](CODE_OF_CONDUCT.md) \u0026nbsp; [![Conventional Commits](https://img.shields.io/badge/conventional%20commits-1.0.0-fe5196?style=flat\u0026logo=conventionalcommits)](https://www.conventionalcommits.org/en/v1.0.0/) \u0026nbsp; [![GitHub](https://img.shields.io/github/license/kyaulabs/template?logo=creativecommons)](LICENSE) \u0026nbsp; [![Gitleaks](https://img.shields.io/badge/protected%20by-gitleaks-blue?logo=git\u0026logoColor=seagreen\u0026color=seagreen)](https://github.com/zricethezav/gitleaks)  \n[![Semantic Versioning](https://img.shields.io/github/v/release/kyaulabs/template?include_prereleases\u0026logo=semver\u0026sort=semver)](https://semver.org) \u0026nbsp; [![Discord](https://img.shields.io/discord/88713030895943680?logo=discord\u0026color=blue\u0026logoColor=white)](https://discord.gg/DSvUNYm)\n\n## About\n\nThis repository is the basis for all other repositories created here at KYAU Labs.\n\n* GitHub limits repositories to 10GB of cache space for actions.\n* GitHub limits users/organizations to 0.5GB of artifact storage.\n\nKeep these factors in mind when setting up repositories.\n\n* [About](#about)\n* [Install Additions (optional)](#install-additions-optional)\n* [New Repository](#new-repository)\n  * [Clone this Template](#clone)\n  * [Initialize Repository](#init)\n  * [Add License](#add-license)\n  * [Add `.gitignore`](#add-gitignore)\n  * [Update `README.md`](#update-readmemd)\n* [Git Hooks](#git-hooks)\n  * [Configuration](#configuration)\n  * [Symlinks](#symlinks)\n* [Initial Commit](#initial-commit)\n  * [Stage All](#stage-all)\n  * [Commit](#commit)\n  * [Push](#push)\n* [Repository Settings](#repository-settings)\n  * [General](#general)\n  * [Collaborators and Teams](#collaborators-and-teams)\n  * [Branches](#branches)\n  * [Webhooks](#webhooks)\n* [Issue Labels](#issue-labels)\n* [Conventional Commits](#conventional-commits)\n  * [Type](#type)\n  * [Scope](#scope)\n  * [Subject](#subject)\n  * [Body](#body)\n  * [Footer](#footer)\n  * [Examples](#examples)\n* [Changelog](#changelog)\n* [Unity Projects](#unity-projects)\n  * [Unity Activation](#unity-activation)\n* [Attribution](#attribution)\n\n## Install Additions (optional)\n\n```sh\n🚧 WARNING\n# This is only required if you do not already have commitlint and git-cliff installed.\n```\n\nInstall `commitlint` and `git-cliff` globally and then generate a commitlint config file.\n\n```text\nnpm i -g @commitlint/config-conventional @commitlint/cli git-cliff\n```\n\n## New Repository\n\nBase the repository off of the organization template repository.\n\n### Clone\n\n```text\ngit clone https://github.com/kyaulabs/template \u003cREPOSITORY_NAME\u003e\ncd \u003cREPOSITORY_NAME\u003e\nrm -rf .git\n```\n\n### Init\n\nInitialize your new repository.\n\n```text\ngit init\n```\n\n### Add `LICENSE`\n\nAdd in a `LICENSE` of choice, using the filename `LICENSE.txt`, `LICENSE.md` or `LICENSE.rst`. There are two main repositories of licenses to choose from:\n\n* GNU: [GNU APGLv3](https://choosealicense.com/licenses/agpl-3.0/) / [GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/) / [GNU LGPLv3](https://choosealicense.com/licenses/lgpl-3.0/)\n* General: [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/) / [MIT License](https://choosealicense.com/licenses/mit/) / [Mozilla Public License 2.0](https://choosealicense.com/licenses/mpl-2.0/)\n* CC: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) / [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0) / [CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0) / [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0) / [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0) / [CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0)\n\n### Add `.gitignore`\n\nAdd a  `.gitignore` template from [@github/gitignore](https://github.com/github/gitignore) (modification required).\n\n### Update `README.md`\n\nTake this time to update the `README.md` with at least basic repository information and a hopeful table of contents. It is okay if most sections are blank.\n\n### Update `cliff.toml`\n\nBe sure to modify `cliff.toml` and replace all the instances of `kyaulabs/template` with the new repository location.\n\n### Add Actions\n\nMake sure you add the appropriate actions from the [@kyaulabs/template-workflows](https://github.com/kyaulabs/template-workflows) repository.\n\nEdit the workflow accordingly as all workflows come with only manual activation set with automatic activation commented out.\n\n```yaml\non:\n  workflow_dispatch: {}\n#on:\n#  push:\n#    branches: [ \"main\", \"develop\" ]\n#  workflow_dispatch:\n```\n\n## Git Hooks\n\n### Configuration\n\nGenerate a config for commitlint.\n\n```c\necho \"module.exports = { extends: ['@commitlint/config-conventional'] };\" \u003e commitlint.config.js\n```\n\n### Symlinks\n\nCopy or symlink to the hooks located inside of `.github/hooks`.\n\n```text\nchmod u+x .github/hook/*\ncp .github/hooks/* .git/hooks/\n```\n\n## Initial Commit\n\n### Stage All\n\nAdd all files to the repository. The first command utilizing the dry-run switch to make sure you do not need any last minute additions to `.gitignore`.\n\n```text\ngit add -A -n\ngit add -A\n```\n\n### Commit\n\nPush the initial commit with (non-commitlint verified message).\n\n```text\ngit commit -S -a -m \"ignore: here be dragons\"\n```\n\nFinally set the main branch name.\n\n```text\ngit branch -M main\n```\n\n### Push\n\nAdd the remote origin and push the branch to origin.\n\n```text\ngit remote add origin git@github.com:kyaulabs/\u003cREPOSITORY_NAME\u003e.git\ngit push -u origin main\n```\n\n## Repository Settings\n\nIn order to have proper repository security, some settings need to change. Open up the repository settings by clicking on the `Settings` tab at the top of the repository.\n\n### General\n\nUpload an image to customize the repository’s social media preview.\n\n* Image should be 1280×640px - [Download template](https://github.com/kyaulabs/win11tweak/settings/og-template)\n\nUnder the `Features` section enable `Sponsorships` and then disable anything that is not being using.\n\n### Collaborators and Teams\n\nUnder manage access click on `Add people`. In the search box enter and select `@kyaulabs-bot` then change the role to `Write`.\n\n\u003cimg src=\"https://avatars.githubusercontent.com/u/135310113?s=42\u0026v=4\" style=\"vertical-align:middle;margin-left:4ch\" /\u003e @kyaulabs-bot\n\n### Branches\n\nCreate a new branch protection rule by clicking `Add branch protection rule`.\n\n* Branch name pattern: `main`\n* Protect matching branches:\n  * `Require a pull request before merging`\n  * `Require approvals (1)`\n  * `Require signed commits`\n\nClick `Create`.\n\nCreate another branch protection rule with the following:\n\n* Branch name pattern: `**/**`\n* Protect matching branches:\n  * `Require signed commits`\n\n### Webhooks\n\nIf you would like this repository to output to a channel on Discord you will need to create a webhook on both ends.\n\nIn Discord goto the `Server Settings \u003e Apps \u003e Integrations` and click `New Webhook`. Give it an avatar, name and select a channel for it to output to.\n\nBack on GitHub on the `Settings \u003e Webhooks` page, create a new hook by clicking `Add webhook`.\n\n* Payload URL: Click on `Copy Webhook URL` in Discord to get this URL.\n* Content type: `application/json`\n* Let me select individual events:\n  * `Commit comments` `Forks` `Issues` `Page builds` `Pull requests` `Pushes` `Releases` `Statuses` `Wiki`\n\nClick on `Add webhook`.\n\n## Issue Labels\n\nOrganization level issue labels work in conjunction with conventional commits. We use a modified version of the [TIPS](https://www.fat.codes/articles/tips-issue-labeling-system/) system called TPS or Type, Priority and Status as a way to label issues such that they can be organized and assigned accordingly.\n\nIn order to properly label something be sure to include at least one type, a single priority and it's current status. Optional labels may be added at your discretion.\n\n**T - Type:** Directly corresponds to the conventional commits [type](#type).\nGroup | Label | Color | Description\n:----:|:-----:|:-----:|-------------\nType | `feature` | \u003cspan style=\"color:#41d6c3\"\u003e#41d6c3\u003c/span\u003e | 🚀 Feature\nType | `patch` | \u003cspan style=\"color:#41d6c3\"\u003e#41d6c3\u003c/span\u003e | 🚀 Sub-Feature\nType | `bug` | \u003cspan style=\"color:#ff5050\"\u003e#ff5050\u003c/span\u003e | 🐛 Bug\nType | `documentation` | \u003cspan style=\"color:#c0e6ff\"\u003e#c0e6ff\u003c/span\u003e | 📝 Documentation\nType | `performance` | \u003cspan style=\"color:#41d6c3\"\u003e#41d6c3\u003c/span\u003e | ⚡️ Performance\nType | `refactor` | \u003cspan style=\"color:#ffa572\"\u003e#ffa572\u003c/span\u003e | ♻️ Refactor\nType | `style` | \u003cspan style=\"color:#ffa572\"\u003e#ffa572\u003c/span\u003e | 💄 Styling\nType | `test` | \u003cspan style=\"color:#ffd791\"\u003e#ffd791\u003c/span\u003e | ⚗️ Testing\nType | `ci/cd` | \u003cspan style=\"color:#ffd791\"\u003e#ffd791\u003c/span\u003e | 👷 CI/CD\nType | `chore` | \u003cspan style=\"color:#ffd791\"\u003e#ffd791\u003c/span\u003e | 🔮 Misc\nType | `security` | \u003cspan style=\"color:#ff5050\"\u003e#ff5050\u003c/span\u003e | 🔒️ Security\n\n**P - Priority:** The urgency of the issue/task.\nGroup | Label | Color | Description\n:----:|:-----:|:-----:|-------------\nPriority | `critical` | \u003cspan style=\"color:#800000\"\u003e#800000\u003c/span\u003e | Security-related/Project-breaking\nPriority | `high` | \u003cspan style=\"color:#c11c00\"\u003e#c11c00\u003c/span\u003e | Foundational / Important\nPriority | `medium` | \u003cspan style=\"color:#f39a4d\"\u003e#f39a4d\u003c/span\u003e | Basic / Normal\nPriority | `low` | \u003cspan style=\"color:#8cd211\"\u003e#8cd211\u003c/span\u003e | Additional / Polish\n\n**S - Status:** Current progress.\nGroup | Label | Color | Description\n:----:|:-----:|:-----:|-------------\nStatus | `done` | \u003cspan style=\"color:#0e8a16\"\u003e#0e8a16\u003c/span\u003e | Complete\nStatus | `in progress` | \u003cspan style=\"color:#fbca04\"\u003e#fbca04\u003c/span\u003e | Currently Working On\nStatus | `testing` | \u003cspan style=\"color:#fbca04\"\u003e#fbca04\u003c/span\u003e | Testing Ideas / Methods\nStatus | `under construction` | \u003cspan style=\"color:#fbca04\"\u003e#fbca04\u003c/span\u003e | Beginning Stages\n\n**Optional:** Two other groups are included for convinience.\nGroup | Label | Color | Description\n:----:|:-----:|:-----:|-------------\nFeedback | `brainstorming` | \u003cspan style=\"color:#db2780\"\u003e#db2780\u003c/span\u003e | Coming Up w/ New \u0026lt;Type\u0026gt;\nFeedback | `help wanted` | \u003cspan style=\"color:#db2780\"\u003e#db2780\u003c/span\u003e | Help Requested on \u0026lt;Type\u0026gt;\nFeedback | `research` | \u003cspan style=\"color:#db2780\"\u003e#db2780\u003c/span\u003e | \u0026lt;Type\u0026gt; Needs Research\nFeedback | `request for comments` | \u003cspan style=\"color:#db2780\"\u003e#db2780\u003c/span\u003e | External Opinions Needed on \u0026lt;Type\u0026gt;\nOther | `good first issue` | \u003cspan style=\"color:#4e3cb2\"\u003e#4e3cb2\u003c/span\u003e | Good Issue for First Time Contributor\nOther | `duplicate` | \u003cspan style=\"color:#cfd3d7\"\u003e#cfd3d7\u003c/span\u003e | Duplicate \u0026lt;Type\u0026gt;\nOther | `invalid` | \u003cspan style=\"color:#cfd3d7\"\u003e#cfd3d7\u003c/span\u003e | Invalid \u0026lt;Type\u0026gt;\nOther | `on hold` | \u003cspan style=\"color:#cfd3d7\"\u003e#cfd3d7\u003c/span\u003e | Currently On Hold\nOther | `won't fix` | \u003cspan style=\"color:#cfd3d7\"\u003e#cfd3d7\u003c/span\u003e | This Will Not Be Fixed\n\n## Conventional Commits\n\nIn order to abide by the conventional commit guidelines and in return get auto-generated changelogs, use the following.\n\n```text\n\u003ctype\u003e[optional scope]: \u003csubject\u003e\n\n[optional body]\n\n[optional footer(s)]\n```\n\n### Type\n\n```text\n[required] (!empty) value = {\n  'build',\n  'chore',\n  'ci',\n  'docs',\n  'feat',   # this correlates with MINOR in Semantic Versioning\n  'fix',    # this correlates with PATCH in Semantic Versioning\n  'patch',  # this correlates with PATCH in Semantic Versioning\n  'perf',\n  'refactor',\n  'revert',\n  'style',\n  'test',\n  'ignore'  # this correlates with CHANGELOG ignores\n}\n\nA trailing ! indicates a BREAKING CHANGE (correlating with MAJOR in Semantic Versioning).\n```\n\n### Scope\n\n```text\n[optional] {lowercase | camelCase}\n\nA noun describing a section of the codebase surrounded by parenthesis.\n```\n\n### Subject\n\n```text\n[required] (!empty) {lowercase | camelCase} (max-length: 100)\n\nA short summary of the code changes, without a trailing full-stop.\n\nAdding [skip ci] will skip all push and pull_request workflows.\n```\n\n### Body\n\n```text\n[optional] {freeform} (max-length: 100)\n\nLonger commit body with additional contextual information about the code changes.\n```\n\n### Footer\n\n```text\n\u003ctoken\u003e: \u003cvalue\u003e\n[optional] (max-length: 100)\ntoken (Sentance-case) = {\n  'BREAKING CHANGE',    # Exception to the rule\n  'Acked-by',\n  'Cc',\n  'Fixes',\n  'Helped-by',\n  'Refs',\n  'Reviewed-by',\n  'Signed-off-by',\n}\n\nAny number of tokens may be included.\n```\n\n### Examples\n\nThe following are all examples of valid commit messages.\n\nThe commit message will also go through validation with `commitlint` upon issuing `git commit`.\n\n```text\nfeat(player): begin new implementation of input controller\n\nAs per #123 recommendation input contoller is now based on blah.\n\nBasic movement added.\n\nAcked-by: Alice \u003calice@example.com\u003e\nSigned-off-by: Bob \u003cbob@example.com\u003e\nRefs: #123\nRefs: 676104e, a215868\n```\n\n```text\nfix: array parsing issue\n\nFixes: #42\nCc: Z\nReviewed-by: Z\nSigned-off-by: Z\n```\n\n```text\nchore(release): v0.0.1 [skip ci]\n```\n\n## Changelog\n\nOnce you have published at least one proper commit using conventional commits syntax you will be able to generate a changelog.\n\n```bash\ngit cliff --tag 0.0.1\n```\n\nAfter the initial run of git-cliff all subsequent runs should detect the version automatically.\n\n```bash\ngit cliff\n```\n\nA typical workflow should look like the following.\n\n```bash\ngit add -A                      # add all un-indexed and changed files to the commit\ngit commit -S -a -m \"\u003cmessage\u003e\" # add a conventional commit message and sign the commit\ngit cliff                       # generate a new changelog\ngit add CHANGELOG.md            # add the changelog file to the commit\ngit commit --amend --no-edit    # ammend the added file to the previous un-pushed commit\ngit push -u origin develop      # finally, push the commit\n```\n\n## Unity Projects\n\n### Unity Activation\n\nVisit the repository page and navigate to `Actions`. Manually run the `Unity Activation 🔐` action and then download the artifact.\n\nExtract the zip file somewhere accessible.\n\nVisit [license.unity3d.com](https://license.unity3d.com/manual) and upload the `Unity_v20XX.X.XXXX.alf` file, receiving a license file `Unity_v20XX.X.ulf` in return.\n\nNavigate on Github to `Settings \u003e Secrets and variables \u003e Actions`.\n\nCreate the following repository secrets:\n\n* `UNITY_LICENSE` - (Copy the contents of your license file into here)\n* `UNITY_EMAIL` - (Add the email address that you use to login to Unity)\n* `UNITY_PASSWORD` - (Add the password that you use to login to Unity)\n\n## Attribution\n\n* [Commitlint](https://github.com/conventional-changelog/commitlint)\n* [git-cliff](https://github.com/orhun/git-cliff)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyaulabs%2Ftemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkyaulabs%2Ftemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyaulabs%2Ftemplate/lists"}