mirror of
https://github.com/Ryujinx/Ryujinx-Games-List.git
synced 2024-12-23 02:15:31 +00:00
80 lines
2.1 KiB
YAML
80 lines
2.1 KiB
YAML
name: Generate label stats
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 * * *"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
stats:
|
|
name: Generate label stats
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: master
|
|
|
|
- name: Query stats
|
|
uses: actions/github-script@v7
|
|
id: stats
|
|
with:
|
|
script: |
|
|
const query = `query($owner: String!, $name: String!) {
|
|
repository(owner: $owner, name: $name) {
|
|
labels(first: 100, query: "status") {
|
|
nodes {
|
|
name
|
|
issues {
|
|
totalCount
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}`;
|
|
|
|
const variables = {
|
|
owner: context.repo.owner,
|
|
name: context.repo.repo,
|
|
}
|
|
|
|
const result = await github.graphql(query, variables)
|
|
|
|
const labelsWithIssueCount = result.repository.labels.nodes;
|
|
const formattedData = {};
|
|
labelsWithIssueCount.forEach((label) => {
|
|
formattedData[label.name] = label.issues.totalCount;
|
|
});
|
|
|
|
console.log(formattedData);
|
|
|
|
return formattedData;
|
|
|
|
- name: Write stats
|
|
run: |
|
|
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
|
|
cat << $EOF > compat-stats.json
|
|
${{ steps.stats.outputs.result }}
|
|
$EOF
|
|
|
|
- name: Configure git
|
|
run: |
|
|
git config user.name github-actions[bot]
|
|
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
|
|
- name: Check if files have been modified
|
|
id: mod_check
|
|
run: |
|
|
[[ $(git status -s | wc -l) -lt 1 ]] \
|
|
&& echo "is-dirty=false" >> "$GITHUB_OUTPUT" \
|
|
|| echo "is-dirty=true" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Commit and push stats
|
|
if: steps.mod_check.outputs.is-dirty == 'true'
|
|
run: |
|
|
git add .
|
|
git commit -m "Update compat-stats.json"
|
|
git push
|