mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-04-23 17:18:40 +02:00
chore(github): update issue workflows
This commit is contained in:
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -8,9 +8,9 @@ body:
|
|||||||
value: |
|
value: |
|
||||||
Please **do not** open an issue for applications with invisible windows leaving ghost tiles.
|
Please **do not** open an issue for applications with invisible windows leaving ghost tiles.
|
||||||
|
|
||||||
You can run `komorebic visible-windows` when the ghost tile is present on your workspace to retrieve the invisible window's exe, class name and title, and then use that to [ignore the window](https://lgug2z.github.io/komorebi/common-workflows/ignore-windows.html) responsible for the ghost tile.
|
You can run `komorebic visible-windows` when the ghost tile is present on your workspace to retrieve the invisible window's exe, class name and title, and then use that information to [ignore the window](https://lgug2z.github.io/komorebi/common-workflows/ignore-windows.html) responsible for the ghost tile.
|
||||||
|
|
||||||
If it is not possible to uniquely identify the invisible window resulting in a ghost tile through a mixture of exe, title and class identifiers , then this is not a bug with komorebi but a bug with the application you are using, and should open an issue with the developer(s) of that application.
|
If it is not possible to uniquely identify the invisible window resulting in a ghost tile through a mixture of exe, title and class identifiers, then this is not a bug with komorebi but a bug with the application you are using, and you should open an issue with the developer(s) of that application.
|
||||||
- type: textarea
|
- type: textarea
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
16
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
16
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@@ -1,21 +1,21 @@
|
|||||||
name: Feature request
|
name: Feature request
|
||||||
description: Suggest a new feature (Sponsors only)
|
description: Suggest a new feature (Limited to Sponsors, Commercial License Holders, and Collaborators)
|
||||||
labels: [enhancement]
|
labels: [enhancement]
|
||||||
title: "[FEAT]: "
|
title: "[FEAT]: "
|
||||||
body:
|
body:
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: Sponsors
|
id: Eligibility
|
||||||
attributes:
|
attributes:
|
||||||
label: Sponsorship Information
|
label: Eligibility
|
||||||
description: >
|
description: >
|
||||||
Feature requests are considered from individuals who are $5+ monthly sponsors to the project.
|
Feature requests are considered from individuals who are current $5+ monthly sponsors to the project, individual commercial use license holders, and approved collaborators.
|
||||||
|
|
||||||
Please specify the platform you use to sponsor the project.
|
Please specify the platform you use to sponsor the project.
|
||||||
options:
|
options:
|
||||||
- GitHub Sponsors
|
- Individual Commercial Use License
|
||||||
- Ko-fi
|
- GitHub Sponsor
|
||||||
- Discord
|
- Ko-fi Sponsor
|
||||||
- YouTube
|
- Approved Collaborator
|
||||||
default: 0
|
default: 0
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
47
.github/workflows/feature-check.yaml
vendored
Normal file
47
.github/workflows/feature-check.yaml
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
name: Feature Issue Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [ opened ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
auto-close:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check and close feature issues
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const issue = context.payload.issue;
|
||||||
|
|
||||||
|
if (issue.title.startsWith('[FEAT]: ')) {
|
||||||
|
const message = `
|
||||||
|
Feature requests on this repository are only open to current [GitHub sponsors](https://github.com/sponsors/LGUG2Z) on the $5/month tier and above, people with a valid [individual commercial use license](https://lgug2z.com/software/komorebi), and approved contributors.
|
||||||
|
|
||||||
|
This issue has been automatically closed until one of those pre-requisites can be validated.
|
||||||
|
`.replace(/^\s+/gm, '');
|
||||||
|
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
issue_number: issue.number,
|
||||||
|
body: message,
|
||||||
|
});
|
||||||
|
|
||||||
|
await github.rest.issues.update({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
issue_number: issue.number,
|
||||||
|
state: 'closed'
|
||||||
|
});
|
||||||
|
|
||||||
|
await github.rest.issues.lock({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
issue_number: issue.number,
|
||||||
|
state: 'resolved'
|
||||||
|
});
|
||||||
|
}
|
||||||
125
.github/workflows/sponsor-check.yaml
vendored
125
.github/workflows/sponsor-check.yaml
vendored
@@ -1,125 +0,0 @@
|
|||||||
name: Feature Request Sponsor Check
|
|
||||||
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types: [opened]
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
test_username:
|
|
||||||
description: "Test username to check sponsorship for"
|
|
||||||
required: true
|
|
||||||
default: "octocat"
|
|
||||||
test_title:
|
|
||||||
description: "Test issue title"
|
|
||||||
required: true
|
|
||||||
default: "[FEAT] Test Feature Request"
|
|
||||||
test_sponsor_platform:
|
|
||||||
description: "Selected sponsor platform"
|
|
||||||
required: true
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- "GitHub Sponsors"
|
|
||||||
- "Ko-fi"
|
|
||||||
- "Discord"
|
|
||||||
- "YouTube"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-sponsor:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: |
|
|
||||||
(github.event_name == 'workflow_dispatch') || (github.event_name == 'issues' &&
|
|
||||||
startsWith(github.event.issue.title, '[FEAT]') &&
|
|
||||||
github.event.issue.user.login != 'LGUG2Z' &&
|
|
||||||
fromJSON(github.event.issue.body).Sponsors == 'GitHub Sponsors')
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Get Issue Details
|
|
||||||
id: issue-details
|
|
||||||
run: |
|
|
||||||
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
|
||||||
echo "username=${{ github.event.inputs.test_username }}" >> $GITHUB_OUTPUT
|
|
||||||
echo "title=${{ github.event.inputs.test_title }}" >> $GITHUB_OUTPUT
|
|
||||||
echo "sponsor_platform=${{ github.event.inputs.test_sponsor_platform }}" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "username=${{ github.event.issue.user.login }}" >> $GITHUB_OUTPUT
|
|
||||||
echo "title=${{ github.event.issue.title }}" >> $GITHUB_OUTPUT
|
|
||||||
echo "sponsor_platform=$(jq -r '.Sponsors' <<< '${{ github.event.issue.body }}')" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Get Sponsorship Status
|
|
||||||
id: sponsorship
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.PAT }}
|
|
||||||
script: |
|
|
||||||
const username = '${{ steps.issue-details.outputs.username }}';
|
|
||||||
const sponsorPlatform = '${{ steps.issue-details.outputs.sponsor_platform }}';
|
|
||||||
|
|
||||||
if (sponsorPlatform !== 'GitHub Sponsors') {
|
|
||||||
console.log('Sponsor platform is not GitHub Sponsors, skipping check');
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const sponsorshipQuery = `query($user: String!) {
|
|
||||||
user(login: $user) {
|
|
||||||
... on Sponsorable {
|
|
||||||
sponsorshipForViewerAsSponsorable {
|
|
||||||
tier {
|
|
||||||
name
|
|
||||||
monthlyPriceInDollars
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}`;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const result = await github.graphql(sponsorshipQuery, {
|
|
||||||
user: username
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(result);
|
|
||||||
const sponsorship = result.user.sponsorshipForViewerAsSponsorable;
|
|
||||||
console.log(sponsorship);
|
|
||||||
const amount = sponsorship?.tier?.monthlyPriceInDollars || 0;
|
|
||||||
|
|
||||||
console.log(`Sponsorship amount for ${username}: $${amount}/month`);
|
|
||||||
return amount >= 5;
|
|
||||||
} catch (error) {
|
|
||||||
console.log(`Error checking sponsorship: ${error.message}`);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: Print Test Results
|
|
||||||
if: github.event_name == 'workflow_dispatch'
|
|
||||||
run: |
|
|
||||||
echo "Test Results for ${{ steps.issue-details.outputs.username }}:"
|
|
||||||
echo "Title: ${{ steps.issue-details.outputs.title }}"
|
|
||||||
echo "Platform: ${{ steps.issue-details.outputs.sponsor_platform }}"
|
|
||||||
echo "Would close issue: ${{ steps.sponsorship.outputs.result == 'false' }}"
|
|
||||||
|
|
||||||
- name: Close Issue If Not Sponsor
|
|
||||||
if: |
|
|
||||||
github.event_name == 'issues' &&
|
|
||||||
steps.sponsorship.outputs.result == 'false'
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
script: |
|
|
||||||
const issueNumber = context.issue.number;
|
|
||||||
const owner = context.repo.owner;
|
|
||||||
const repo = context.repo.repo;
|
|
||||||
|
|
||||||
await github.rest.issues.createComment({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
issue_number: issueNumber,
|
|
||||||
body: 'Thank you for your feature request! This repository requires a GitHub sponsorship of at least $5/month to submit feature requests. Please consider becoming a sponsor at https://github.com/sponsors/LGUG2Z'
|
|
||||||
});
|
|
||||||
|
|
||||||
await github.rest.issues.update({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
issue_number: issueNumber,
|
|
||||||
state: 'closed'
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user