Socket
Book a DemoInstallSign in
Socket

@envsa/repo-config

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@envsa/repo-config

Repository configuration and GitHub workflows for @envsa/shared-config.

latest
Source
npmnpm
Version
9.0.3
Version published
Maintainers
1
Created
Source

@envsa/repo-config

NPM Package @envsa/repo-config License: MIT

Repository configuration and GitHub workflows for @envsa/shared-config.

Overview

It's a pnpm-flavored shared config with some essential files for a fresh repo, plus automated linting for things like copyright notice dates, all accessible via a bundled command like tool named envsa-repo.

This includes the following:

  • .npmrc with hoisting patterns for shared-config tool access
  • .gitignore with typical patterns
  • .editorconfig for basic code style settings
  • .vscode extension recommendations (additional settings and recommendations come from other shared-config packages)
  • .github folder with workflows:
    • github-release.yml Automates turning turning vX.X.X tags on main into GitHub releases with changelogs
    • sync-metadata.yml Populates GitHub repo metadata from package.json

In order to work around some hoisting issues related to plugin resolution in the other @envsa/shared-config packages, it's critical that it is applied before any other @envsa/shared-config packages are installed.

[!IMPORTANT]

You can use this package on its own, but it's recommended to use @envsa/shared-config instead for a single-dependency and single-package approach to linting and fixing your project.

This package is included as a dependency in @envsa/shared-config, which also automatically invokes the command line functionality in this package via its envsa command

Setup

Run-once approach

If you just need to set up your .npmrc in anticipation of installing another shared config, you can run the script via dlx to copy the .npmrc to your home folder:

pnpm dlx @envsa/repo-config init

Installation approach

Optionally, you can install the package if you think you'll ever want to regenerate the repo config files.

  • Add the package:

    pnpm add -D @envsa/repo-config
    
  • If / when you need to regenerate the repo config files, you can run the bundled script:

    pnpm exec envsa-repo init
    

GitHub Configuration

There are two options for authenticating the release workflow action:

GitHub Token

  • Ensure that read / write permissions are set for actions on the repository under Settings → Actions → General → Workflow permissions.

Personal Access token

If you want releases to come from your account instead of github_actions, then:

  • Create a fine-grained personal access token in your GitHub account with the following permissions:

    PermissionAccess
    AdministrationRead and write
    ContentsRead and write
    MetadataRead-only
  • Add the token as a secret to your new GitHub repository.

    You can do this through the GitHub website under the Settings → Secrets and variables → Actions page under the key PERSONAL_ACCESS_TOKEN.

    Alternately, you can do this locally with the GitHub CLI and a credential manager like 1Password CLI:

    gh secret set PERSONAL_ACCESS_TOKEN --app actions --body $(op read 'op://Personal/GitHub/PERSONAL_ACCESS_TOKEN_ACTIONS')
    

GitHub Actions

Note: Action dependencies have been forked.

OriginalForkModifications
bullrich/generate-release-changelogkitschpatrol/github-action-release-changelog
softprops/action-gh-releasekitschpatrol/github-action-release
kbrashears5/github-action-repo-synckitschpatrol/github-action-repo-sync

Usage

CLI

Command: envsa-repo

Envsa's repository-related shared configuration tools.

This section lists top-level commands for envsa-repo.

Usage:

envsa-repo <command>
CommandDescription
initInitialize by copying starter config files to your project root.
lintCheck the repo for common issues. Package-scoped. In a monorepo, it will also run in all packages below the current working directory.
fixFix common issues like outdated copyright years in license files. Package-scoped. In a monorepo, it will also run in all packages below the current working directory.
OptionDescriptionType
--help
-h
Show helpboolean
--version
-v
Show version numberboolean

See the sections below for more information on each subcommand.

Subcommand: envsa-repo init

Initialize by copying starter config files to your project root.

Usage:

envsa-repo init
OptionDescriptionType
--help
-h
Show helpboolean
--version
-v
Show version numberboolean

Subcommand: envsa-repo lint

Check the repo for common issues. Package-scoped. In a monorepo, it will also run in all packages below the current working directory.

Usage:

envsa-repo lint
OptionDescriptionType
--help
-h
Show helpboolean
--version
-v
Show version numberboolean

Subcommand: envsa-repo fix

Fix common issues like outdated copyright years in license files. Package-scoped. In a monorepo, it will also run in all packages below the current working directory.

Usage:

envsa-repo fix
OptionDescriptionType
--help
-h
Show helpboolean
--version
-v
Show version numberboolean

Credits

Eric Mika is the author of the original @kitschpatrol/shared-config project on which this is based.

License

MIT © Liam Rella

Keywords

shared-config

FAQs

Package last updated on 07 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts