Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: Bug Report
about: Report a bug or unexpected behavior
title: '[Bug]: '
labels: bug
assignees: ''
---

## Bug Description

<!-- A clear and concise description of what the bug is -->

## Steps to Reproduce

<!-- Steps to reproduce the behavior -->

1. Run command: `patternfly-cli ...` or `pf ...`
2.
3.
4. See error

## Expected Behavior

<!-- A clear and concise description of what you expected to happen -->

## Actual Behavior

<!-- What actually happened -->

## Error Output

<!-- If applicable, paste the complete error message or stack trace -->

```
Paste error output here
```

## Environment

- **OS**: <!-- e.g., macOS 14.2, Ubuntu 22.04, Windows 11 -->
- **Node version**: <!-- run `node --version` -->
- **npm version**: <!-- run `npm --version` -->
- **PatternFly CLI version**: <!-- run `patternfly-cli --version` or `pf --version` -->
- **Shell**: <!-- e.g., bash, zsh, PowerShell -->

## Additional Context

<!-- Add any other context about the problem here, such as screenshots, logs, or configuration files -->

## Possible Solution

<!-- Optional: suggest a fix or reason for the bug -->
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: PatternFly Documentation
url: https://www.patternfly.org/
about: Visit the official PatternFly documentation
- name: PatternFly Community
url: https://github.com/patternfly
about: Explore other PatternFly projects and resources
44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: Feature Request
about: Suggest a new feature or enhancement
title: '[Feature]: '
labels: enhancement
assignees: ''
---

## Feature Description

<!-- A clear and concise description of the feature you'd like to see -->

## Problem Statement

<!-- Describe the problem this feature would solve. Ex: I'm always frustrated when... -->

## Proposed Solution

<!-- Describe how you envision this feature working -->

## Example Usage

<!-- Show how users would interact with this feature -->

```bash
# Example command or usage
pf new-command --option value
```

## Alternatives Considered

<!-- Describe any alternative solutions or features you've considered -->

## Additional Context

<!-- Add any other context, screenshots, or examples about the feature request here -->

## Benefits

<!-- Explain how this feature would benefit PatternFly CLI users -->

-
-
-
59 changes: 59 additions & 0 deletions .github/LINTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Linting Guide

This project uses multiple linters to maintain code and documentation quality.

## Available Linters

### ESLint (JavaScript/TypeScript)

Lints TypeScript source code in the `src/` directory.

```bash
npm run lint:js # Check for issues
npm run lint:js:fix # Auto-fix issues
```

### Markdownlint (Documentation)

Validates all markdown files (`.md`) for consistency and best practices.

```bash
npm run lint:md # Check markdown files
npm run lint:md:fix # Auto-fix markdown issues
```

Configuration: [.markdownlint.json](../.markdownlint.json)

### Actionlint (GitHub Actions)

Validates GitHub Actions workflow files automatically on pull requests and pushes to main.

This runs automatically in CI when workflow files are modified.

## Run All Linters

```bash
npm run lint # Run all linters
npm run lint:fix # Auto-fix all issues
```

## CI/CD Integration

- **Lint workflow** (`.github/workflows/lint.yml`) - Runs all linters after successful build
- **Markdownlint workflow** (`.github/workflows/markdownlint.yml`) - Runs on markdown file changes
- **Actionlint workflow** (`.github/workflows/actionlint.yml`) - Runs on workflow file changes

## Configuration Files

- [.eslintrc](../.eslintrc) - ESLint configuration (if exists)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So a couple of things.

  1. wrong eslint config... [eslint.config.js](../eslint.config.js) and well, it exists =)

  2. I've never seen a LINTING.md underneath a .github directory in the wild, not saying it isn't a thing, but if "agentready" is recommending this I'd say maybe we should consider a rethink since it's non-standard something. Plus a similar path could be achieved with an old skool CONTRIBUTING.md maybe even something like a DEVELOPMENT.md. I also couldn't find LINTING.md in any documentation searches ... its unique.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would also add in that if we're just trying to bump a score on the tool the score comes across as meaningless we'll only ever attempt to hit a made up metric thats constantly evolving.

- [.markdownlint.json](../.markdownlint.json) - Markdownlint rules
- [.markdownlintignore](../.markdownlintignore) - Files to exclude from markdown linting

