mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-12-04 15:39:34 +01:00
Add copilot management files (#12207)
* Add copilot management files * Add AI statements to README and CONTRIBUTING * Add statement to pull request template
This commit is contained in:
5
.github/CONTRIBUTING.md
vendored
5
.github/CONTRIBUTING.md
vendored
@@ -15,6 +15,7 @@ These are just guidelines, not rules. Use your best judgment, and feel free to p
|
|||||||
* [Bug reports](#bug-reports)
|
* [Bug reports](#bug-reports)
|
||||||
* [Discuss with the team](#discuss-with-the-team)
|
* [Discuss with the team](#discuss-with-the-team)
|
||||||
* [Your first code contribution](#your-first-code-contribution)
|
* [Your first code contribution](#your-first-code-contribution)
|
||||||
|
* [Using AI](#using-ai)
|
||||||
* [Pull requests](#pull-requests)
|
* [Pull requests](#pull-requests)
|
||||||
* [Translations](#translations)
|
* [Translations](#translations)
|
||||||
|
|
||||||
@@ -74,6 +75,10 @@ Unsure where to begin contributing to KeePassXC? You can start by looking throug
|
|||||||
|
|
||||||
Both issue lists are sorted by total number of comments. While not perfect, looking at the number of comments on an issue can give a general idea of how much an impact a given change will have.
|
Both issue lists are sorted by total number of comments. While not perfect, looking at the number of comments on an issue can give a general idea of how much an impact a given change will have.
|
||||||
|
|
||||||
|
### Using AI
|
||||||
|
|
||||||
|
Generative AI is fast becoming a first-party feature in most development environments, including GitHub itself. If you use Generative AI to write the vast majority of your submission (e.g., agent-based or vibe coding) then you **must document your use of AI** in your pull request. Please include the service you used and/or model that generated the code. All code submissions go through a rigourous review process regardless of the development workflow used.
|
||||||
|
|
||||||
### Pull requests
|
### Pull requests
|
||||||
|
|
||||||
Along with our desire to hear your feedback and suggestions, we're also interested in accepting direct assistance in the form of code.
|
Along with our desire to hear your feedback and suggestions, we're also interested in accepting direct assistance in the form of code.
|
||||||
|
|||||||
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,12 +1,13 @@
|
|||||||
[NOTE]: # ( Describe your changes in detail, why is this change required? )
|
[NOTE]: # ( Describe your changes in detail. Explain large or complex code modifications. )
|
||||||
[NOTE]: # ( Explain large or complex code modifications. )
|
|
||||||
[NOTE]: # ( If it fixes an open issue, please add "Fixes #XXX". )
|
[NOTE]: # ( If it fixes an open issue, please add "Fixes #XXX". )
|
||||||
|
[NOTE]: # ( If you used Generative AI to write the majority of your code, you must state this. )
|
||||||
|
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
[NOTE]: # ( Do not include screenshots of your actual database! )
|
[NOTE]: # ( Do not include screenshots of your actual database! )
|
||||||
[TIP]: # ( Use View -> Allow Screen Capture )
|
[TIP]: # ( Use View -> Allow Screen Capture )
|
||||||
|
|
||||||
|
|
||||||
## Testing strategy
|
## Testing strategy
|
||||||
[NOTE]: # ( Please describe in detail how you tested your changes. )
|
[NOTE]: # ( Please describe in detail how you tested your changes. )
|
||||||
[TIP]: # ( We expect new code to be covered by unit tests and include helpful comments. )
|
[TIP]: # ( We expect new code to be covered by unit tests and include helpful comments. )
|
||||||
|
|||||||
38
.github/copilot-instructions.md
vendored
Normal file
38
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
This is a C++ based repository that uses Qt5 as a primary support and GUI library. This repository is for a password manager application that stores passwords
|
||||||
|
and other highly sensitive information. The data format that passwords are stored is called KDBX which is a mixed binary and XML format that is fully encrypted
|
||||||
|
at rest. This format is unpacked into a series of data structures: Database, Groups, and Entries. Please follow these guidelines when contributing:
|
||||||
|
|
||||||
|
## Code Standards
|
||||||
|
|
||||||
|
### Required Before Each Commit
|
||||||
|
- Run `cmake --build . --target format` before committing any changes to ensure proper code formatting
|
||||||
|
- This will run clang-format to ensure all code conforms to the style guide
|
||||||
|
- From the checkout directory, also run `./release-tool i18n lupdate` to update translation files
|
||||||
|
|
||||||
|
### Development Flow
|
||||||
|
- Setup Build Folder: `mkdir build; cd build`
|
||||||
|
- Configure: `cmake -G Ninja -DWITH_XC_ALL=ON -DWITH_GUI_TESTS=ON ..`
|
||||||
|
- Build: `cmake --build . -- -j $(nproc)`
|
||||||
|
- Test: `ctest`
|
||||||
|
|
||||||
|
## Repository Structure
|
||||||
|
- `docs/topics`: Documentation written in asciidoctor syntax
|
||||||
|
- `src/`: Main source code files are under this subdirectory
|
||||||
|
- `src/autotype`: Code that emulates a virtual keyboard to type into interfaces
|
||||||
|
- `src/browser`: Interface with the KeePassXC Browser Extension using a JSON-based protocol
|
||||||
|
- `src/cli`: Command Line Interface code
|
||||||
|
- `src/core`: Contains files that define the data model and other shared code structures
|
||||||
|
- `src/format`: Code for import/export and reading/writing of KDBX databases
|
||||||
|
- `src/fdosecrets`: freedesktop.org Secret Service interface code
|
||||||
|
- `src/quickunlock`: Quick unlock interfaces for various platforms
|
||||||
|
- `src/sshagent`: SSH Agent interface code to load private keys from the database into ssh-agent
|
||||||
|
- `tests/`: Test source code files
|
||||||
|
- `tests/gui`: GUI test source code files
|
||||||
|
|
||||||
|
## Key Guidelines
|
||||||
|
1. Follow C++20 and Qt5 best practices and idiomatic patterns
|
||||||
|
2. Maintain existing code structure and organization
|
||||||
|
3. Prefer not to edit cryptographic handling code or other sensitive parts of the code base
|
||||||
|
4. Write unit tests for new functionality using QTest scaffolding
|
||||||
|
5. Suggest changes to the `docs/topics` folder when appropriate
|
||||||
|
6. Unless the change is simple, don't actually make edits to .ui files, just suggest the changes needed
|
||||||
29
.github/workflows/copilot-setup-steps.yml
vendored
Normal file
29
.github/workflows/copilot-setup-steps.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: "Copilot Setup Steps"
|
||||||
|
|
||||||
|
# Setup the environment for Copilot agents to run in
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- .github/workflows/copilot-setup-steps.yml
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- .github/workflows/copilot-setup-steps.yml
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
copilot-setup-steps:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
# Needed to clone the repository
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install --no-install-recommends build-essential cmake g++ ninja-build qtbase5-dev qtbase5-private-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev libargon2-dev libkeyutils-dev libminizip-dev libbotan-2-dev libqrencode-dev zlib1g-dev asciidoctor libreadline-dev libpcsclite-dev libusb-1.0-0-dev libxi-dev libxtst-dev libqt5x11extras5-dev
|
||||||
@@ -56,6 +56,10 @@ You may directly contribute your own code by submitting a pull request. Please r
|
|||||||
|
|
||||||
Contributors are required to adhere to the project's [Code of Conduct](CODE-OF-CONDUCT.md).
|
Contributors are required to adhere to the project's [Code of Conduct](CODE-OF-CONDUCT.md).
|
||||||
|
|
||||||
|
## Generative AI
|
||||||
|
|
||||||
|
Generative AI is fast becoming a first-party feature in most development environments, including GitHub itself. If the majority of a code submission is made using Generative AI (e.g., agent-based or vibe coding) then **we will document that in the pull request.** All code submissions go through a rigourous review process regardless of the development workflow or submitter.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
KeePassXC code is licensed under GPL-2 or GPL-3. Additional licensing for third-party files is detailed in [COPYING](./COPYING).
|
KeePassXC code is licensed under GPL-2 or GPL-3. Additional licensing for third-party files is detailed in [COPYING](./COPYING).
|
||||||
|
|||||||
Reference in New Issue
Block a user