snapshot of https://github.com/ory/kratos.git (master, 2026-09-15; blobs > 131072B omitted)
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (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:
385
.github/workflows/ci.yaml
vendored
Normal file
385
.github/workflows/ci.yaml
vendored
Normal file
@@ -0,0 +1,385 @@
|
||||
name: CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
tags:
|
||||
- "*"
|
||||
pull_request:
|
||||
|
||||
# Cancel in-progress runs in current workflow.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
CGO_ENABLED: "0"
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Run tests and lints
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:18
|
||||
env:
|
||||
POSTGRES_DB: postgres
|
||||
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/postgres?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 \
|
||||
|| true
|
||||
docker start cockroach
|
||||
name: Start CockroachDB
|
||||
- run: docker pull oryd/hydra:v2.2.0
|
||||
name: Pull Hydra
|
||||
- uses: ory/ci/checkout@master
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
check-latest: true
|
||||
go-version-file: go.mod
|
||||
- run: go list -json > go.list
|
||||
- name: Run nancy
|
||||
uses: sonatype-nexus-community/nancy-github-action@v1.0.3
|
||||
with:
|
||||
nancyVersion: v1.0.42
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
name: apt-get update
|
||||
- run: npm install
|
||||
name: Install node deps
|
||||
- name: Run golangci-lint
|
||||
if: ${{ github.ref_type != 'tag' }}
|
||||
uses: golangci/golangci-lint-action@v9
|
||||
env:
|
||||
GOGC: 100
|
||||
with:
|
||||
args: --timeout 10m0s
|
||||
version: latest
|
||||
only-new-issues: "true"
|
||||
- name: Build Kratos
|
||||
run: make install
|
||||
- name: Run go tests
|
||||
run: make test-coverage
|
||||
- name: Submit to Codecov
|
||||
run: |
|
||||
bash <(curl -s https://codecov.io/bash)
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
test-e2e:
|
||||
name: Run end-to-end tests
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:18
|
||||
env:
|
||||
POSTGRES_DB: postgres
|
||||
POSTGRES_PASSWORD: test
|
||||
POSTGRES_USER: test
|
||||
ports:
|
||||
- 5432:5432
|
||||
mysql:
|
||||
image: mysql:9.6
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: test
|
||||
ports:
|
||||
- 3306:3306
|
||||
mailslurper:
|
||||
image: oryd/mailslurper:latest-smtps
|
||||
ports:
|
||||
- 4436:4436
|
||||
- 4437:4437
|
||||
- 1025:1025
|
||||
env:
|
||||
TEST_DATABASE_POSTGRESQL: "postgres://test:test@localhost:5432/postgres?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"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
database: ["postgres", "sqlite"]
|
||||
# "cockroach", "mysql" TODO: fix tests and uncomment
|
||||
steps:
|
||||
- uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: "24"
|
||||
- run: |
|
||||
docker create --name cockroach -p 26257:26257 \
|
||||
cockroachdb/cockroach:latest-v25.4 start-single-node --insecure
|
||||
docker start cockroach
|
||||
name: Start CockroachDB
|
||||
- uses: browser-actions/setup-chrome@latest
|
||||
name: Install Chrome
|
||||
# - uses: browser-actions/setup-firefox@latest
|
||||
# name: Install Firefox
|
||||
# - uses: browser-actions/setup-geckodriver@latest
|
||||
# name: Install Geckodriver
|
||||
# with:
|
||||
# geckodriver-version: 0.32.0
|
||||
- uses: ory/ci/checkout@master
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
name: apt-get update
|
||||
- run: |
|
||||
npm ci
|
||||
cd test/e2e; npm ci
|
||||
npm i -g expo-cli
|
||||
name: Install node deps
|
||||
- run: |
|
||||
sudo apt-get install -y moreutils gettext
|
||||
name: Install tools
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v6
|
||||
with:
|
||||
check-latest: true
|
||||
go-version-file: go.mod
|
||||
- name: Install selfservice-ui-react-native
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: ory/kratos-selfservice-ui-react-native
|
||||
path: react-native-ui
|
||||
- run: |
|
||||
cd react-native-ui
|
||||
npm install
|
||||
|
||||
- name: Install selfservice-ui-node
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: ory/kratos-selfservice-ui-node
|
||||
path: node-ui
|
||||
- run: |
|
||||
cd node-ui
|
||||
npm install --legacy-peer-deps
|
||||
|
||||
- name: Install selfservice-ui-react-nextjs
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: ory/kratos-selfservice-ui-react-nextjs
|
||||
path: react-ui
|
||||
- run: |
|
||||
cd react-ui
|
||||
npm ci
|
||||
|
||||
- run: |
|
||||
echo 'RN_UI_PATH='"$(realpath react-native-ui)" >> "$GITHUB_ENV"
|
||||
echo 'NODE_UI_PATH='"$(realpath node-ui)" >> "$GITHUB_ENV"
|
||||
echo 'REACT_UI_PATH='"$(realpath react-ui)" >> "$GITHUB_ENV"
|
||||
- name: "Run Cypress tests"
|
||||
run: ./test/e2e/run.sh ${{ matrix.database }}
|
||||
env:
|
||||
RN_UI_PATH: react-native-ui
|
||||
NODE_UI_PATH: node-ui
|
||||
REACT_UI_PATH: react-ui
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
- if: failure()
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: cypress-${{ matrix.database }}-logs
|
||||
path: test/e2e/*.e2e.log
|
||||
|
||||
test-e2e-playwright:
|
||||
name: Run Playwright end-to-end tests
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:18
|
||||
env:
|
||||
POSTGRES_DB: postgres
|
||||
POSTGRES_PASSWORD: test
|
||||
POSTGRES_USER: test
|
||||
ports:
|
||||
- 5432:5432
|
||||
mysql:
|
||||
image: mysql:9.6
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: test
|
||||
ports:
|
||||
- 3306:3306
|
||||
mailslurper:
|
||||
image: oryd/mailslurper:latest-smtps
|
||||
ports:
|
||||
- 4436:4436
|
||||
- 4437:4437
|
||||
- 1025:1025
|
||||
env:
|
||||
TEST_DATABASE_POSTGRESQL: "postgres://test:test@localhost:5432/postgres?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"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
database: ["postgres", "cockroach", "sqlite", "mysql"]
|
||||
steps:
|
||||
- uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: "24"
|
||||
- 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
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
name: apt-get update
|
||||
- run: |
|
||||
npm ci
|
||||
cd test/e2e; npm ci
|
||||
npx playwright install --with-deps
|
||||
npm i -g expo-cli
|
||||
name: Install node deps
|
||||
- run: |
|
||||
sudo apt-get install -y moreutils gettext
|
||||
name: Install tools
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v6
|
||||
with:
|
||||
check-latest: true
|
||||
go-version-file: go.mod
|
||||
- run: go build .
|
||||
- name: Install selfservice-ui-react-native
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: ory/kratos-selfservice-ui-react-native
|
||||
path: react-native-ui
|
||||
- run: |
|
||||
cd react-native-ui
|
||||
npm install
|
||||
|
||||
- name: Install selfservice-ui-node
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: ory/kratos-selfservice-ui-node
|
||||
path: node-ui
|
||||
- run: |
|
||||
cd node-ui
|
||||
npm install --legacy-peer-deps
|
||||
|
||||
- name: Install selfservice-ui-react-nextjs
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: ory/kratos-selfservice-ui-react-nextjs
|
||||
path: react-ui
|
||||
- run: |
|
||||
cd react-ui
|
||||
npm ci
|
||||
|
||||
- run: |
|
||||
echo 'RN_UI_PATH='"$(realpath react-native-ui)" >> "$GITHUB_ENV"
|
||||
echo 'NODE_UI_PATH='"$(realpath node-ui)" >> "$GITHUB_ENV"
|
||||
echo 'REACT_UI_PATH='"$(realpath react-ui)" >> "$GITHUB_ENV"
|
||||
|
||||
- name: "Set up environment"
|
||||
run: test/e2e/run.sh --only-setup
|
||||
- name: "Run Playwright tests"
|
||||
run: |
|
||||
cd test/e2e
|
||||
npm run playwright
|
||||
env:
|
||||
DB: ${{ matrix.database }}
|
||||
RN_UI_PATH: react-native-ui
|
||||
NODE_UI_PATH: node-ui
|
||||
REACT_UI_PATH: react-ui
|
||||
- if: failure()
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: playwright-${{ matrix.database }}-logs
|
||||
path: test/e2e/*.e2e.log
|
||||
- if: failure()
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: playwright-test-results-${{ matrix.database }}-${{ github.sha }}
|
||||
path: |
|
||||
test/e2e/test-results/
|
||||
test/e2e/playwright-report/
|
||||
|
||||
docs-cli:
|
||||
runs-on: ubuntu-latest
|
||||
name: Build CLI docs
|
||||
needs:
|
||||
- test
|
||||
steps:
|
||||
- uses: ory/ci/docs/cli-next@master
|
||||
with:
|
||||
token: ${{ secrets.ORY_BOT_PAT }}
|
||||
arg: "."
|
||||
output-dir: docs/kratos
|
||||
|
||||
release:
|
||||
name: Generate release
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
needs:
|
||||
- test
|
||||
- test-e2e
|
||||
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: ${{ github.ref_type == 'tag' }}
|
||||
needs:
|
||||
- release
|
||||
steps:
|
||||
- uses: ory/ci/newsletter@master
|
||||
with:
|
||||
mailchimp_list_id: f605a41b53
|
||||
mailchmip_segment_id: 6479477
|
||||
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: ${{ github.ref_type == 'tag' }}
|
||||
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: ${{ github.ref_type == 'tag' }}
|
||||
environment: production
|
||||
steps:
|
||||
- uses: ory/ci/newsletter@master
|
||||
with:
|
||||
mailchimp_list_id: f605a41b53
|
||||
mailchmip_segment_id: 6479477
|
||||
mailchimp_api_key: ${{ secrets.MAILCHIMP_API_KEY }}
|
||||
draft: "false"
|
||||
ssh_key: ${{ secrets.ORY_BOT_SSH_KEY }}
|
||||
30
.github/workflows/closed_references.yml
vendored
Normal file
30
.github/workflows/closed_references.yml
vendored
Normal 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' }}
|
||||
68
.github/workflows/codeql-analysis.yml
vendored
Normal file
68
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
# 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]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [master]
|
||||
schedule:
|
||||
- cron: "26 21 * * 3"
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
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 }}
|
||||
config-file: ./.github/codeql/codeql-config.yml
|
||||
# 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
|
||||
59
.github/workflows/conventional_commits.yml
vendored
Normal file
59
.github/workflows/conventional_commits.yml
vendored
Normal 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
114
.github/workflows/cve-scan.yaml
vendored
Normal 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::"
|
||||
21
.github/workflows/format.yml
vendored
Normal file
21
.github/workflows/format.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
name: Format
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
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
25
.github/workflows/labels.yml
vendored
Normal 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
33
.github/workflows/milestone.yml
vendored
Normal 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 }}
|
||||
30
.github/workflows/pm.yml
vendored
Normal file
30
.github/workflows/pm.yml
vendored
Normal 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:
|
||||
project: 5
|
||||
organization: ory-corp
|
||||
token: ${{ secrets.ORY_BOT_PAT }}
|
||||
todoLabel: "Needs Triage"
|
||||
statusName: Status
|
||||
prStatusValue: "Needs Triage"
|
||||
issueStatusValue: "Needs Triage"
|
||||
includeEffort: "false"
|
||||
monthlyMilestoneName: Roadmap Monthly
|
||||
quarterlyMilestoneName: Roadmap
|
||||
47
.github/workflows/stale.yml
vendored
Normal file
47
.github/workflows/stale.yml
vendored
Normal 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"
|
||||
Reference in New Issue
Block a user