From dbf8325cd356048ee345bd46cfcd5961535e8530 Mon Sep 17 00:00:00 2001 From: Nick Alteen Date: Fri, 11 Jul 2025 13:41:10 -0400 Subject: [PATCH 1/3] Update config and docs from template --- .github/workflows/ci.yml | 2 ++ .github/workflows/linter.yml | 8 ++++++++ .gitignore | 1 - README.md | 12 +++++++----- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe1de4f..da72e7c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,8 @@ name: Continuous Integration on: pull_request: + branches: + - main push: branches: - main diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 11e3ba7..6957483 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -1,7 +1,14 @@ +# This workflow will lint the entire codebase using the +# `super-linter/super-linter` action. +# +# For more information, see the super-linter repository: +# https://github.com/super-linter/super-linter name: Lint Codebase on: pull_request: + branches: + - main push: branches: - main @@ -29,4 +36,5 @@ jobs: env: DEFAULT_BRANCH: main GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + LINTER_RULES_PATH: ${{ github.workspace }} VALIDATE_ALL_CODEBASE: false diff --git a/.gitignore b/.gitignore index dcff431..65d0ac8 100644 --- a/.gitignore +++ b/.gitignore @@ -21,5 +21,4 @@ Thumbs.db # IDE files .idea -.vscode *.code-workspace diff --git a/README.md b/README.md index 87f6bcb..8dc3819 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ -# Container Prebuilt Action Template +# Create a Container Prebuilt Action [![GitHub Super-Linter](https://github.com/actions/container-prebuilt-action/actions/workflows/linter.yml/badge.svg)](https://github.com/super-linter/super-linter) +[![Check dist/](https://github.com/actions/container-prebuilt-action/actions/workflows/check-dist.yml/badge.svg)](https://github.com/actions/container-prebuilt-action/actions/workflows/check-dist.yml) ![CI](https://github.com/actions/container-prebuilt-action/actions/workflows/ci.yml/badge.svg) -![CD](https://github.com/actions/container-prebuilt-action/actions/workflows/cd.yml/badge.svg) +[![CodeQL](https://github.com/actions/container-prebuilt-action/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/actions/container-prebuilt-action/actions/workflows/codeql-analysis.yml) +[![Coverage](./badges/coverage.svg)](./badges/coverage.svg) Use this template to bootstrap the creation of a container action. :rocket: @@ -177,7 +179,7 @@ So, what are you waiting for? Go ahead and start customizing your action! Your action is now published! :rocket: For information about versioning your action, see -[Versioning](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) +[Versioning](https://github.com/actions/toolkit/blob/main/docs/action-versioning.md) in the GitHub Actions toolkit. ## Releasing Versions @@ -198,7 +200,7 @@ As part of the pull request, make sure to update the After testing, you can create version tag(s) that developers can use to reference different stable versions of your action. For more information, see -[Versioning](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) +[Versioning](https://github.com/actions/toolkit/blob/main/docs/action-versioning.md) in the GitHub Actions toolkit. To include the action in a workflow in another repository, you can use the @@ -209,7 +211,7 @@ hash. steps: - name: Checkout id: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Test Local Action id: test-action From 1d215422d4a247324eff24a9a6f30c16d3e5cda8 Mon Sep 17 00:00:00 2001 From: Nick Alteen Date: Fri, 11 Jul 2025 13:41:18 -0400 Subject: [PATCH 2/3] feat: add Copilot instructions and release notes guidelines; configure VSCode settings and MCP --- .github/copilot-instructions.md | 69 +++++++++++++++++++ .../prompts/create-release-notes.prompt.md | 34 +++++++++ .vscode/mcp.json | 9 +++ .vscode/settings.json | 15 ++++ 4 files changed, 127 insertions(+) create mode 100644 .github/copilot-instructions.md create mode 100644 .github/prompts/create-release-notes.prompt.md create mode 100644 .vscode/mcp.json create mode 100644 .vscode/settings.json diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..e6630a8 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,69 @@ +# Copilot Instructions + +This GitHub Action is written as a Docker container that invokes an entrypoint +script. The entrypoint script is responsible for invoking the main logic of the +action. + +## Repository Structure + +| Path | Description | +| -------------------- | ----------------------------------- | +| `.devcontainer/` | Development Container Configuration | +| `.github/` | GitHub Configuration | +| `.markdown-lint.yml` | Markdown Linter Configuration | +| `.prettierrc.yml` | Prettier Formatter Configuration | +| `.yaml-lint.yml` | YAML Linter Configuration | +| `action.yml` | GitHub Action Metadata | +| `CODEOWNERS` | Code Owners File | +| `Dockerfile` | Dockerfile for the Action | +| `entrypoint.sh` | Entrypoint Script | +| `LICENSE` | License File | +| `README.md` | Project Documentation | + +## General Coding Guidelines + +- Follow standard shell scripting conventions and best practices +- Changes should maintain consistency with existing patterns and style +- Document changes clearly and thoroughly, including updates to existing + comments when appropriate +- Do not include basic, unnecessary comments that simply restate what the code + is doing (focus on explaining _why_, not _what_) +- Use consistent error handling patterns throughout the codebase +- Keep functions focused and manageable +- Use descriptive variable and function names that clearly convey their purpose +- When suggesting code changes, always opt for the most maintainable approach. + Try your best to keep the code clean and follow "Don't Repeat Yourself" (DRY) + principles +- Avoid unnecessary complexity and always consider the long-term maintainability + of the code + +### Versioning + +GitHub Actions are versioned using branch and tag names. The version should +follow [Semantic Versioning](https://semver.org/) principles. + +## Pull Request Guidelines + +When creating a pull request (PR), please ensure that: + +- Keep changes focused and minimal (avoid large changes, or consider breaking + them into separate, smaller PRs) +- Formatting checks pass +- Linting checks pass +- If necessary, the `README.md` file is updated to reflect any changes in + functionality or usage + +The body of the PR should include: + +- A summary of the changes +- A special note of any changes to dependencies +- A link to any relevant issues or discussions +- Any additional context that may be helpful for reviewers + +## Code Review Guidelines + +When performing a code review, please follow these guidelines: + +- If there are changes that modify the functionality/usage of the action, + validate that there are changes in the `README.md` file that document the new + or modified functionality diff --git a/.github/prompts/create-release-notes.prompt.md b/.github/prompts/create-release-notes.prompt.md new file mode 100644 index 0000000..c2f1893 --- /dev/null +++ b/.github/prompts/create-release-notes.prompt.md @@ -0,0 +1,34 @@ +# Create Release Notes + +You are an expert technical writer tasked with creating release notes for +updates to this repository. Your specific task is to generate release notes that +are clear, concise, and useful for developers and users of the project. + +## Guidelines + +Ensure you adhere to the following guidelines when creating release notes: + +- Use a clear and consistent format for the release notes +- Include a summary of the changes made in the release +- Highlight any new features, improvements, or bug fixes +- If applicable, include instructions for upgrading or migrating to the new + version +- Use technical language that is appropriate for the audience, but avoid jargon + that may not be understood by all users +- Ensure that the release notes are easy to read and navigate +- Include relevant issue or PR numbers where applicable +- Use proper Markdown formatting +- Use code blocks for commands, configuration examples, or code changes +- Use note and warning callouts for important information + +## Versioning + +GitHub Actions are versioned using branch and tag names. The version in the +project's `package.json` should reflect the changes made in the codebase and +follow [Semantic Versioning](https://semver.org/) principles. Depending on the +nature of the changes, please make sure to adjust the release notes accordingly: + +- For **major** changes, include a detailed description of the breaking changes + and how users can adapt to them +- For **minor** changes, highlight new features and improvements +- For **patch** changes, focus on bug fixes and minor improvements diff --git a/.vscode/mcp.json b/.vscode/mcp.json new file mode 100644 index 0000000..2d34de4 --- /dev/null +++ b/.vscode/mcp.json @@ -0,0 +1,9 @@ +{ + "servers": { + "github": { + "url": "https://api.githubcopilot.com/mcp/", + "type": "http" + } + }, + "inputs": [] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..390e031 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "github.copilot.chat.reviewSelection.instructions": [ + { + "text": "Review the code changes carefully before accepting them." + } + ], + "github.copilot.chat.commitMessageGeneration.instructions": [ + { + "text": "Use conventional commit message format." + } + ], + "github.copilot.chat.pullRequestDescriptionGeneration.instructions": [ + { "text": "Always include a list of key changes." } + ] +} From 29ab4f85137541211f192f1d048bef77d8d4af02 Mon Sep 17 00:00:00 2001 From: Nick Alteen Date: Fri, 11 Jul 2025 13:52:52 -0400 Subject: [PATCH 3/3] Fix linting errors --- .checkov.yaml | 4 ++++ .github/prompts/create-release-notes.prompt.md | 4 ++-- .vscode/mcp.json | 16 ++++++++-------- 3 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 .checkov.yaml diff --git a/.checkov.yaml b/.checkov.yaml new file mode 100644 index 0000000..0cab7b1 --- /dev/null +++ b/.checkov.yaml @@ -0,0 +1,4 @@ +quiet: true +skip-check: + - CKV_DOCKER_2 + - CKV_DOCKER_3 diff --git a/.github/prompts/create-release-notes.prompt.md b/.github/prompts/create-release-notes.prompt.md index c2f1893..d5c7c0a 100644 --- a/.github/prompts/create-release-notes.prompt.md +++ b/.github/prompts/create-release-notes.prompt.md @@ -10,7 +10,7 @@ Ensure you adhere to the following guidelines when creating release notes: - Use a clear and consistent format for the release notes - Include a summary of the changes made in the release -- Highlight any new features, improvements, or bug fixes +- Highlight any new features, improvements, or bugfixes - If applicable, include instructions for upgrading or migrating to the new version - Use technical language that is appropriate for the audience, but avoid jargon @@ -31,4 +31,4 @@ nature of the changes, please make sure to adjust the release notes accordingly: - For **major** changes, include a detailed description of the breaking changes and how users can adapt to them - For **minor** changes, highlight new features and improvements -- For **patch** changes, focus on bug fixes and minor improvements +- For **patch** changes, focus on bugfixes and minor improvements diff --git a/.vscode/mcp.json b/.vscode/mcp.json index 2d34de4..7d7a7c0 100644 --- a/.vscode/mcp.json +++ b/.vscode/mcp.json @@ -1,9 +1,9 @@ { - "servers": { - "github": { - "url": "https://api.githubcopilot.com/mcp/", - "type": "http" - } - }, - "inputs": [] -} \ No newline at end of file + "servers": { + "github": { + "url": "https://api.githubcopilot.com/mcp/", + "type": "http" + } + }, + "inputs": [] +}