
Security News
Re-Enabled GitHub Actions Expose Thousands of Repositories to Mini Shai-Hulud
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.
@testgorilla/tgo-linting
Advanced tools
Linting rules and code quality standards for TestGorilla projects.
npm install @testgorilla/tgo-linting @angular-eslint/template-parser --save-dev
This package supports both modern flat config (ESLint 9+) and legacy config formats (ESLint 8.x and below).
Recommended approach:
// eslint.config.js
import tgoPlugin from '@testgorilla/tgo-linting';
export default [
tgoPlugin.configs.recommended,
// Your other configurations
];
Manual configuration:
// eslint.config.js
import tgoPlugin from '@testgorilla/tgo-linting';
export default [
{
plugins: {
tgo: tgoPlugin,
},
rules: {
'tgo/require-data-testid': 'warn', // Example rule configuration
},
},
];
Using the legacy preset:
// .eslintrc.js
const { legacy } = require('@testgorilla/tgo-linting');
module.exports = {
// Your base config
extends: [
// Your other extends
],
plugins: ['tgo'],
overrides: [
{
files: ['*.html'],
parser: '@angular-eslint/template-parser',
...legacy,
},
],
};
Manual configuration:
// .eslintrc.js
module.exports = {
plugins: ['tgo'],
extends: [
// Your other extends
],
overrides: [
{
files: ['*.html'],
parser: '@angular-eslint/template-parser',
rules: {
'tgo/require-data-testid': 'warn', // Example rule configuration
},
},
],
};
tgo/require-data-testid rule only works with HTML/Angular templates. You must configure @angular-eslint/template-parser for .html files.@angular-eslint, the template parser is usually already configured for HTML files in your overrides.| Rule | Description |
|---|---|
tgo/require-data-testid | Ensures specific HTML elements have a data-testid attribute for E2E testing |
Detailed documentation for each rule, including examples and configuration options, can be found alongside the rule implementation:
To add a new ESLint rule to this package:
Create the rule file in src/rules/:
// src/rules/your-rule-name.ts
import { Rule } from 'eslint'
const rule: Rule.RuleModule = {
meta: {
type: 'problem', // or 'suggestion' or 'layout'
docs: {
description: 'Your rule description',
category: 'Best Practices',
recommended: false,
},
schema: [], // JSON schema for rule options
messages: {
// Define error messages here
},
},
create(context) {
// Your rule implementation
return {
// AST node visitors
}
},
}
export default rule
Add tests in src/rules/your-rule-name.spec.ts:
import { RuleTester } from '@typescript-eslint/rule-tester'
import rule from './your-rule-name'
const ruleTester = new RuleTester({
parser: '@angular-eslint/template-parser',
})
ruleTester.run('your-rule-name', rule, {
valid: [
// Test cases that should pass
],
invalid: [
// Test cases that should fail
],
})
Export the rule in src/rules/index.ts:
import yourRuleName from './your-rule-name'
export const rules = {
'require-data-testid': requireDataTestId,
'your-rule-name': yourRuleName,
}
Add to recommended config (optional) in src/configs/recommended.ts:
rules: {
'tgo/require-data-testid': 'warn',
'tgo/your-rule-name': 'error', // or 'warn'
}
Document the rule in src/rules/your-rule-name.md:
Update this README by adding the new rule to the rules table above
Test your changes:
nx test tgo-linting
nx build tgo-linting
nx build tgo-linting
nx test tgo-linting
nx lint tgo-linting
PROPRIETARY - © TestGorilla
FAQs
Linting rules and code quality standards for TestGorilla projects
The npm package @testgorilla/tgo-linting receives a total of 0 weekly downloads. As such, @testgorilla/tgo-linting popularity was classified as not popular.
We found that @testgorilla/tgo-linting demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.

Research
/Security News
The compromise affects MemTensor's MemOS, an open source memory framework for large language models (LLMs) and AI agents. Both npm package @memtensor/memos-cloud-openclaw-plugin and the PyPI package MemoryOS are compromised. They drop cross-platform Go binaries that exfiltrate developer secrets.