## Ignored Paths

The following are automatically ignored by linters:

- `node_modules/` - Dependencies
- `dist/` - Build output
- `.agentready/` - Agent reports
- `CHANGELOG.md` - Auto-generated by semantic-release
64 changes: 64 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## Description

<!-- Provide a brief description of the changes in this PR -->

## Type of Change

<!-- Mark the relevant option with an "x" -->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactoring (no functional changes)
- [ ] Dependency update
- [ ] Other (please describe):

## Related Issues

<!-- Link to related issues using #issue-number -->

Fixes #
Relates to #

## Changes Made

<!-- List the key changes made in this PR -->

-
-
-

## Testing

<!-- Describe the tests you ran and how to reproduce them -->

- [ ] Existing tests pass (`npm test`)
- [ ] Added new tests for changes
- [ ] Manually tested locally (`npm run build && npm install -g`)
- [ ] Linting passes (`npm run lint`)
Comment on lines +36 to +39
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Complete the example install command.

npm install -g is incomplete as written and can be copied into a PR without working. If you want to show a global install check, use a concrete package path or replace it with a neutral placeholder.

Possible fix
-- [ ] Manually tested locally (`npm run build && npm install -g`)
+- [ ] Manually tested locally (`npm run build && npm install -g .`)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [ ] Existing tests pass (`npm test`)
- [ ] Added new tests for changes
- [ ] Manually tested locally (`npm run build && npm install -g`)
- [ ] Linting passes (`npm run lint`)
- [ ] Existing tests pass (`npm test`)
- [ ] Added new tests for changes
- [ ] Manually tested locally (`npm run build && npm install -g .`)
- [ ] Linting passes (`npm run lint`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/pull_request_template.md around lines 36 - 39, Replace the
incomplete checklist entry "- [ ] Manually tested locally (`npm run build && npm
install -g`)" with a concrete or neutral placeholder global install command; for
example change it to "- [ ] Manually tested locally (`npm run build && npm
install -g <package-name>`)” or "- [ ] Manually tested locally (`npm run build
&& npm install -g .`)" so the instruction is copy-pasteable and unambiguous.


### Test Instructions

<!-- Provide step-by-step instructions to test these changes -->

1.
2.
3.

## Checklist

- [ ] My code follows the code style of this project
- [ ] I have added/updated tests as appropriate
- [ ] I have updated the documentation (if applicable)
- [ ] My commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/) specification
- [ ] All imports use `.js` extensions (ESM requirement)
- [ ] TypeScript compilation succeeds (`npm run build`)

## Screenshots (if applicable)

<!-- Add screenshots to help explain your changes -->

## Additional Notes

<!-- Any additional information that reviewers should know -->
28 changes: 28 additions & 0 deletions .github/workflows/actionlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Actionlint

on:
pull_request:
paths:
- '.github/workflows/*.yml'
- '.github/workflows/*.yaml'
push:
branches:
- main
paths:
- '.github/workflows/*.yml'
- '.github/workflows/*.yaml'

jobs:
actionlint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Run actionlint
uses: reviewdog/action-actionlint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
filter_mode: nofilter
fail_on_error: true
29 changes: 29 additions & 0 deletions .github/workflows/markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Markdownlint

on:
pull_request:
paths:
- '**.md'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Debating on this **.md vs **/*.md? Might need to confirm if you ever decide to drop Markdown underneath a directory

push:
branches:
- main
paths:
- '**.md'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same **.md vs **/*.md note


jobs:
markdownlint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: npm ci

- name: Run markdownlint
run: npm run lint:md
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# AI analysis
.agentready

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you're having issues with the .DS_Store you could consider adding in a

# os
.DS_Store

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

Expand Down
19 changes: 19 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"default": true,
"MD003": {
"style": "atx"
},
"MD007": {
"indent": 2
},
"MD013": {
"line_length": 120,
"code_blocks": false,
"tables": false
},
"MD024": {
"siblings_only": true
},
"MD033": false,
"MD041": false
}
4 changes: 4 additions & 0 deletions .markdownlintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules/
dist/
.agentready/
CHANGELOG.md
Loading
Loading