Skip to content
/ repo-template Public template

Template for quick project creation, for convenient work you can use such tools as: CI/CD, Commitizen, Commtilint, Semantic Release, Husky, CodeQL analysis, Vitest, Pre-commit Hooks, Prettier and much more

License

Notifications You must be signed in to change notification settings

archoleat/repo-template

Repository files navigation

Archoleat Repo Template

CodeQL Specs Commitlint Editorconfig Prettier ESLint Markdown ESM Only

Table of Contents

Archoleat Repo Template is a template repository designed for quickly starting new projects with pre-configured tools and best development practices.

This template includes ready-made solutions for integration with:

  • Git.
  • GitHub.
  • Commitizen.
  • Commitlint.
  • Conventional Commits.
  • Husky & Lint Staged.
  • GitHub Actions.
  • Semantic Release.
  • PNPM.
  • CodeQL.
  • EditorConfig.
  • ESLint.
  • Remark.
  • Prettier.
  • Vitest.
  • TypeScript.
  • Dependabot.

Tip

A good solution for your business!

Now you don't have to worry about unnecessary costs. Everything is already set up and prepared for you!

And also the template is very good for teams, because you can easily standardize projects with this template.

Getting Started

  1. Create a Repository: Use this template to create a new repository on GitHub.

    Since this is a Public Template you can click the button Use this template for a faster and more convenient cloning.

  2. Clone the Repository: Clone your new repository to your local machine.

  3. Start Development: Develop your project, making changes according to your project's needs.

  4. Configure GitHub Actions: Modify GitHub Actions settings to fit your requirements.

    For those unfamiliar with GitHub Actions, our workflows use chain, if you want to add more workflows to this chain, workflows, it won't work, because the chain only supports only three levels, example: workflow A > workflow B > workflow C > workflow D, if you add workflow E to the chain. it won't work!

Features

  • Flexibility: Easily customizable template to adapt to different project types.

  • Git and GitHub Integration: Pre-configured .gitignore, .gitmodules and .gitattributes for efficient work with Git and GitHub.

    • Conventional Commits, Commitlint & Commitizen: If you don't want to think about how to write a commit every time, these plugins will help you.

      It will be especially useful for teams that have an ongoing debate about writing commits.

    • Husky & Lint Staged: Won't let you submit bad code to the repository!

  • Continuous Integration (CI): Built-in CI support using GitHub Actions for automatic linting, testing and building of your code with each change.

    Also suitable for private repositories! GitHub Actions use cache, timeout-minutes, path filters and workflow run to reduce the execution time, which means it will significantly reduce your costs!

    • Security: Included CodeQL workflow for detecting and preventing potential vulnerabilities in your code.

    • Linters: Help you maintain a consistent code writing style and find errors.

    • Specs: Automated testing will help you focus on writing better code!

    • Semantic Release: For those who are tired of writing changelogs and thinking about what the next version number will be.

      If you have Branch and Tag Protection rules configured, please read this article.

  • TypeScript: Pre-configured TypeScript setup for improved reliability and development convenience.

  • Bots:

    • Dependabot: No more wasting time updating dependencies!

Scripts

  • init: Installs dependencies and Husky.

  • spec: Runs Vitest and the tests in the specs/ folder.

    Also runs using the spec.yaml workflow.

  • spec:coverage: Runs Vitest with Coverage-V8.

  • release: Runs Semantic Release.

  • lint:editorconfig: Runs Editorconfig Checker and checks all files in the project.

    Also runs with the editorconfig.yaml workflow.

  • lint:formatting: Runs Prettier with the --check flag for all files.

    Runs with the prettier.yaml

    Also run with a pre-commit hook.

  • lint:md: Runs Remark with the --quiet flag and checks all Markdown files.

    Also runs with the markdown.yaml workflow.

  • lint:ts: Runs ESLint with the flag --fix for all TypeScript files.

    Runs with the eslint.yaml workflow.

    Also run with a pre-commit hook.

  • prettify: Runs Prettier with the --write flag for all files.

  • commit: Runs Commitlint to create commits according to Conventional Commits standards.

Workflows

Prettier

Warning

You need to install the Prettier extension for it to work.

You can see all necessary extensions for Visual Studio Code in .vscode.

Tip

If you want to change the rules in prettier.config.js you can do it in .editorconfig, prettier will automatically pick up the rules from Editorconfig.

Note

All Markdown and .*ignore files ignored.

Change of Maintainer

The following files use the names Archoleat and nikkeyl by default:

Before using this template, replace this name with your name, name of your team or the name of your organization.

Caution

Don't forget to change your license!

Contributing

Please read CONTRIBUTING to start contributing.

License

This project is licensed under the MIT license.