snapshot of https://github.com/ory/keto.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped

This commit is contained in:
upstream-mirror
2026-09-16 01:08:34 +05:00
commit 9456a4e922
2560 changed files with 120911 additions and 0 deletions

242
.github/workflows/ci.yaml vendored Normal file
View File

@@ -0,0 +1,242 @@
name: CI
on:
push:
branches:
- master
tags:
- "*"
pull_request:
merge_group:
# Cancel in-progress runs in current workflow.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
validate:
name: Run lints and checks
runs-on: ubuntu-latest
steps:
- uses: ory/ci/checkout@master
- uses: actions/setup-go@v6
with:
check-latest: true
go-version-file: go.mod
- name: Update npm to a non-buggy version
run: sudo npm i -g npm@9.5.0
- name: Lint buf
run: make buf-lint
- run: go list -json > go.list
- name: Run nancy
uses: sonatype-nexus-community/nancy-github-action@395e2fb168f674f96502e5652103d112899ea369
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
- name: Run golangci-lint
if: ${{ github.ref_type != 'tag' }}
uses: golangci/golangci-lint-action@v9
env:
GOGC: 100
with:
version: latest
args: --timeout 10m0s
only-new-issues: "true"
- name: Test documentation examples
run: make test-docs-samples
- name: Test OPL typelib
run: cd contrib/namespace-type-lib && npm ci && npm test
test:
name: Run tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:18
env:
POSTGRES_DB: keto
POSTGRES_PASSWORD: test
POSTGRES_USER: test
ports:
- 5432:5432
mysql:
image: mysql:9.6
env:
MYSQL_ROOT_PASSWORD: test
ports:
- 3306:3306
env:
TEST_DATABASE_POSTGRESQL: postgres://test:test@localhost:5432/keto?sslmode=disable
TEST_DATABASE_MYSQL: mysql://root:test@(localhost:3306)/mysql?parseTime=true&multiStatements=true
TEST_DATABASE_COCKROACHDB: cockroach://root@localhost:26257/defaultdb?sslmode=disable
steps:
- run: |
docker create --name cockroach -p 26257:26257 \
cockroachdb/cockroach:latest-v25.4 start-single-node --insecure
docker start cockroach
name: Start CockroachDB
- uses: ory/ci/checkout@master
- uses: actions/setup-go@v6
with:
check-latest: true
go-version-file: go.mod
- name: Test gen/go package
run: go -C gen/go test ./...
- name: Test Keto
run: |
go test -coverprofile coverage.txt ./...
grep -v "ory/keto/internal/httpclient" coverage.txt > coverage_cleared.txt
mv coverage_cleared.txt coverage.txt
- run: |
go tool goveralls -service=github -coverprofile=coverage.txt
env:
COVERALLS_TOKEN: ${{ github.token }}
test-race:
name: Run race tests
runs-on: ubuntu-latest
env:
CGO_ENABLED: "1"
steps:
- uses: ory/ci/checkout@master
- uses: actions/setup-go@v6
with:
check-latest: true
go-version-file: go.mod
- run: |
go test -race -short ./...
docs-cli:
runs-on: ubuntu-latest
name: Build CLI docs
needs:
- test
- test-race
- validate
steps:
- uses: ory/ci/docs/cli-next@master
with:
token: ${{ secrets.ORY_BOT_PAT }}
output-dir: docs/keto/cli
release:
name: Generate release
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
needs:
- test
- test-race
- validate
steps:
- uses: ory/ci/releaser@master
with:
token: ${{ secrets.ORY_BOT_PAT }}
goreleaser_key: ${{ secrets.GORELEASER_KEY }}
cosign_pwd: ${{ secrets.COSIGN_PWD }}
docker_username: ${{ secrets.DOCKERHUB_USERNAME }}
docker_password: ${{ secrets.DOCKERHUB_PASSWORD }}
newsletter-draft:
name: Draft newsletter
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
needs:
- release
steps:
- uses: ory/ci/newsletter@master
with:
mailchimp_list_id: f605a41b53
mailchmip_segment_id: 6479489
mailchimp_api_key: ${{ secrets.MAILCHIMP_API_KEY }}
draft: "true"
ssh_key: ${{ secrets.ORY_BOT_SSH_KEY }}
slack-approval-notification:
name: Pending approval Slack notification
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
needs:
- newsletter-draft
steps:
- uses: ory/ci/newsletter/slack-notify@master
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
newsletter-send:
name: Send newsletter
runs-on: ubuntu-latest
needs:
- newsletter-draft
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
environment: production
steps:
- uses: ory/ci/newsletter@master
with:
mailchimp_list_id: f605a41b53
mailchmip_segment_id: 6479489
mailchimp_api_key: ${{ secrets.MAILCHIMP_API_KEY }}
draft: "false"
ssh_key: ${{ secrets.ORY_BOT_SSH_KEY }}
buf:
name: Run buf actions
runs-on: ubuntu-latest
steps:
- uses: ory/ci/checkout@master
with:
path: current-repo
- uses: actions/setup-go@v6
with:
check-latest: true
go-version-file: current-repo/go.mod
- uses: actions/setup-node@v6
with:
node-version: "24"
- name: Lint and Build
run: |
make buf
working-directory: current-repo
- name: Format Docs (required because buf generates the proto docs)
run: |
make format
working-directory: current-repo
- name: Push build
run: |
git config --local user.email "60093411+ory-bot@users.noreply.github.com"
git config --local user.name "ory-bot"
git add gen
git commit -a -m "autogen: build buf" && git push "https://${GITHUB_ACTOR}:${{ secrets.ORY_BOT_PAT }}@github.com/${GITHUB_REPOSITORY}.git" "HEAD:${GITHUB_REF#"refs/heads/"}" || true
working-directory: current-repo
- if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }}
uses: ory/ci/checkout@master
with:
repository: ory/docs
path: docs
fetch-depth: 0
token: ${{ secrets.ORY_BOT_PAT }}
- if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }}
name: Push generated files to ory/docs
env:
GITHUB_TOKEN: ${{ secrets.ORY_BOT_PAT }}
run: |
echo "---
title: Protocol buffers API
---
<!-- This file is generated. Please edit the .proto files instead to update the documentation -->" > "docs/docs/keto/reference/proto-api.mdx"
cat "current-repo/gen/doc/buf.md" >> "docs/docs/keto/reference/proto-api.mdx"
cd docs
if git diff --exit-code; then
echo "No changes to commit"
exit 0
fi
git config --local user.email "60093411+ory-bot@users.noreply.github.com"
git config --local user.name "ory-bot"
git stash
git pull --rebase origin master
git stash apply
git add docs/keto/reference/proto-api.mdx
git commit -m "autogen: update Keto protobuf docs"
git push origin HEAD:master
shell: bash

