From 76df22903a91b09a985a1e59a8629416e9463cc0 Mon Sep 17 00:00:00 2001 From: william051200 Date: Mon, 20 Apr 2026 17:23:55 +0800 Subject: [PATCH] Add CONTRIBUTING.md with branch protection and development workflow --- CONTRIBUTING.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..c24bd86 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,66 @@ +# Contributing to ArtifactLens + +## Branch Protection + +The `main` branch is protected. Direct pushes are not allowed. + +All changes must go through a pull request: + +1. **Create a feature branch** from `main` + ```bash + git checkout main + git pull + git checkout -b your-branch-name + ``` + +2. **Make your changes**, commit, and push + ```bash + git add . + git commit -m "Describe your change" + git push origin your-branch-name + ``` + +3. **Open a Pull Request** on GitHub against `main` + +4. **Wait for CI** — the pipeline must pass (syntax check + build) + +5. **Request review** — a project maintainer must approve before merging + +## CI Pipeline + +Every push and PR triggers the CI workflow which: +- Runs syntax checks on all Python source files +- Validates that all modules import correctly +- Builds the executable via PyInstaller +- Uploads the build artifact + +PRs cannot be merged until CI passes. + +## Development Setup + +```bash +# Clone the repo +git clone https://github.com/william051200/azure-artifacts-search.git +cd azure-artifacts-search + +# Create a virtual environment +python -m venv venv +venv\Scripts\activate + +# Install dependencies +pip install -r requirements.txt +``` + +## Running the App + +```bash +python -m search_artifact_app +``` + +## Building the Executable + +```bash +build.bat +``` + +The output will be at `dist\ArtifactLens\ArtifactLens.exe`.