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 -%}