open-index/open-npm huggingface dataset:
npm package: @nx-extend/actions-run-many
Description: **GitHub action to run many affected Nx projects based of tags**.
Latest version: 1.3.1

# run-many action

**GitHub action to run many affected Nx projects based of tags**.

> This GitHub action can be used to run your NX workspace based on tags, this makes it easy to deploy
> the correct projects or completely disable ones that are not ready to be deployed yet.

## Example

```yaml
name: Check PR

# Run on all pull requests
on: [ pull_request ]

env:
  DEPENDENCIES_CACHE: cache-node-modules

permissions:
  contents: 'read'
  id-token: 'write'

jobs:
  setup:
    ...

  distributed-task:
    runs-on: ubuntu-latest
    needs: [ setup ]
    strategy:
      fail-fast: false
      matrix:
        index: [ 1, 2 ]
        target: [ 'build', 'test', 'lint' ]
    env:
      count: 2
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      ...

      - name: nx affected:${{ matrix.target }}
        uses: tripss/nx-extend/actions/run-many@github-actions
        with:
          target: ${{ matrix.target }}
          index: ${{ matrix.index }}
          count: ${{ env.count }}


```
npm package: @nx-extend/changelog-notify
Description: <a href="https://www.npmjs.com/package/@nx-extend/changelog-notify" rel="nofollow">   <img src="https://badgen.net/npm/v/@nx-extend/changelog-notify" alt="@nx-extend/changelog-notify NPM package"> </a>
Latest version: 10.1.1

# @nx-extend/changelog-notify

<a href="https://www.npmjs.com/package/@nx-extend/changelog-notify" rel="nofollow">
  <img src="https://badgen.net/npm/v/@nx-extend/changelog-notify" alt="@nx-extend/changelog-notify NPM package">
</a>

**Nx plugin to send notifications about generated changelogs to various platforms**.

## Features

