mirror of
https://github.com/syncthing/syncthing.git
synced 2024-11-15 18:08:45 -07:00
94 lines
2.7 KiB
YAML
94 lines
2.7 KiB
YAML
|
# This is the policy-bot configuration for this repository. It controls
|
||
|
# which approvals are required for any given pull request. The format is
|
||
|
# described at https://github.com/palantir/policy-bot. The syntax of the
|
||
|
# policy can be verified by the bot:
|
||
|
# curl https://pb.syncthing.net/api/validate -X PUT -T .policy.yml
|
||
|
|
||
|
# The policy below is what is required for any pull request.
|
||
|
policy:
|
||
|
approval:
|
||
|
- subject is conventional commit
|
||
|
- project metadata requires maintainer approval
|
||
|
- or:
|
||
|
- is approved by a syncthing contributor
|
||
|
- is a translation or dependency update by a contributor
|
||
|
- is a trivial change by a contributor
|
||
|
|
||
|
# Additionally, contributors can disapprove of a PR
|
||
|
disapproval:
|
||
|
requires:
|
||
|
teams:
|
||
|
- syncthing/contributors
|
||
|
|
||
|
# The rules for the policy are described below.
|
||
|
|
||
|
approval_rules:
|
||
|
|
||
|
# All commits (PRs before squashing) should have a valid conventional
|
||
|
# commit type subject.
|
||
|
- name: subject is conventional commit
|
||
|
requires:
|
||
|
conditions:
|
||
|
title:
|
||
|
matches:
|
||
|
- '^(feat|fix|docs|chore|refactor|build): [a-z].+'
|
||
|
- '^(feat|fix|docs|chore|refactor|build)\(\w+(, \w+)*\): [a-z].+'
|
||
|
|
||
|
# Changes to important project metadata and documentation, including this
|
||
|
# policy, require signoff by a maintainer
|
||
|
- name: project metadata requires maintainer approval
|
||
|
if:
|
||
|
changed_files:
|
||
|
paths:
|
||
|
- ^[^/]+\.md
|
||
|
- ^\.policy\.yml
|
||
|
- ^\.github/
|
||
|
- ^LICENSE
|
||
|
requires:
|
||
|
count: 1
|
||
|
teams:
|
||
|
- syncthing/maintainers
|
||
|
|
||
|
# Regular pull requests require approval by an active contributor
|
||
|
- name: is approved by a syncthing contributor
|
||
|
requires:
|
||
|
count: 1
|
||
|
teams:
|
||
|
- syncthing/contributors
|
||
|
|
||
|
# Changes to some files (translations, dependencies, compatibility) do not
|
||
|
# require approval if they were proposed by a contributor and have a
|
||
|
# matching commit subject
|
||
|
- name: is a translation or dependency update by a contributor
|
||
|
if:
|
||
|
only_changed_files:
|
||
|
paths:
|
||
|
- ^gui/default/assets/lang/
|
||
|
- ^go\.mod$
|
||
|
- ^go\.sum$
|
||
|
- ^compat\.yaml$
|
||
|
title:
|
||
|
matches:
|
||
|
- '^chore\(gui\):'
|
||
|
- '^build\(deps\):'
|
||
|
- '^build\(compat\):'
|
||
|
has_author_in:
|
||
|
teams:
|
||
|
- syncthing/contributors
|
||
|
|
||
|
# If the change is small and the label "trivial" is added, we accept that
|
||
|
# on trust. These PRs can be audited after the fact as appropriate.
|
||
|
# Features are not trivial.
|
||
|
- name: is a trivial change by a contributor
|
||
|
if:
|
||
|
modified_lines:
|
||
|
total: "< 25"
|
||
|
title:
|
||
|
not_matches:
|
||
|
- '^feat'
|
||
|
has_labels:
|
||
|
- trivial
|
||
|
has_author_in:
|
||
|
teams:
|
||
|
- syncthing/contributors
|