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