30
.github/workflows/closed_references.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
# AUTO-GENERATED, DO NOT EDIT!
# Please edit the original at https://github.com/ory/meta/blob/master/templates/repository/common/.github/workflows/closed_references.yml
name: Closed Reference Notifier
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
issueLimit:
description: Max. number of issues to create
required: true
default: "5"
jobs:
find_closed_references:
if: github.repository_owner == 'ory'
runs-on: ubuntu-latest
name: Find closed references
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version: "24"
- uses: ory/closed-reference-notifier@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
issueLabels: upstream,good first issue,help wanted
issueLimit: ${{ github.event.inputs.issueLimit || '5' }}

72
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [master, legacy-0.5]
pull_request:
# The branches below must be a subset of the branches above
branches: [master]
merge_group:
schedule:
- cron: "39 6 * * 0"
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ["go", "javascript"]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v7
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v4
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4

View File

@@ -0,0 +1,59 @@
# AUTO-GENERATED, DO NOT EDIT!
# Please edit the original at https://github.com/ory/meta/blob/master/templates/repository/common/.github/workflows/conventional_commits.yml
name: Conventional commits
# This GitHub CI Action enforces that pull request titles follow conventional commits.
# More info at https://www.conventionalcommits.org.
#
# The Ory-wide defaults for commit titles and scopes are below.
# Your repository can add/replace elements via a configuration file at the path below.
# More info at https://github.com/ory/ci/blob/master/conventional_commit_config/README.md
on:
pull_request_target:
types:
- edited
- opened
- ready_for_review
- reopened
# pull_request: # for debugging, uses config in local branch but supports only Pull Requests from this repo
jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- id: config
uses: ory/ci/conventional_commit_config@master
with:
config_path: .github/conventional_commits.json
default_types: |
feat
fix
revert
docs
style
refactor
test
build
autogen
security
ci
chore
default_scopes: |
deps
docs
default_require_scope: false
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: ${{ steps.config.outputs.types }}
scopes: ${{ steps.config.outputs.scopes }}
requireScope: ${{ steps.config.outputs.requireScope }}
subjectPattern: ^(?![A-Z]).+$
subjectPatternError: |
The subject should start with a lowercase letter, yours is uppercase:
"{subject}"

