diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index e18ee67..211caab 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -23,30 +23,29 @@ defaults:
shell: bash
jobs:
- dotnet-format:
+ os-matrix:
runs-on: ubuntu-latest
+ outputs:
+ matrix: ${{ steps.lookup.outputs.matrix }}
steps:
- name: π€ checkout
uses: actions/checkout@v2
- with:
- submodules: recursive
- fetch-depth: 0
-
- - name: β dotnet
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: '6.0.x'
-
- - name: β ensure format
- run: dotnet format --verify-no-changes -v:diag --exclude ~/.nuget
+
+ - name: π lookup
+ id: lookup
+ shell: pwsh
+ run: |
+ $path = './.github/workflows/os-matrix.json'
+ $os = if (test-path $path) { cat $path } else { '["ubuntu-latest"]' }
+ echo "::set-output name=matrix::$os"
build:
+ needs: os-matrix
name: build-${{ matrix.os }}
- needs: dotnet-format
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [windows-latest, ubuntu-latest, macOS-latest]
+ os: ${{ fromJSON(needs.os-matrix.outputs.matrix) }}
steps:
- name: π€ checkout
uses: actions/checkout@v2
@@ -83,3 +82,21 @@ jobs:
run: |
dotnet tool install -g --version 4.0.18 sleet
sleet push bin --config none -f --verbose -p "SLEET_FEED_CONTAINER=nuget" -p "SLEET_FEED_CONNECTIONSTRING=${{ secrets.SLEET_CONNECTION }}" -p "SLEET_FEED_TYPE=azure" || echo "No packages found"
+
+ dotnet-format:
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: π€ checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+ fetch-depth: 0
+
+ - name: β dotnet
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: '6.0.x'
+
+ - name: β ensure format
+ run: dotnet format --verify-no-changes -v:diag --exclude ~/.nuget
diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml
index b535f6e..996f1a7 100644
--- a/.github/workflows/changelog.yml
+++ b/.github/workflows/changelog.yml
@@ -1,29 +1,28 @@
ο»Ώname: changelog
on:
+ workflow_dispatch:
release:
types: [released]
- workflow_dispatch:
-
-env:
- GH_TOKEN: ${{ secrets.GH_TOKEN }}
jobs:
changelog:
runs-on: ubuntu-latest
steps:
- - name: π GH_TOKEN
- if: env.GH_TOKEN == ''
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: echo "GH_TOKEN=${GITHUB_TOKEN}" >> $GITHUB_ENV
-
+ - name: π€ defaults
+ uses: devlooped/actions-bot@v1
+ with:
+ name: ${{ secrets.BOT_NAME }}
+ email: ${{ secrets.BOT_EMAIL }}
+ gh_token: ${{ secrets.GH_TOKEN }}
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+
- name: π€ checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
ref: main
token: ${{ env.GH_TOKEN }}
-
+
- name: β ruby
uses: ruby/setup-ruby@v1
with:
@@ -32,11 +31,9 @@ jobs:
- name: β changelog
run: |
gem install github_changelog_generator
- github_changelog_generator --user ${GITHUB_REPOSITORY%/*} --project ${GITHUB_REPOSITORY##*/} --token ${{ secrets.GITHUB_TOKEN }} --o changelog.md --config-file .github/.github_changelog_generator
+ github_changelog_generator --user ${GITHUB_REPOSITORY%/*} --project ${GITHUB_REPOSITORY##*/} --token $GH_TOKEN --o changelog.md --config-file .github/.github_changelog_generator
- name: π changelog
run: |
- git config --local user.name github-actions
- git config --local user.email github-actions@github.com
git add changelog.md
- (git commit -m "π Update changelog with ${GITHUB_REF#refs/*/}" && git push) || echo "Done"
+ (git commit -m "π Update changelog with ${GITHUB_REF#refs/*/}" && git push) || echo "Done"
\ No newline at end of file
diff --git a/.github/workflows/dotnet-file.yml b/.github/workflows/dotnet-file.yml
index 66289e2..6ebf30f 100644
--- a/.github/workflows/dotnet-file.yml
+++ b/.github/workflows/dotnet-file.yml
@@ -9,18 +9,25 @@ on:
env:
DOTNET_NOLOGO: true
- GH_TOKEN: ${{ secrets.GH_TOKEN }}
jobs:
sync:
runs-on: windows-latest
steps:
- - name: π GH_TOKEN
- if: env.GH_TOKEN == ''
- shell: bash
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: echo "GH_TOKEN=${GITHUB_TOKEN}" >> $GITHUB_ENV
+ - name: π€ defaults
+ uses: devlooped/actions-bot@v1
+ with:
+ name: ${{ secrets.BOT_NAME }}
+ email: ${{ secrets.BOT_EMAIL }}
+ gh_token: ${{ secrets.GH_TOKEN }}
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: π€ checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ ref: main
+ token: ${{ env.GH_TOKEN }}
- name: β rate
shell: pwsh
@@ -38,13 +45,6 @@ jobs:
echo "Rate limit has reset to $($rate.remaining) requests"
}
- - name: π€ checkout
- uses: actions/checkout@v2
- with:
- fetch-depth: 0
- ref: main
- token: ${{ env.GH_TOKEN }}
-
- name: π sync
shell: pwsh
run: |
@@ -63,16 +63,24 @@ jobs:
echo 'No changelog was generated'
}
+ - name: +Mα includes
+ uses: devlooped/actions-include@v1
+ with:
+ validate: false
+
- name: β pull request
uses: peter-evans/create-pull-request@v3
+ continue-on-error: true
with:
base: main
branch: dotnet-file-sync
delete-branch: true
labels: dependencies
+ author: ${{ env.BOT_AUTHOR }}
+ committer: ${{ env.BOT_AUTHOR }}
commit-message: β¬οΈ Bump files with dotnet-file sync
${{ env.CHANGES }}
- title: "Bump files with dotnet-file sync"
+ title: "β¬οΈ Bump files with dotnet-file sync"
body: ${{ env.CHANGES }}
token: ${{ env.GH_TOKEN }}
diff --git a/.github/workflows/includes.yml b/.github/workflows/includes.yml
index 230127e..04dc2ba 100644
--- a/.github/workflows/includes.yml
+++ b/.github/workflows/includes.yml
@@ -1,4 +1,4 @@
-name: +MβΌ includes
+name: +Mα includes
on:
workflow_dispatch:
push:
@@ -6,16 +6,27 @@ on:
- 'main'
paths:
- '**.md'
+ - '!changelog.md'
jobs:
includes:
runs-on: ubuntu-latest
steps:
+ - name: π€ defaults
+ uses: devlooped/actions-bot@v1
+ with:
+ name: ${{ secrets.BOT_NAME }}
+ email: ${{ secrets.BOT_EMAIL }}
+ gh_token: ${{ secrets.GH_TOKEN }}
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+
- name: π€ checkout
uses: actions/checkout@v2
+ with:
+ token: ${{ env.GH_TOKEN }}
- - name: +MβΌ includes
- uses: devlooped/actions-include@v4
+ - name: +Mα includes
+ uses: devlooped/actions-include@v1
- name: β pull request
uses: peter-evans/create-pull-request@v3
@@ -23,6 +34,10 @@ jobs:
base: main
branch: markdown-includes
delete-branch: true
- commit-message: +MβΌ includes
- title: +MβΌ includes
- body: +MβΌ includes
+ labels: docs
+ author: ${{ env.BOT_AUTHOR }}
+ committer: ${{ env.BOT_AUTHOR }}
+ commit-message: +Mα includes
+ title: +Mα includes
+ body: +Mα includes
+ token: ${{ env.GH_TOKEN }}
diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml
index b3ab8ee..d31e1f0 100644
--- a/.github/workflows/release-notes.yml
+++ b/.github/workflows/release-notes.yml
@@ -42,13 +42,13 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- $id = iwr "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/releases/tags/$env:CURRENT_TAG" |
+ $headers = @{ 'Accept'='application/vnd.github.v3+json;charset=utf-8'; 'Authorization' = "bearer $env:GITHUB_TOKEN" }
+ $id = iwr "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/releases/tags/$env:CURRENT_TAG" -Headers $headers |
select -ExpandProperty Content |
ConvertFrom-Json |
select -ExpandProperty id
$notes = (Get-Content .\changelog.md | where { !($_ -like '\*') } | %{ $_.replace('\', '\\').replace('"', "'").replace('undefined', 'un-defined') }) -join '\n'
- $headers = @{ 'Accept'='application/vnd.github.v3+json;charset=utf-8'; 'Authorization' = "bearer $env:GITHUB_TOKEN" }
$body = '{ "body":"' + $notes + '" }'
# ensure we can convert to json
diff --git a/.github/workflows/sponsor.yml b/.github/workflows/sponsor.yml
new file mode 100644
index 0000000..f74e990
--- /dev/null
+++ b/.github/workflows/sponsor.yml
@@ -0,0 +1,19 @@
+name: sponsor β€οΈ
+on:
+ issues:
+ types: [opened, edited, reopened]
+ pull_request:
+ types: [opened, edited, synchronize, reopened]
+
+jobs:
+ sponsor:
+ runs-on: ubuntu-latest
+ if: ${{ !endsWith(github.event.sender.login, '[bot]') && !endsWith(github.event.sender.login, 'bot') }}
+ steps:
+ - name: π€ checkout
+ uses: actions/checkout@v2
+
+ - name: β€οΈ sponsor
+ uses: devlooped/actions-sponsor@main
+ with:
+ token: ${{ secrets.GH_TOKEN }}
diff --git a/.github/workflows/sponsors.ps1 b/.github/workflows/sponsors.ps1
deleted file mode 100644
index 791fd7c..0000000
--- a/.github/workflows/sponsors.ps1
+++ /dev/null
@@ -1,59 +0,0 @@
-$event = Get-Content -Path $env:GITHUB_EVENT_PATH | ConvertFrom-Json
-$author = $event.issue ? $event.issue.user.node_id : $event.pull_request.user.node_id
-
-if ($author -eq $null) {
- throw 'No user id found'
-}
-
-gh auth status
-
-echo "Looking up sponsorship from $env:GITHUB_ACTOR ..."
-
-$query = gh api graphql --paginate -f owner='devlooped' -f query='
-query($owner: String!, $endCursor: String) {
- organization (login: $owner) {
- sponsorshipsAsMaintainer (first: 100, after: $endCursor) {
- nodes {
- sponsorEntity {
- ... on Organization { id, name }
- ... on User { id, name }
- }
- tier { monthlyPriceInDollars }
- }
- pageInfo {
- hasNextPage
- endCursor
- }
- }
- }
-}
-'
-
-$amount =
- $query |
- ConvertFrom-Json |
- select @{ Name='nodes'; Expression={$_.data.organization.sponsorshipsAsMaintainer.nodes}} |
- select -ExpandProperty nodes |
- where { $_.sponsorEntity.id -eq $author } |
- select -ExpandProperty tier |
- select -ExpandProperty monthlyPriceInDollars
-
-if ($null -eq $amount) {
- echo "Author is not a sponsor! Nothing left to do."
- return
-}
-
-echo "Author is a sponsor!"
-
-$headers = @{ 'Accept'='application/vnd.github.v3+json;charset=utf-8'; 'Authorization' = "bearer $env:GH_TOKEN" }
-
-# Try creating the labels, ignore errors (i.e. already created)
-iwr -Body '{ "name":"sponsor :purple_heart:", "color":"ea4aaa", "description":"sponsor" }' "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/labels" -Method Post -Headers $headers -SkipHttpErrorCheck -UseBasicParsing | select -ExpandProperty StatusCode
-iwr -Body '{ "name":"sponsor :yellow_heart:", "color":"ea4aaa", "description":"sponsor++" }' "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/labels" -Method Post -Headers $headers -SkipHttpErrorCheck -UseBasicParsing | select -ExpandProperty StatusCode
-
-$number = $event.issue ? $event.issue.number : $event.pull_request.number
-$labels = $amount -ge 100 ? '{"labels":["sponsor :yellow_heart:"]}' : '{"labels":["sponsor :purple_heart:"]}'
-
-iwr -Body $labels "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/issues/$number/labels" -Method Post -Headers $headers -SkipHttpErrorCheck -UseBasicParsing | select -ExpandProperty StatusCode
-
-echo 'Label applied'
diff --git a/.github/workflows/sponsors.yml b/.github/workflows/sponsors.yml
deleted file mode 100644
index 23158a7..0000000
--- a/.github/workflows/sponsors.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# Runs on new issues/PRs and applies sponsor labels
-
-name: sponsors
-on:
- issues:
- types: [opened]
-
-jobs:
- sponsors:
- runs-on: windows-latest
- steps:
- - name: π€ checkout
- uses: actions/checkout@v2
-
- - name: π½ gh
- run: |
- iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
- scoop install gh
-
- - name: π sponsors
- run: ./.github/workflows/sponsors.ps1
- env:
- GH_TOKEN: ${{ secrets.DEVLOOPED_TOKEN }}
diff --git a/.netconfig b/.netconfig
index a91e1ff..7b3a013 100644
--- a/.netconfig
+++ b/.netconfig
@@ -48,9 +48,9 @@
sha = 0683ee777d7d878d4bf013d7deea352685135a05
[file ".github/workflows/build.yml"]
url = https://github.com/devlooped/oss/blob/main/.github/workflows/build.yml
- etag = 4e65025ab77d15766520234d3a9953ff4f1eea91620e1080f10909de19804877
+ etag = 546728274c46d85038c67a385df421cb8865552673ada35fcf0b30ff4f1c7548
weak
- sha = e19ed3228a0ac7f64a43197241a788fb224a683f
+ sha = cf8e33983b111d06b8e3a89fce5d8b8d97750f59
[file ".gitignore"]
url = https://github.com/devlooped/oss/blob/main/.gitignore
etag = 1c1705a3f0ed65e33c9133996ebaa100aa445a8b968b2904ad48fef938702006
@@ -116,13 +116,13 @@
sha = a0f58a6d63e48ae6e55944c556d0bc94476dc8df
[file ".github/workflows/changelog.yml"]
url = https://github.com/devlooped/oss/blob/main/.github/workflows/changelog.yml
- sha = be8f625e4cf5c2c572c7e56ba6dc4c4935ab0c00
- etag = 202803313c2792cb09d9cb8041fe4b39e550e26c90971a57b92534c599a596a7
+ sha = 5406d907e0bf87dd1b4375f2ae2279dd775ed672
+ etag = 034c69fefe727b412a52e49964646131b899d6e7bb1576fe9d4a4db9208675ff
weak
[file ".github/workflows/dotnet-file.yml"]
url = https://github.com/devlooped/oss/blob/main/.github/workflows/dotnet-file.yml
- sha = ef47d782b45dbf3dc7f47f39168a2eed9c536a40
- etag = 41db5ebfb3f06bf2a9d55919f50a10fa80057a0d636532beac3b77464c3c1b5d
+ sha = b97b8f19569fa1b93cece4b22afab0e838693c5a
+ etag = a9d246d40ee9cf9796fe694835b787cba415f4f23e919c6a763dd3ebfa607681
weak
[file ".github/workflows/publish.yml"]
url = https://github.com/devlooped/oss/blob/main/.github/workflows/publish.yml
@@ -134,24 +134,14 @@
skip
[file ".github/workflows/release-notes.yml"]
url = https://github.com/devlooped/oss/blob/main/.github/workflows/release-notes.yml
- sha = be8f625e4cf5c2c572c7e56ba6dc4c4935ab0c00
- etag = d1de9cb9c403ed8632d22d4cc153ae63b075266b9ce638b9ac73fd47dd2bccc1
+ sha = a922d0300a188bbd872bcf8ca48c6b7a13dee5df
+ etag = 5db902d761d80de182417cfbece00cbb6d1fa4b99a945b3a97c57f58f7043b5d
weak
[file ".github/workflows/pages.yml"]
url = https://github.com/devlooped/.github/blob/main/.github/workflows/pages.yml
sha = e8f3774884afda36ac177c4193929d24d7901de9
etag = 42fdc888e07b492cccc6fd29972bd9ea6f13691a3fdf057e07f3f8eec9330b7a
weak
-[file ".github/workflows/sponsors.ps1"]
- url = https://github.com/devlooped/.github/blob/main/.github/workflows/sponsors.ps1
- sha = 11f5c27cfdb304436ef0b7ee27ff333cda31ef65
- etag = 57a303125f3367b68ad0700d89ff4ba57cb29b33b303903488c9c8638d0bf735
- weak
-[file ".github/workflows/sponsors.yml"]
- url = https://github.com/devlooped/.github/blob/main/.github/workflows/sponsors.yml
- sha = 8b6384e91fdfcf8f3cc9b3b262a9ca2a1095d06a
- etag = 2c05a753600913f546c37a2ea9393b3ede3b6f8473e5c2d53462aa7342af7078
- weak
[file "Gemfile"]
url = https://github.com/devlooped/.github/blob/main/Gemfile
sha = f2dc1370469bec1b2d32d82faf659b050cdc7e2a
@@ -174,13 +164,16 @@
weak
[file ".github/workflows/includes.yml"]
url = https://github.com/devlooped/oss/blob/main/.github/workflows/includes.yml
- sha = 66caefba98939c5c0505ab536417aa4ec4eec240
- etag = acdb356278d3f41cf3cd4620ff81d16caddd2571ccfee73f5a86ffbd4f8c9944
- weak
-[file "docs/footer.md"]
- url = https://github.com/devlooped/oss/blob/main/docs/footer.md
- sha = 56086e5645a50f8dc837bab919f7c12f6c50e070
- etag = 6e45ba613fdc949a6a5d84ed8efd5cc1b36d13bb0fd965e206fd5e92b604e2d0
+ sha = 5d05e541d7b028d64b044c5b9cc80afa19dc0de0
+ etag = c73a2aa293ec204e46771a99b095566082cad7989595ea725e5d76b27fe90894
weak
[file "docs/sponsors.md"]
url = https://github.com/devlooped/sponsors/blob/main/sponsors.md
+ sha = 04f5dfbc23ea499703f23bd547e6fcb61dbfcbf8
+ etag = f9cbf44977602aaeb14aa5e3fbfebfb3199beb405ca46af57edd108f25653d08
+ weak
+[file ".github/workflows/sponsor.yml"]
+ url = https://github.com/devlooped/.github/blob/main/.github/workflows/sponsor.yml
+ sha = e347e5c7b91aaeb11eff95037c2c0b54206cc976
+ etag = 06319ff741c03cf4cd5113926d490ec09999a85b5a0e0480ce44222db026341a
+ weak
diff --git a/docs/footer.md b/docs/footer.md
deleted file mode 100644
index 34b8951..0000000
--- a/docs/footer.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Sponsors
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[Learn more about GitHub Sponsors](https://github.com/sponsors)
diff --git a/docs/sponsors.md b/docs/sponsors.md
index 663c171..67575c6 100644
--- a/docs/sponsors.md
+++ b/docs/sponsors.md
@@ -1,25 +1,9 @@
-
+[![Clarius Org](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/clarius.png "Clarius Org")](https://github.com/clarius)
+[![Christian Findlay](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/MelbourneDeveloper.png "Christian Findlay")](https://github.com/MelbourneDeveloper)
+[![C. Augusto Proiete](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/augustoproiete.png "C. Augusto Proiete")](https://github.com/augustoproiete)
+[![Kirill Osenkov](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/KirillOsenkov.png "Kirill Osenkov")](https://github.com/KirillOsenkov)
+[![MFB Technologies, Inc.](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/MFB-Technologies-Inc.png "MFB Technologies, Inc.")](https://github.com/MFB-Technologies-Inc)
+[![SandRock](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/sandrock.png "SandRock")](https://github.com/sandrock)
+[![Eric C](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/eeseewy.png "Eric C")](https://github.com/eeseewy)
+[![Andy Gocke](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/agocke.png "Andy Gocke")](https://github.com/agocke)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-