diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml new file mode 100644 index 0000000..cf6cca9 --- /dev/null +++ b/.github/workflows/lock.yml @@ -0,0 +1,24 @@ +name: Lock closed threads +# https://github.com/marketplace/actions/lock-threads + +on: + schedule: + - cron: "0 6 * * 2" + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +concurrency: + group: lock + +jobs: + lock: + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v5 + with: + process-only: issues, prs + issue-inactive-days: "90" + pr-inactive-days: "30" diff --git a/.github/workflows/semantic-pr-linter.yml b/.github/workflows/semantic-pr-linter.yml new file mode 100644 index 0000000..a4113f5 --- /dev/null +++ b/.github/workflows/semantic-pr-linter.yml @@ -0,0 +1,70 @@ +name: "Lint PR" + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +permissions: + pull-requests: write + +jobs: + main: + name: validate PR title + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5 + id: lint_pr_title + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + + # Configure additional validation for the subject based on a regex. + # We enforce that the subject starts with an uppercase character. + subjectPattern: ^([A-Z]).+$ + + # If `subjectPattern` is configured, you can use this property to override + # the default error message that is shown when the pattern doesn't match. + # The variables `subject` and `title` can be used within the message. + subjectPatternError: > + The subject "**{subject}**" found in the pull request title "*{title}*" + didn't match the configured pattern. Please ensure that the subject + starts with an uppercase character. + + # If the PR contains one of these newline-delimited labels, the + # validation is skipped. If you want to rerun the validation when + # labels change, you might want to use the `labeled` and `unlabeled` + # event triggers in your workflow. + ignoreLabels: | + bot + ignore-semantic-pull-request + + - uses: marocchino/sticky-pull-request-comment@v2 + # When the previous steps fails, the workflow would stop. By adding this + # condition you can continue the execution with the populated error message. + if: always() && (steps.lint_pr_title.outputs.error_message != null) + with: + header: pr-title-lint-error + message: > + ### Hey there and thank you for opening this pull request! ๐Ÿ‘‹๐Ÿผ + + It looks like your proposed **_Pull request title_** needs to be adjusted. + + >๐Ÿšฉ **Error** ยป ${{ steps.lint_pr_title.outputs.error_message }} + + #### Pull request title naming convention + + Our PR title name taxonomy is `type: Subject`, where **type** is typically + *feat*, *fix*, or *chore*, and **subject** is a phrase (proper noun) that starts with a capitalized letter. + The *chore* type usually has a subject that starts with an action verb like *Add* or *Update*. + Examples: `feat: Admin portal login`, `fix: Divide by zero bug in SMA`, and `chore: Update user docs`. + See the [Conventional Commits specification](https://www.conventionalcommits.org) for more information. + + # Delete a previous comment when the issue has been resolved + - if: ${{ steps.lint_pr_title.outputs.error_message == null }} + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: pr-title-lint-error + delete: true diff --git a/_includes/head-base-styles.html b/_includes/head-base-styles.html index baadf86..f0cdcc5 100644 --- a/_includes/head-base-styles.html +++ b/_includes/head-base-styles.html @@ -17,7 +17,6 @@ body { color: #adadad; background-color: #1b1b1b; - background-blend-mode: normal; display: flex; flex-direction: column; @@ -34,11 +33,11 @@ body { background-image: repeating-linear-gradient(-230deg, - hsl( 24, 42%, 12%) 00.000dvw 45.575dvw, - hsl(218, 26%, 12%) 45.575dvw 102.054dvw, - hsl( 45, 50%, 12%) 102.054dvw 126.099dvw, - hsl( 0, 0%, 12%) 126.099dvw 139.520dvw, - hsl( 96, 21%, 12%) 139.520dvw 201.312dvw); + hsl(24, 42%, 12%) 0 45.575dvw, + hsl(218, 26%, 12%) 45.575dvw 102.054dvw, + hsl(45, 50%, 12%) 102.054dvw 126.099dvw, + hsl(0, 1%, 12%) 126.099dvw 139.520dvw, + hsl(96, 21%, 12%) 139.520dvw 201.312dvw); } } @@ -47,11 +46,11 @@ body { background-image: repeating-linear-gradient(-230deg, - hsl( 24, 42%, 12%) 00.000dvw 37.979dvw, - hsl(218, 26%, 12%) 37.979dvw 85.045dvw, - hsl( 45, 50%, 12%) 85.045dvw 105.083dvw, - hsl( 0, 0%, 12%) 105.083dvw 116.267dvw, - hsl( 96, 21%, 12%) 116.267dvw 167.760dvw); + hsl(24, 42%, 12%) 0 37.979dvw, + hsl(218, 26%, 12%) 37.979dvw 85.045dvw, + hsl(45, 50%, 12%) 85.045dvw 105.083dvw, + hsl(0, 1%, 12%) 105.083dvw 116.267dvw, + hsl(96, 21%, 12%) 116.267dvw 167.760dvw); } } @@ -60,11 +59,11 @@ body { background-image: repeating-linear-gradient(-230deg, - hsl( 24, 42%, 12%) 00.000dvw 30.383dvw, - hsl(218, 26%, 12%) 30.383dvw 68.036dvw, - hsl( 45, 50%, 12%) 68.036dvw 84.066dvw, - hsl( 0, 0%, 12%) 84.066dvw 93.013dvw, - hsl( 96, 21%, 12%) 93.013dvw 134.208dvw); + hsl(24, 42%, 12%) 0 30.383dvw, + hsl(218, 26%, 12%) 30.383dvw 68.036dvw, + hsl(45, 50%, 12%) 68.036dvw 84.066dvw, + hsl(0, 1%, 12%) 84.066dvw 93.013dvw, + hsl(96, 21%, 12%) 93.013dvw 134.208dvw); } } diff --git a/_includes/head.html b/_includes/head.html index 99adadb..b0d8043 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -10,9 +10,6 @@ {%- seo -%} - - - {%- include head-base-styles.html -%}