From f9677f0a2991580174b04a42017211b9dfbe33a0 Mon Sep 17 00:00:00 2001 From: mayaqf Date: Sun, 23 Aug 2026 14:29:08 +0900 Subject: [PATCH] ci: add CI/release workflows, issue templates, and security policy - ci.yml: build (x64) + ctest on push/PR to main (required status check for branch protection) - release.yml: on v* tag, build x86+x64 + test, publish DLLs+ini to GitHub Releases - ISSUE_TEMPLATE: bug-report (form), feature-request (form), config (contact link) - SECURITY.md: vulnerability reporting via Security Advisories, scope, self-responsibility notes Co-Authored-By: Claude --- .github/ISSUE_TEMPLATE/bug-report.yml | 77 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ .github/ISSUE_TEMPLATE/feature-request.yml | 28 ++++++++ .github/workflows/ci.yml | 25 +++++++ .github/workflows/release.yml | 44 +++++++++++++ SECURITY.md | 39 +++++++++++ 6 files changed, 218 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml create mode 100644 SECURITY.md diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 0000000..dd6f130 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,77 @@ +name: バグ報告 +description: XInputXFire の動作不良・不具合を報告する +title: "[Bug] " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + バグ報告ありがとうございます。事前に README の + [トラブルシューティング](https://github.com/mayaqf/XInputXFire/blob/main/README.md#トラブルシューティング診断ログ) と + [対応ゲームの条件](https://github.com/mayaqf/XInputXFire/blob/main/README.md#対応ゲームの条件) をご確認ください。 + + - type: input + id: game + attributes: + label: 対象ゲーム名 + placeholder: "例: 某14(dx11)" + validations: + required: true + + - type: dropdown + id: dll + attributes: + label: 配置した XInput DLL 形態 + description: README の配置手順で選んだ形態 + options: + - xinput1_3.dll (1.3 形態) + - XInput9_1_0.dll (9.1.0 形態) + - xinput1_4.dll (1.4 形態) + - 不明 + validations: + required: true + + - type: dropdown + id: bit + attributes: + label: ゲームプロセスのビット + options: + - 64bit + - 32bit + - 不明 + validations: + required: true + + - type: input + id: os + attributes: + label: OS + placeholder: "例: Windows 11 Home 26200" + validations: + required: true + + - type: textarea + id: log + attributes: + label: 診断ログ (%TEMP%\XInputXFire_xinput.log) の内容 + description: > + ファイルを開いて内容をそのまま貼り付けてください。 + [STICKYINIT] 1行のみで後が続かない場合でも構いません。 + ログが無い場合は「ログ無し」と記載してください。 + render: shell + validations: + required: true + + - type: textarea + id: expected + attributes: + label: 期待する挙動 + validations: + required: true + + - type: textarea + id: actual + attributes: + label: 実際の挙動 + validations: + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..50bd4c8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: README・対応ゲームの条件 + url: https://github.com/mayaqf/XInputXFire/blob/main/README.md + about: 連射が効かない場合は README の「対応ゲームの条件」「トラブルシューティング」を先にご確認ください。 \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 0000000..4eac62c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,28 @@ +name: 機能要望 +description: 新機能や改善の提案 +title: "[Feature] " +labels: ["enhancement"] +body: + - type: textarea + id: summary + attributes: + label: 要望の概要 + description: どのような機能・改善を望むかを簡潔に記載してください。 + validations: + required: true + + - type: textarea + id: motivation + attributes: + label: 動機・ユースケース + description: なぜその機能が必要か、どのような場面で使いたいかを記載してください。 + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: 検討した代替案 + description: 既存の設定(ini)で代用できないか検討した内容があれば記載してください。 + validations: + required: false \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f96f8c2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,25 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Configure (x64) + run: cmake -S . -B build -A x64 + + - name: Build (Release) + run: cmake --build build --config Release + + - name: Test (xfire_unit) + run: ctest --test-dir build --build-config Release --output-on-failure \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c142ab5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,44 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + release: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Configure & build (x64) + run: | + cmake -S . -B build-x64 -A x64 + cmake --build build-x64 --config Release + ctest --test-dir build-x64 --build-config Release --output-on-failure + + - name: Configure & build (x86) + run: | + cmake -S . -B build-x86 -A Win32 + cmake --build build-x86 --config Release + ctest --test-dir build-x86 --build-config Release --output-on-failure + + - name: Stage release assets + shell: bash + run: | + mkdir -p staging + cp build-x64/Release/xinput1_3_x64.dll staging/ + cp build-x64/Release/XInput9_1_0_x64.dll staging/ + cp build-x86/Release/xinput1_3_x86.dll staging/ + cp build-x86/Release/XInput9_1_0_x86.dll staging/ + cp assets/XInputXFire.ini staging/ + ls -la staging + + - name: Upload to GitHub Releases + uses: softprops/action-gh-release@v2 + with: + files: staging/* + generate_release_notes: true \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..a4756e8 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,39 @@ +# セキュリティポリシー + +## 報告の対象 + +XInputXFire プロキシDLL本体、および設定ファイル(`XInputXFire.ini`)の解析処理に関する **セキュリティ脆弱性** を報告対象とします。 + +例: +- バッファオーバーフロー / 整数オーバーフロー +- DLL ローダの自己再帰・無限ループ +- DLL 検索順序のハイジャック可能性 +- 設定値の silent failure による意図しない連射発動 +- 診断ログのパス構築に関する境界バグ + +## 報告の対象外(Issue へお願いします) + +以下は脆弱性ではないため、通常の Issue で報告してください: + +- **特定のゲームで連射が効かない** → [対応ゲームの条件](README.md#対応ゲームの条件) を参照のうえ Issue へ(多くはゲームが XInput 経由で入力を取得していない非対応ケースです) +- 機能要望・設定項目の追加 +- ビルド手順・配置手順に関する質問 + +なお、**アンチチートへの検出回避方法の要請は本プロジェクトの対象外**です。お応えできません。 + +## 報告方法 + +GitHub の **Security Advisories(非公開脆弱性報告)** を使用してください。 + +1. リポジトリの [Security] タブ → **Report a vulnerability** を選択 +2. 影響範囲・再現手順・推奨される対策を記載 + +報告を受けた後、公開前に修正方針を協議します。報告者がクレジット非掲載を希望しない限り、修正後に報告者をクレジット表記します。 + +## 注意事項(自己責任) + +本ツールは対象ゲームの exe と同じフォルダにプロキシDLL(`xinput1_3.dll` 等)を配置し、XInput API 呼び出しを横取りする方式です。 + +- **オンラインゲームでの使用は自己責任**です。プロキシDLL方式は XInput Plus / x360ce と同様にアンチチートに検出される可能性があります。 +- `C:\Windows\System32` / `SysWOW64` には DLL を配置**しないでください**(自己再ロードによる無限再帰のリスク)。プロキシDLLはゲームexeと同フォルダにのみ配置してください。 +- 本ツールは個人の学習・研究目的、および許可された環境での使用を想定しています。 \ No newline at end of file