# PR title linting. # # FORMAT (Conventional Commits 1.0.0): # # [optional scope]: # [optional body] # [optional footer(s)] # # Examples: # feat(core): add multi‐tenant support # fix(cli): resolve flag parsing error # docs: update API usage examples # docs(openai): update API usage examples # # Allowed Types: # * feat — a new feature (MINOR) # * fix — a bug fix (PATCH) # * docs — documentation only changes (either in /docs or code comments) # * style — formatting, linting, etc.; no code change or typing refactors # * refactor — code change that neither fixes a bug nor adds a feature # * perf — code change that improves performance # * test — adding tests or correcting existing # * build — changes that affect the build system/external dependencies # * ci — continuous integration/configuration changes # * chore — other changes that don't modify source or test files # * revert — reverts a previous commit # * release — prepare a new release # # Allowed Scopes (optional): # core, cli, langchain, langchain_v1, langchain_legacy, standard-tests, # text-splitters, docs, anthropic, chroma, deepseek, exa, fireworks, groq, # huggingface, mistralai, nomic, ollama, openai, perplexity, prompty, qdrant, # xai, infra # # Rules: # 1. The 'Type' must start with a lowercase letter. # 2. Breaking changes: append "!" after type/scope (e.g., feat!: drop x support) # # Enforces Conventional Commits format for pull request titles to maintain a clear and # machine-readable change history. name: '🏷️ PR Title Lint' permissions: pull-requests: read on: pull_request: types: [opened, edited, synchronize] jobs: # Validates that PR title follows Conventional Commits 1.0.0 specification lint-pr-title: name: 'validate format' runs-on: ubuntu-latest steps: - name: '✅ Validate Conventional Commits Format' uses: amannn/action-semantic-pull-request@v6 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: types: | feat fix docs style refactor perf test build ci chore revert release scopes: | core cli langchain langchain_v1 langchain_legacy standard-tests text-splitters docs anthropic chroma deepseek exa fireworks groq huggingface mistralai nomic ollama openai perplexity prompty qdrant xai infra requireScope: false disallowScopes: | release [A-Z]+ ignoreLabels: | ignore-lint-pr-title