114
.github/workflows/cve-scan.yaml vendored Normal file
View File

@@ -0,0 +1,114 @@
# AUTO-GENERATED, DO NOT EDIT!
# Please edit the original at https://github.com/ory/meta/blob/master/templates/repository/server/.github/workflows/cve-scan.yaml
name: Docker Image Scanners
on:
workflow_dispatch:
push:
branches:
- "master"
tags:
- "v*.*.*"
pull_request:
branches:
- "master"
permissions:
contents: read
security-events: write
jobs:
scanners:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Env
id: vars
shell: bash
run: |
# Store values in local variables
SHA_SHORT=$(git rev-parse --short HEAD)
REPO_NAME=${{ github.event.repository.name }}
IMAGE_NAME="oryd/${REPO_NAME}:${SHA_SHORT}"
# Output values for debugging
echo "Values to be set:"
echo "SHA_SHORT: ${SHA_SHORT}"
echo "REPO_NAME: ${REPO_NAME}"
echo "IMAGE_NAME: ${IMAGE_NAME}"
# Set GitHub Environment variables
echo "SHA_SHORT=${SHA_SHORT}" >> "${GITHUB_ENV}"
echo "IMAGE_NAME=${IMAGE_NAME}" >> "${GITHUB_ENV}"
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
with:
driver: docker
- name: Build images
shell: bash
run: |
IMAGE_TAG="${{ env.SHA_SHORT }}" make docker
- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Anchore Scanner
uses: anchore/scan-action@v7
id: grype-scan
with:
image: ${{ env.IMAGE_NAME }}
fail-build: true
severity-cutoff: high
add-cpes-if-none: true
- name: Inspect action SARIF report
shell: bash
if: ${{ always() }}
run: |
echo "::group::Anchore Scan Details"
jq '.runs[0].results' ${{ steps.grype-scan.outputs.sarif }}
echo "::endgroup::"
- name: Anchore upload scan SARIF report
if: always()
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: ${{ steps.grype-scan.outputs.sarif }}
- name: Kubescape scanner
uses: kubescape/github-action@main
id: kubescape
with:
image: ${{ env.IMAGE_NAME }}
verbose: true
format: pretty-printer
# can't whitelist CVE yet: https://github.com/kubescape/kubescape/pull/1568
severityThreshold: critical
- name: Dockle Linter
uses: erzz/dockle-action@v1
if: ${{ always() }}
with:
image: ${{ env.IMAGE_NAME }}
exit-code: 42
failure-threshold: high
- name: Hadolint
uses: hadolint/hadolint-action@v3.3.0
id: hadolint
if: ${{ always() }}
with:
dockerfile: .docker/Dockerfile-build
verbose: true
format: "json"
failure-threshold: "error"
- name: View Hadolint results
if: ${{ always() }}
shell: bash
run: |
echo "::group::Hadolint Scan Details"
echo "${HADOLINT_RESULTS}" | jq '.'
echo "::endgroup::"

