From 0fb901a0873cc613a3de69868d18fea7bcb649c3 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:00:52 -0400 Subject: [PATCH 01/13] Update lint workflow for pull request titles Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .github/workflows/lint-pull-request.yml | 115 ++++++++++++++++-------- 1 file changed, 76 insertions(+), 39 deletions(-) diff --git a/.github/workflows/lint-pull-request.yml b/.github/workflows/lint-pull-request.yml index 8fb6295..cd767c0 100644 --- a/.github/workflows/lint-pull-request.yml +++ b/.github/workflows/lint-pull-request.yml @@ -1,76 +1,113 @@ -name: "Pull request" +name: Lint pull request on: pull_request_target: + branches: + - "main" + - "v[0-9]*" types: - opened - edited - - synchronize + - unlabeled + - ready_for_review + +concurrency: + group: >- + ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true permissions: pull-requests: write jobs: - main: - name: lint PR title - runs-on: ubuntu-latest + lint: + runs-on: ubuntu-slim + if: ${{ !github.event.pull_request.draft }} + steps: - - uses: amannn/action-semantic-pull-request@v5 + - uses: amannn/action-semantic-pull-request@v6.1.1 id: lint_pr_title env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - - # Configure additional validation for the subject based on a regex. - # We enforce that the subject starts with an uppercase character. + types: | + feat + fix + docs + style + refactor + perf + test + build + ci + chore + revert + plan subjectPattern: ^([A-Z]).+$ - - # If `subjectPattern` is configured, you can use this property to override - # the default error message that is shown when the pattern doesn't match. - # The variables `subject` and `title` can be used within the message. subjectPatternError: > - The subject "**{subject}**" found in the pull request title "*{title}*" - didn't match the configured pattern. Please ensure that the subject - starts with an uppercase character. - - # If the PR contains one of these newline-delimited labels, the - # validation is skipped. If you want to rerun the validation when - # labels change, you might want to use the `labeled` and `unlabeled` - # event triggers in your workflow. + The subject "**{subject}**" must start with an uppercase character. + Example: "Add feature" instead of "add feature" ignoreLabels: | bot dependencies + automated - - uses: marocchino/sticky-pull-request-comment@v2 - # When the previous steps fails, the workflow would stop. By adding this - # condition you can continue the execution with the populated error message. + - uses: marocchino/sticky-pull-request-comment@v2.9.4 if: always() && (steps.lint_pr_title.outputs.error_message != null) with: header: pr-title-lint-error - message: > - ### Hey there and thank you for opening this pull request! ๐Ÿ‘‹๐Ÿผ + message: | + ### โš ๏ธ Invalid Pull Request title + + Your PR title must follow the format: `type: Subject` where: + - `type` is one of the conventional commit types (in lowercase) + - `Subject` starts with an uppercase letter + + > [!CAUTION] + > ${{ steps.lint_pr_title.outputs.error_message }} + + #### Valid examples + + - `feat: Add API endpoint for market data` + - `fix: Resolve WebSocket connection issues` + - `plan: Define technical implementation approach` + - `chore: Update NuGet dependencies` + +
+ see more valid examples + + #### Features & fixes + - `feat: Add API endpoint for market data` + - `fix: Resolve WebSocket connection issues` - It looks like your proposed **_Pull request title_** needs to be adjusted. + #### Planning & architecture + - `plan: Define technical implementation approach` - >๐Ÿšฉ **Error** ยป ${{ steps.lint_pr_title.outputs.error_message }} + #### Code quality + - `style: Format trading strategy classes` + - `refactor: Restructure trading engine components` + - `perf: Optimize trade order execution flow` - #### Pull request title naming convention + #### Documentation & testing + - `docs: Update API documentation` + - `test: Add unit tests for sign-in flow` - Our PR title name taxonomy is `type: Subject`, where **type** is typically - *feat*, *fix*, or *chore*, and **subject** is a phrase (proper noun) that starts - with a capitalized letter. The *chore* type usually has a subject that starts - with an action verb like *Add* or *Update*. Examples: + #### Infrastructure + - `build: Update .NET SDK version to 10.0` + - `ci: Add workflow for performance testing` + - `chore: Update NuGet dependencies` - - _feat: Admin portal login_ - - _fix: Divide by zero in X calculation_ - - _chore: Update packages_ - - _docs: Improve setup guidance_ + #### Other + - `revert: Remove faulty market data provider` - See the [Conventional Commits specification](https://www.conventionalcommits.org) for more information. + See [Conventional Commits](https://www.conventionalcommits.org) + for more details. +
# Delete a previous comment when the issue has been resolved - if: ${{ steps.lint_pr_title.outputs.error_message == null }} - uses: marocchino/sticky-pull-request-comment@v2 + uses: marocchino/sticky-pull-request-comment@v2.9.4 with: header: pr-title-lint-error delete: true + From 974c802673b3fb4f3ac7b0b55150d6ac50478108 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:03:52 -0400 Subject: [PATCH 02/13] Refactor lock-issues-pr workflow for efficiency Updated the lock-issues-pr workflow to use a slimmer Ubuntu image and a newer version of the lock-threads action. Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .github/workflows/lock-issues-pr.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lock-issues-pr.yml b/.github/workflows/lock-issues-pr.yml index ffb2054..f397803 100644 --- a/.github/workflows/lock-issues-pr.yml +++ b/.github/workflows/lock-issues-pr.yml @@ -3,7 +3,7 @@ name: Lock closed threads on: schedule: - - cron: "0 4 * * 0" + - cron: 0 4 * * 0 workflow_dispatch: permissions: @@ -15,9 +15,11 @@ concurrency: jobs: lock: - runs-on: ubuntu-latest + runs-on: ubuntu-slim + timeout-minutes: 10 + steps: - - uses: dessant/lock-threads@v5 + - uses: dessant/lock-threads@v6 with: process-only: issues, prs issue-inactive-days: "90" From 7258202c62e476e8514249dd63b2bea8b066340e Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:04:48 -0400 Subject: [PATCH 03/13] Delete .vscode/settings.json Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .vscode/settings.json | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 7342bcf..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "files.autoSave": "afterDelay", - "files.autoSaveDelay": 3000, - "files.encoding": "utf8", - "cSpell.words": [ - "FacioQuo" - ] -} From 8b79f45e99373f4ab9394e821cfd390ce9aae25f Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:05:47 -0400 Subject: [PATCH 04/13] Normalize line endings and configure NuGet lock files Updated line ending normalization and added specific handling for NuGet lock files. Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .gitattributes | 66 +++----------------------------------------------- 1 file changed, 4 insertions(+), 62 deletions(-) diff --git a/.gitattributes b/.gitattributes index 1ff0c42..5745212 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,63 +1,5 @@ -############################################################################### -# Set default behavior to automatically normalize line endings. -############################################################################### -* text=auto +# Normalize line endings. +* text=auto eol=lf -############################################################################### -# Set default behavior for command prompt diff. -# -# This is need for earlier builds of msysgit that does not have it on by -# default for csharp files. -# Note: This is only used by command line -############################################################################### -#*.cs diff=csharp - -############################################################################### -# Set the merge driver for project and solution files -# -# Merging from the command prompt will add diff markers to the files if there -# are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following -# file extensions to fail to load in VS. An alternative would be to treat -# these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just uncomment the entries below -############################################################################### -#*.sln merge=binary -#*.csproj merge=binary -#*.vbproj merge=binary -#*.vcxproj merge=binary -#*.vcproj merge=binary -#*.dbproj merge=binary -#*.fsproj merge=binary -#*.lsproj merge=binary -#*.wixproj merge=binary -#*.modelproj merge=binary -#*.sqlproj merge=binary -#*.wwaproj merge=binary - -############################################################################### -# behavior for image files -# -# image files are treated as binary by default. -############################################################################### -#*.jpg binary -#*.png binary -#*.gif binary - -############################################################################### -# diff behavior for common document formats -# -# Convert binary document formats to text before diffing them. This feature -# is only available from the command line. Turn it on by uncommenting the -# entries below. -############################################################################### -#*.doc diff=astextplain -#*.DOC diff=astextplain -#*.docx diff=astextplain -#*.DOCX diff=astextplain -#*.dot diff=astextplain -#*.DOT diff=astextplain -#*.pdf diff=astextplain -#*.PDF diff=astextplain -#*.rtf diff=astextplain -#*.RTF diff=astextplain +# NuGet lock files should always use LF +**/packages.lock.json text eol=lf From 5838b486bc54f0739e77345520cad5a21ed3ae18 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:09:13 -0400 Subject: [PATCH 05/13] Revise .editorconfig for improved settings Updated EditorConfig with core options and file type overrides. Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .editorconfig | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/.editorconfig b/.editorconfig index b430b5e..551b150 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,29 +1,56 @@ -# top-most EditorConfig file +# EditorConfig: https://EditorConfig.org + +# Top-level EditorConfig file root = true -# global baselines +#### Core EditorConfig Options #### + +# Global settings for all files [*] charset = utf-8 end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true indent_style = space indent_size = 2 tab_width = 2 -line_length = 150 -max_line_length = 150 -trim_trailing_whitespace = true -insert_final_newline = true +# Disable max line length enforcement +max_line_length = off + +#### File Type Overrides #### + +# Markdown files +[*.md] + +# Allow trailing whitespace for line breaks +trim_trailing_whitespace = false + +[*.sh] -[*.{csproj,props,targets}] indent_style = space indent_size = 2 +tab_width = 2 + +[*.{csproj,json,jsonc,xml,yaml,yml}] -[*.yml] indent_style = space indent_size = 2 +tab_width = 2 +# Batch and command files +[*.{cmd,bat}] +# Use CRLF for Windows specific files +end_of_line = crlf + +# .NET source files [*.{cs,vb}] -tab_width = 4 + +indent_style = space indent_size = 4 -end_of_line = lf +tab_width = 4 + +# .NET generated files +[*.g.cs] +generated_code = true From 022d64ffb0cd64fad8f5291085c3edfad18866ef Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:11:33 -0400 Subject: [PATCH 06/13] Update NOTICE file for attribution clarity Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- NOTICE | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/NOTICE b/NOTICE index 7dadb9e..e207b9a 100644 --- a/NOTICE +++ b/NOTICE @@ -1,8 +1,9 @@ KEEP THIS NOTICE OF ATTRIBUTION IN ALL DERIVED WORKS -These are original open-source works +These are original works created by FacioQuo and other community contributors. https://github.com/facioquo +https://facioquo.com @2024 FacioQuo et al From e539cde14ba9b410e4f695a843550ba7836017a7 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:11:59 -0400 Subject: [PATCH 07/13] Delete LICENSE Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- LICENSE | 176 -------------------------------------------------------- 1 file changed, 176 deletions(-) delete mode 100644 LICENSE diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d9a10c0..0000000 --- a/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS From 7372471a6536591dc89ee61053a194ad3dbbf7a2 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:13:10 -0400 Subject: [PATCH 08/13] Delete gitversion.yml Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- gitversion.yml | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 gitversion.yml diff --git a/gitversion.yml b/gitversion.yml deleted file mode 100644 index c303026..0000000 --- a/gitversion.yml +++ /dev/null @@ -1,14 +0,0 @@ -mode: ContinuousDelivery -next-version: 0.0.1 - -commit-message-incrementing: Enabled -major-version-bump-message: '\+semver:\s?(breaking|major)' -minor-version-bump-message: '\+semver:\s?(feature|minor)' -patch-version-bump-message: '\+semver:\s?(fix|patch)' -no-bump-message: '\+semver:\s?(none|skip)' - -branches: - pull-request: - tag: preview. - feature: - tag: preview. From 0e4b235ff22407e0d26c0370b2da1dbdfbd55a23 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 11:37:38 -0400 Subject: [PATCH 09/13] Revise README title and content for clarity Updated the title and clarified the purpose of the README. Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0aeac0e..300ceb4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ -# GitHub community defaults for FacioQuo +# GitHub public community profile for FacioQuo - Default [community health files](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file) - Default workflow templates for issues, pull-requests +- The [profile/README.md](profile/README.md) is the public welcome screen on - Other GitHub organizational defaults From f40043f431440ce110edc175cb090384492f7cdf Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 12:56:25 -0400 Subject: [PATCH 10/13] Update action versions in lint-pull-request workflow Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .github/workflows/lint-pull-request.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint-pull-request.yml b/.github/workflows/lint-pull-request.yml index cd767c0..ce04615 100644 --- a/.github/workflows/lint-pull-request.yml +++ b/.github/workflows/lint-pull-request.yml @@ -25,7 +25,7 @@ jobs: if: ${{ !github.event.pull_request.draft }} steps: - - uses: amannn/action-semantic-pull-request@v6.1.1 + - uses: amannn/action-semantic-pull-request@v6 id: lint_pr_title env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -52,7 +52,7 @@ jobs: dependencies automated - - uses: marocchino/sticky-pull-request-comment@v2.9.4 + - uses: marocchino/sticky-pull-request-comment@v2 if: always() && (steps.lint_pr_title.outputs.error_message != null) with: header: pr-title-lint-error @@ -106,7 +106,7 @@ jobs: # Delete a previous comment when the issue has been resolved - if: ${{ steps.lint_pr_title.outputs.error_message == null }} - uses: marocchino/sticky-pull-request-comment@v2.9.4 + uses: marocchino/sticky-pull-request-comment@v2 with: header: pr-title-lint-error delete: true From 6e706e150ab0744191982022abeec98dba409e55 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 13:05:01 -0400 Subject: [PATCH 11/13] Add CodeQL configuration for security and quality checks Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .github/codeql/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/codeql/config.yml diff --git a/.github/codeql/config.yml b/.github/codeql/config.yml new file mode 100644 index 0000000..f90540c --- /dev/null +++ b/.github/codeql/config.yml @@ -0,0 +1,8 @@ +name: org-codeql-config + +queries: + - uses: security-and-quality + +query-filters: + - exclude: + id: actions/unpinned-tag From 7a2b328b67abed454b97ee48410da5cd3628ac27 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 13:12:29 -0400 Subject: [PATCH 12/13] Add 'labeled' event type to lint-pull-request workflow triggers Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .github/workflows/lint-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-pull-request.yml b/.github/workflows/lint-pull-request.yml index ce04615..1951a79 100644 --- a/.github/workflows/lint-pull-request.yml +++ b/.github/workflows/lint-pull-request.yml @@ -8,6 +8,7 @@ on: types: - opened - edited + - labeled - unlabeled - ready_for_review @@ -110,4 +111,3 @@ jobs: with: header: pr-title-lint-error delete: true - From fc53e85bfb83971b2d55794b187a8f3b67708cf3 Mon Sep 17 00:00:00 2001 From: Dave Skender <8432125+DaveSkender@users.noreply.github.com> Date: Sun, 8 Mar 2026 13:16:13 -0400 Subject: [PATCH 13/13] Update .gitattributes to enforce CRLF for Windows script files Signed-off-by: Dave Skender <8432125+DaveSkender@users.noreply.github.com> --- .gitattributes | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitattributes b/.gitattributes index 5745212..9482d5e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,3 +3,7 @@ # NuGet lock files should always use LF **/packages.lock.json text eol=lf + +# Windows script files should use CRLF +*.cmd text eol=crlf +*.bat text eol=crlf