- Send changelog notifications to Google Chat
- Integration with [@jscutlery/semver](https://github.com/jscutlery/semver)
- Automatic notification on version releases
- Configurable as post-target for version bumps

## Setup

### Prerequisites

- [@jscutlery/semver](https://github.com/jscutlery/semver) configured in your workspace

### Install

```sh
npm install -D @nx-extend/changelog-notify
```

## Usage

### Google Chat Notifications

Add the `send-release-to-chat` target to your project's `project.json` and configure it as a post-target for versioning:

```json
{
  "version": {
    "executor": "@jscutlery/semver:version",
    "options": {
      ...options
    },
    "configurations": {
      "production": {
        "postTargets": [
          "<this project name>:send-release-to-chat"
        ]
      }
    }
  },
  "send-release-to-chat": {
    "executor": "@nx-extend/changelog-notify:google-chat",
    "options": {
      "tag": "${tag}",
      "notes": "${notes}"
    }
  }
}
```

## Available Options

| Name        | Type     | Default | Description                                |
|-------------|----------|---------|--------------------------------------------|
| **`tag`**   | `string` | -       | Version tag from semver (use `${tag}`)     |
| **`notes`** | `string` | -       | Release notes from semver (use `${notes}`) |

## How It Works

1. When you run the version command with the production configuration, it will bump your version
2. After the version is bumped, the `postTargets` are executed
3. The `send-release-to-chat` target sends the release information to your configured Google Chat webhook

## Environment Variables

Make sure to set your Google Chat webhook URL in the appropriate environment variable or configuration file as required by your project setup.
npm package: @nx-extend/core
Description: <a href="https://www.npmjs.com/package/@nx-extend/core" rel="nofollow">   <img src="https://badgen.net/npm/v/@nx-extend/core" alt="@nx-extend/core NPM package"> </a>
Latest version: 10.1.0

# @nx-extend/core

<a href="https://www.npmjs.com/package/@nx-extend/core" rel="nofollow">
  <img src="https://badgen.net/npm/v/@nx-extend/core" alt="@nx-extend/core NPM package">
</a>

**Internal utility package for nx-extend plugins.**

This package contains shared utilities and helper functions used across all @nx-extend plugins. It is not intended for direct installation or use by end users.

## Usage

This package is automatically installed as a dependency when you install any @nx-extend plugin. You do not need to install it separately.
npm package: @nx-extend/e2e-runner
Description: <a href="https://www.npmjs.com/package/@nx-extend/e2e-runner" rel="nofollow">   <img src="https://badgen.net/npm/v/@nx-extend/e2e-runner" alt="@nx-extend/e2e-runner NPM package"> </a>
Latest version: 13.1.1

# @nx-extend/e2e-runner

<a href="https://www.npmjs.com/package/@nx-extend/e2e-runner" rel="nofollow">
  <img src="https://badgen.net/npm/v/@nx-extend/e2e-runner" alt="@nx-extend/e2e-runner NPM package">
</a>

**Nx plugin to start your API and then run the Cypress/Playwright E2E tests**.

## Features

- Start multiple targets before running tests
- Health check URLs to ensure targets are ready
- Support for Cypress, Playwright, and custom runners
- Configurable retry attempts for health checks
- Optional log forwarding from targets
- Reuse existing servers option

## Setup

### Install

```sh
npm install -D @nx-extend/e2e-runner
nx g @nx-extend/e2e-runner:add
```

## Usage

### Available Options

All options of the specified runner are available:
- `@nrwl/cypress:cypress` options (if `runner = cypress`)
- `@nx-extend/playwright:test` options (if `runner = playwright`)
- `@nx/playwright` options (if `runner = @nx/playwright`)
- `@nx/workspace:run-commands` options (if `runner = run-commands`)

### Target Configuration

The `targets` option is used to define targets that should be started before running the tests. Each target can be configured with the following options:

```ts
{
  target: string // The target to run.
  checkUrl?: string // The url to check if the target is "live", a target is live if this url returns a status-code in the 200 range.
  checkMaxTries?: number // The amount of times the `checkUrl` is tried before failing, there is a two second delay between tries.
  env?: { [key: string]: string } // Extra parameters provided to the target on startup.
  reuseExistingServer?: boolean // Set to true to allow using a previously started target.
  rejectUnauthorized?: boolean // Set to false to allow the use of self-signed certificates in your target.
  logging?: boolean // Set to true to forwards the logs of the target, set to false to hide the logs of the target. When undefined, the logs are only forwarded with the `--verbose` flag.
}
```

## Example Configuration

```json
{
  "e2e": {
    "executor": "@nx-extend/e2e-runner:run",
    "options": {
      "runner": "playwright",
      "targets": [
        {
          "target": "app:serve",
          "checkUrl": "http://localhost:4200/",
          "checkMaxTries": 50,
          "rejectUnauthorized": true
        },
        {
          "target": "api:serve",
          "checkUrl": "http://localhost:9000/health",
          "checkMaxTries": 50,
          "logging": false
        }
      ]
    }
  }
}
```

## How It Works

1. The executor starts all configured targets in parallel
2. For each target with a `checkUrl`, it performs health checks
3. Once all targets are healthy (or max tries reached), the E2E tests run
4. After tests complete, all started targets are terminated
npm package: @nx-extend/firebase-hosting
Description: <a href="https://www.npmjs.com/package/@nx-extend/firebase-hosting" rel="nofollow">   <img src="https://badgen.net/npm/v/@nx-extend/firebase-hosting" alt="@nx-extend/firebase-hosting NPM package"> </a>
Latest version: 10.1.1

# @nx-extend/firebase-hosting

<a href="https://www.npmjs.com/package/@nx-extend/firebase-hosting" rel="nofollow">
  <img src="https://badgen.net/npm/v/@nx-extend/firebase-hosting" alt="@nx-extend/firebase-hosting NPM package">
</a>

**Nx plugin to deploy your app to [Firebase Hosting](https://firebase.google.com/products/hosting)**.

## Features

- Deploy static sites to Firebase Hosting
- Automatic integration with Firebase configuration
- Multi-site hosting support
- Seamless integration with Nx build targets

## Setup

### Install

```sh
npm install -D @nx-extend/firebase-hosting
nx g @nx-extend/firebase-hosting:add
```

This will add the following to the target:

```json
{
  "deploy": {
    "executor": "@nx-extend/firebase-hosting:deploy",
    "options": {
      "site": "<site provided in setup>"
    }
  }
}
```

And create a `.firebase.json` file if it does not exist already. If it exists, it will add this target to the hosting section:

```json
{
  "hosting": [
    {
      "target": "<provided site name>",
      "public": "<target dist directory>",
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ]
    }
  ]
}
```

## Usage

### Deploy

Deploy your application to Firebase Hosting:

```sh
nx deploy <project-name>
```

#### Available Options

| Name               | Type     | Default | Description                                                                                  |
|--------------------|----------|---------|----------------------------------------------------------------------------------------------|
| **`site`**         | `string` | -       | Specify the site to deploy from the `.firebase.json`                                         |
| **`project`**      | `string` | -       | Firebase Project to deploy to                                                                |
| **`identifier`**   | `string` | -       | Name of the hosting project in Firebase (if not defined `--site` is used by the Firebase CLI) |
npm package: @nx-extend/gcp-deployment-manager
Description: <a href="https://www.npmjs.com/package/@nx-extend/gcp-deployment-manager" rel="nofollow">   <img src="https://badgen.net/npm/v/@nx-extend/gcp-deployment-manager" alt="@nx-extend/gcp-deployment-manager NPM package"> </a>
Latest version: 12.1.1

# @nx-extend/gcp-deployment-manager

<a href="https://www.npmjs.com/package/@nx-extend/gcp-deployment-manager" rel="nofollow">
  <img src="https://badgen.net/npm/v/@nx-extend/gcp-deployment-manager" alt="@nx-extend/gcp-deployment-manager NPM package">
</a>

**Nx plugin for deploying your Google resources with [Deployment Manager](https://cloud.google.com/deployment-manager/docs)**.

## Features

- Deploy Google Cloud resources using configuration files
- Infrastructure as code with YAML or Python templates
- Manage resource lifecycle
- Integration with Nx workspace

## Setup

### Install

```sh
npm install -D @nx-extend/gcp-deployment-manager
nx g @nx-extend/gcp-deployment-manager:init
```

## Usage

### Deploy

Deploy your resources to Google Cloud:

```sh
nx deploy <project-name>
```

#### Available Options

| Name            | Type     | Default | Description                              |
|-----------------|----------|---------|------------------------------------------|
| **`project`**   | `string` | -       | GCP project to deploy to                 |
| **`file`**      | `string` | -       | File from source to create               |
| **`name`**      | `string` | -       | Name of the resource inside Google Cloud |
npm package: @nx-extend/gcp-secrets
Description: <a href="https://www.npmjs.com/package/@nx-extend/gcp-secrets" rel="nofollow">   <img src="https://badgen.net/npm/v/@nx-extend/gcp-secrets" alt="@nx-extend/gcp-secrets NPM package"> </a>
Latest version: 13.1.1

# @nx-extend/gcp-secrets

<a href="https://www.npmjs.com/package/@nx-extend/gcp-secrets" rel="nofollow">
  <img src="https://badgen.net/npm/v/@nx-extend/gcp-secrets" alt="@nx-extend/gcp-secrets NPM package">
</a>

**Nx plugin to deploy your secrets to [Secret Manager](https://cloud.google.com/secret-manager)**.

## Features

- Encrypt and decrypt secrets locally
- Deploy secrets to Google Cloud Secret Manager
- Label management for secrets
- Configurable update behavior (destroy, delete, or disable)
- Integration with Nx workspace

## Setup

### Prerequisites

- `GCP_SECRETS_ENCRYPTION_KEY` environment variable set with your encryption key

### Install

```sh
npm install -D @nx-extend/gcp-secrets
nx g @nx-extend/gcp-secrets:init
```

## Usage

Add an environment variable named `GCP_SECRETS_ENCRYPTION_KEY` that holds your key to encrypt and decrypt your secrets:

```sh
export GCP_SECRETS_ENCRYPTION_KEY="your-encryption-key"
```

### Decrypt

Decrypt secrets locally:

```sh
nx decrypt <project-name>
```

#### Available Options

| Name           | Type     | Default | Description                            |
|----------------|----------|---------|----------------------------------------|
| **`secret`**   | `string` | -       | Only decrypt the secret with this name |

### Deploy

Deploy secrets to Google Cloud Secret Manager:

```sh
nx deploy <project-name>
```

#### Available Options

| Name            | Type     | Default | Description                            |
|-----------------|----------|---------|----------------------------------------|
| **`project`**   | `string` | -       | GCP project to deploy to               |
| **`secret`**    | `string` | -       | Only deploy the secret with this name  |

### Encrypt

Encrypt secrets locally:

```sh
nx encrypt <project-name>
```

#### Available Options

| Name           | Type     | Default | Description                            |
|----------------|----------|---------|----------------------------------------|
| **`secret`**   | `string` | -       | Only encrypt the secret with this name |

## Meta Data Explained

When configuring secrets, you can use the following metadata attributes:

| Attribute        | Default   | Description                                                 |
|------------------|-----------|-------------------------------------------------------------|
| **`status`**     | -         | Status of the file: `encrypted` or `decrypted`              |
| **`labels`**     | `[]`      | Array of labels to add to the secrets                       |
| **`onUpdateBehavior`** | `destroy` | What to do when updating: `destroy`, `delete`, or `disable` |
npm package: @nx-extend/gcp-storage
Description: <a href="https://www.npmjs.com/package/@nx-extend/gcp-storage" rel="nofollow">   <img src="https://badgen.net/npm/v/@nx-extend/gcp-storage" alt="@nx-extend/gcp-storage NPM package"> </a>
Latest version: 11.1.1

# @nx-extend/gcp-storage

<a href="https://www.npmjs.com/package/@nx-extend/gcp-storage" rel="nofollow">
  <img src="https://badgen.net/npm/v/@nx-extend/gcp-storage" alt="@nx-extend/gcp-storage NPM package">
</a>

**Nx plugin to deploy your app to [Cloud Storage](https://cloud.google.com/storage)**.

## Features

- Upload files to Google Cloud Storage buckets
- Optional gzip compression for uploaded files
- Configurable gzip extensions
- Ideal for static site hosting

## Setup

### Install

```sh
npm install -D @nx-extend/gcp-storage
```

## Usage

### Upload

Upload files to a Cloud Storage bucket:

```sh
nx upload <project-name>
```

#### Available Options

| Name               | Type      | Default | Description                                 |
|--------------------|-----------|---------|---------------------------------------------|
| **`bucket`**       | `string`  | -       | What bucket to upload to                    |
| **`directory`**    | `string`  | -       | Directory to upload                         |
| **`gzip`**         | `boolean` | `false` | Use gzip when uploading                     |
| **`gzipExtensions`** | `string` | -       | File extensions to gzip (comma-separated)   |

## Examples

### Basic Upload

```json
{
  "upload": {
    "executor": "@nx-extend/gcp-storage:upload",
    "options": {
      "bucket": "my-static-site",
      "directory": "dist/apps/my-app"
    }
  }
}
```

### Upload with Gzip Compression

```json
{
  "upload": {
    "executor": "@nx-extend/gcp-storage:upload",
    "options": {
      "bucket": "my-static-site",
      "directory": "dist/apps/my-app",
      "gzip": true,
      "gzipExtensions": "html,css,js,json,svg"
    }
  }
}
```