22
.github/workflows/format.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: Format
on:
pull_request:
push:
merge_group:
env:
CGO_ENABLED: "0"
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
check-latest: true
go-version-file: go.mod
- run: make format
- name: Indicate formatting issues
run: git diff HEAD --exit-code --color

25
.github/workflows/labels.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
# AUTO-GENERATED, DO NOT EDIT!
# Please edit the original at https://github.com/ory/meta/blob/master/templates/repository/common/.github/workflows/labels.yml
name: Synchronize Issue Labels
on:
workflow_dispatch:
push:
branches:
- master
jobs:
milestone:
if: github.repository_owner == 'ory'
name: Synchronize Issue Labels
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Synchronize Issue Labels
uses: ory/label-sync-action@v0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
dry: false
forced: true

33
.github/workflows/milestone.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
# AUTO-GENERATED, DO NOT EDIT!
# Please edit the original at https://github.com/ory/meta/blob/master/templates/repository/server/.github/workflows/milestone.yml
name: Generate and Publish Milestone Document
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
milestone:
if: github.repository_owner == 'ory'
name: Generate and Publish Milestone Document
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
token: ${{ secrets.TOKEN_PRIVILEGED }}
- name: Milestone Documentation Generator
uses: ory/milestone-action@v0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
outputFile: docs/docs/milestones.md
- name: Commit Milestone Documentation
uses: EndBug/add-and-commit@v10.0.0
with:
message: "autogen(docs): update milestone document"
author_name: aeneasr
author_email: "3372410+aeneasr@users.noreply.github.com"
env:
GITHUB_TOKEN: ${{ secrets.TOKEN_PRIVILEGED }}

View File

@@ -0,0 +1,40 @@
name: Publish gRPC client to npm
on:
release:
types:
- created
workflow_dispatch:
inputs:
version:
required: true
description: The version to release
jobs:
btp:
runs-on: ubuntu-latest
name: Publish
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
- run: sudo npm i -g npm@7
- name: Bump version
run: |-
cd gen/es
jq '.version = (env.RELEASE_VERSION | sub("(^refs/tags/v)|(^v)"; ""))' package.json > package.json.tmp \
&& mv package.json.tmp package.json
env:
RELEASE_VERSION: ${{ github.event.inputs.version || github.ref }}
- run: |-
git config --global user.email "60093411+ory-bot@users.noreply.github.com"
git config --global user.name "ory-bot"
git add gen/es/package.json
git commit -m "autogen: bump node gRPC client version"
- run: |-
cd gen/es
npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN_AENEASR }}

View File

@@ -0,0 +1,40 @@
name: Publish OPL typelib to npm
on:
release:
types:
- created
workflow_dispatch:
inputs:
version:
required: true
description: The version to release
jobs:
btp:
runs-on: ubuntu-latest
name: Publish
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
- run: sudo npm i -g npm@10
- name: Bump version
run: |-
cd contrib/namespace-type-lib
jq '.version = (env.RELEASE_VERSION | sub("(^refs/tags/v)|(^v)"; ""))' package.json > package.json.tmp \
&& mv package.json.tmp package.json
env:
RELEASE_VERSION: ${{ github.event.inputs.version || github.ref }}
- run: |-
git config --global user.email "60093411+ory-bot@users.noreply.github.com"
git config --global user.name "ory-bot"
git add contrib/namespace-type-lib/package.json
git commit -m "autogen: bump OPL typelib"
- run: |-
cd contrib/namespace-type-lib
npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN_AENEASR }}

30
.github/workflows/pm.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Synchronize with product board
on:
issues:
types:
- opened
pull_request:
types:
- opened
- ready_for_review
jobs:
automate:
if: github.event.pull_request.head.repo.fork == false
name: Add issue to project
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: ory-corp/planning-automation-action@v0.2
with:
organization: ory-corp
project: 5
token: ${{ secrets.ORY_BOT_PAT }}
todoLabel: "Needs Triage"
statusName: Status
prStatusValue: "Needs Triage"
issueStatusValue: "Needs Triage"
includeEffort: "false"
monthlyMilestoneName: Roadmap Monthly
quarterlyMilestoneName: Roadmap

