linear-multi-env-setup
Facilitates the configuration of Linear across multiple environments, enhancing deployment management and API key handling.
Install this skill
Security score
The linear-multi-env-setup skill was audited on Feb 25, 2026 and we found 54 security issues across 4 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 100 | const path = `secret/data/linear/${environment}`; |
Template literal with variable interpolation in command context
| 119 | SecretId: `linear/${environment}`, |
Template literal with variable interpolation in command context
| 136 | const secretName = `linear-${environment}`; |
Template literal with variable interpolation in command context
| 139 | name: `projects/${projectId}/secrets/${secretName}/versions/latest`, |
Template literal with variable interpolation in command context
| 227 | console.log(`Archived issue ${issueId} (production safe mode)`); |
Template literal with variable interpolation in command context
| 231 | console.log(`Deleted issue ${issueId}`); |
Template literal with variable interpolation in command context
| 271 | ```yaml |
Template literal with variable interpolation in command context
| 312 | console.log(`Validating ${env} environment...`); |
Template literal with variable interpolation in command context
| 317 | console.log(` API Key: Valid (${viewer.email})`); |
Template literal with variable interpolation in command context
| 322 | console.log(` Default Team (${config.defaultTeamKey}): ${hasDefaultTeam ? "Found" : "NOT FOUND"}`); |
Template literal with variable interpolation in command context
| 325 | console.log(` Webhook Secret: ${config.webhookSecret ? "Set" : "NOT SET"}`); |
Webhook reference - potential data exfiltration
| 33 | webhookSecret: string; |
Webhook reference - potential data exfiltration
| 37 | webhooksEnabled: boolean; |
Webhook reference - potential data exfiltration
| 51 | webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_DEV!, |
Webhook reference - potential data exfiltration
| 55 | webhooksEnabled: false, // Use polling in dev |
Webhook reference - potential data exfiltration
| 61 | webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_STAGING!, |
Webhook reference - potential data exfiltration
| 65 | webhooksEnabled: true, |
Webhook reference - potential data exfiltration
| 71 | webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_PROD!, |
Webhook reference - potential data exfiltration
| 75 | webhooksEnabled: true, |
Webhook reference - potential data exfiltration
| 105 | webhookSecret: data.data.webhook_secret, |
Webhook reference - potential data exfiltration
| 236 | ### Step 5: Environment-Specific Webhook Configuration |
Webhook reference - potential data exfiltration
| 238 | // config/webhooks.ts |
Webhook reference - potential data exfiltration
| 239 | interface WebhookConfig { |
Webhook reference - potential data exfiltration
| 245 | const webhookConfigs: Record<string, WebhookConfig> = { |
Webhook reference - potential data exfiltration
| 247 | url: "http://localhost:3000/api/webhooks/linear", |
Webhook reference - potential data exfiltration
| 252 | url: "https://staging.yourapp.com/api/webhooks/linear", |
Webhook reference - potential data exfiltration
| 257 | url: "https://yourapp.com/api/webhooks/linear", |
Webhook reference - potential data exfiltration
| 263 | export function getWebhookConfig(): WebhookConfig { |
Webhook reference - potential data exfiltration
| 265 | return webhookConfigs[env]; |
Webhook reference - potential data exfiltration
| 302 | LINEAR_WEBHOOK_SECRET: ${{ secrets.LINEAR_WEBHOOK_SECRET }} |
Webhook reference - potential data exfiltration
| 324 | // Check webhook secret is set |
Webhook reference - potential data exfiltration
| 325 | console.log(` Webhook Secret: ${config.webhookSecret ? "Set" : "NOT SET"}`); |
Access to .env file
| 50 | apiKey: process.env.LINEAR_API_KEY_DEV!, |
Access to .env file
| 51 | webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_DEV!, |
Access to .env file
| 60 | apiKey: process.env.LINEAR_API_KEY_STAGING!, |
Access to .env file
| 61 | webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_STAGING!, |
Access to .env file
| 70 | apiKey: process.env.LINEAR_API_KEY_PROD!, |
Access to .env file
| 71 | webhookSecret: process.env.LINEAR_WEBHOOK_SECRET_PROD!, |
Access to .env file
| 82 | const env = process.env.NODE_ENV || "development"; |
Access to .env file
| 95 | endpoint: process.env.VAULT_ADDR, |
Access to .env file
| 96 | token: process.env.VAULT_TOKEN, |
Access to .env file
| 135 | const projectId = process.env.GCP_PROJECT_ID; |
Access to .env file
| 161 | if (process.env.NODE_ENV === "production") { |
Access to .env file
| 186 | if (process.env.NODE_ENV !== "production") { |
Access to .env file
| 192 | if (process.env.NODE_ENV === "production") { |
Access to .env file
| 222 | const env = process.env.NODE_ENV; |
Access to .env file
| 264 | const env = process.env.NODE_ENV || "development"; |
Access to .env file
| 310 | const env = process.env.NODE_ENV; |
External URL reference
| 247 | url: "http://localhost:3000/api/webhooks/linear", |
External URL reference
| 252 | url: "https://staging.yourapp.com/api/webhooks/linear", |
External URL reference
| 257 | url: "https://yourapp.com/api/webhooks/linear", |
External URL reference
| 342 | - [Linear API Authentication](https://developers.linear.app/docs/graphql/authentication) |
External URL reference
| 343 | - [12-Factor App Config](https://12factor.net/config) |
External URL reference
| 344 | - [HashiCorp Vault](https://www.vaultproject.io/docs) |