View File

@@ -0,0 +1,41 @@
name: Release the go gRPC client as `gen/go/$VERSION`
on:
workflow_dispatch:
inputs:
version:
description:
The version to release. Should be a patch of the latest Keto release.
required: true
release:
types:
- created
env:
CGO_ENABLED: "0"
jobs:
tag:
# this is set on dispatch this should prevent the action from triggering itself
if: github.event.inputs.version || !startsWith(github.ref, 'gen/go/')
runs-on: ubuntu-latest
name: Publish
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
check-latest: true
go-version-file: go.mod
- name: Download dependencies
run: go -C gen/go mod tidy
- name: Test
run: go -C gen/go test ./...
- name: Create git tag
run: |
git config --global user.email "60093411+ory-bot@users.noreply.github.com"
git config --global user.name "ory-bot"
RELEASE_VERSION="$(sed 's#^refs/tags/##' <(echo "$RELEASE_REF"))"
git tag -a "gen/go/$RELEASE_VERSION" -m "Release $RELEASE_VERSION of the go gRPC Client. See CHANGELOG.md for more info."
git push origin "gen/go/$RELEASE_VERSION"
env:
RELEASE_REF: ${{ github.event.inputs.version || github.ref }}

View File

@@ -0,0 +1,30 @@
name:
Run full e2e test of the migration to single table persister (see
https://github.com/ory/keto/issues/628)
on:
workflow_dispatch:
push:
branches:
- feat/persistence-migration-path
env:
CGO_ENABLED: "0"
jobs:
test-migration:
runs-on: ubuntu-latest
name: Test Migration
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
check-latest: true
go-version-file: go.mod
- name: Run test script
run: ./scripts/single-table-migration-e2e.sh
- uses: actions/upload-artifact@v7
if: failure()
with:
name: sqlite-db
path: migrate_e2e.sqlite

47
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
# AUTO-GENERATED, DO NOT EDIT!
# Please edit the original at https://github.com/ory/meta/blob/master/templates/repository/common/.github/workflows/stale.yml
name: "Close Stale Issues"
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
stale:
if: github.repository_owner == 'ory'
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v10
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: |
Hello contributors!
I am marking this issue as stale as it has not received any engagement from the community or maintainers for a year. That does not imply that the issue has no merit! If you feel strongly about this issue
- open a PR referencing and resolving the issue;
- leave a comment on it and discuss ideas on how you could contribute towards resolving it;
- leave a comment and describe in detail why this issue is critical for your use case;
- open a new issue with updated details and a plan for resolving the issue.
Throughout its lifetime, Ory has received over 10.000 issues and PRs. To sustain that growth, we need to prioritize and focus on issues that are important to the community. A good indication of importance, and thus priority, is activity on a topic.
Unfortunately, [burnout](https://www.jeffgeerling.com/blog/2016/why-i-close-prs-oss-project-maintainer-notes) has become a [topic](https://opensource.guide/best-practices/#its-okay-to-hit-pause) of [concern](https://docs.brew.sh/Maintainers-Avoiding-Burnout) amongst open-source projects.
It can lead to severe personal and health issues as well as [opening](https://haacked.com/archive/2019/05/28/maintainer-burnout/) catastrophic [attack vectors](https://www.gradiant.org/en/blog/open-source-maintainer-burnout-as-an-attack-surface/).
The motivation for this automation is to help prioritize issues in the backlog and not ignore, reject, or belittle anyone.
If this issue was marked as stale erroneously you can exempt it by adding the `backlog` label, assigning someone, or setting a milestone for it.
Thank you for your understanding and to anyone who participated in the conversation! And as written above, please do participate in the conversation if this topic is important to you!
Thank you 🙏✌️
stale-issue-label: "stale"
exempt-issue-labels: "bug,blocking,docs,backlog"
days-before-stale: 365
days-before-close: 30
exempt-milestones: true
exempt-assignees: true
only-pr-labels: "stale"