Add packaging: Debian, AUR, Flatpak, Snap, AppImage #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Welcome Stargazers & Forkers | ||
| on: | ||
| watch: | ||
| types: [started] # When someone stars | ||
| fork: # When someone forks | ||
| workflow_dispatch: | ||
| permissions: | ||
| issues: write | ||
| jobs: | ||
| welcome-stargazer: | ||
| if: github.event_name == 'watch' | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Thank Stargazer | ||
| uses: actions/github-script@v7 | ||
| with: | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| script: | | ||
| const stargazer = context.actor; | ||
| const owner = context.repo.owner; | ||
| // Don't thank yourself | ||
| if (stargazer === owner) return; | ||
| console.log(`β ${stargazer} starred ${context.repo.repo}!`); | ||
| // Follow them back if they look engaged | ||
| try { | ||
| const { data: user } = await github.rest.users.getByUsername({ | ||
| username: stargazer | ||
| }); | ||
| if (user.public_repos > 5 && user.followers > 5) { | ||
| // Check if already following | ||
| try { | ||
| await github.rest.users.checkPersonIsFollowedByAuthenticated({ | ||
| username: stargazer | ||
| }); | ||
| } catch (e) { | ||
| // Not following, follow them | ||
| await github.rest.users.follow({ | ||
| username: stargazer | ||
| }); | ||
| console.log(`β Followed ${stargazer} back!`); | ||
| } | ||
| // Star one of their popular repos | ||
| const { data: repos } = await github.rest.repos.listForUser({ | ||
| username: stargazer, | ||
| sort: 'stars', | ||
| per_page: 5 | ||
| }); | ||
| for (const repo of repos) { | ||
| if (!repo.fork && repo.stargazers_count > 0) { | ||
| try { | ||
| await github.rest.activity.starRepoForAuthenticatedUser({ | ||
| owner: stargazer, | ||
| repo: repo.name | ||
| }); | ||
| console.log(`β Starred ${stargazer}/${repo.name} as thanks!`); | ||
| break; | ||
| } catch (e) {} | ||
| } | ||
| } | ||
| } | ||
| } catch (e) { | ||
| console.log('Error:', e.message); | ||
| } | ||
| welcome-forker: | ||
| if: github.event_name == 'fork' | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Thank Forker | ||
| uses: actions/github-script@v7 | ||
| with: | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| script: | | ||
| const forker = context.payload.forkee.owner.login; | ||
| const owner = context.repo.owner; | ||
| if (forker === owner) return; | ||
| console.log(`π΄ ${forker} forked ${context.repo.repo}!`); | ||
| // Create a welcome issue in their fork | ||
| try { | ||
| await github.rest.issues.create({ | ||
| owner: forker, | ||
| repo: context.payload.forkee.name, | ||
| title: 'π Welcome! Here are some tips for working with this project', | ||
| body: ` | ||
| Hey @${forker}! π | ||
| Thanks for forking **${context.repo.repo}**! Here are some tips to help you get started: | ||
| ## π Quick Start | ||
| 1. Check out the README for documentation | ||
| 2. Look at open issues if you want to contribute | ||
| 3. PRs are always welcome! | ||
| ## π€ Stay Connected | ||
| - β Star the original repo to show support | ||
| - π Watch for updates | ||
| - π¬ Open issues for questions | ||
| ## π Resources | ||
| - [Original Repo](https://github.com/${owner}/${context.repo.repo}) | ||
| - [Issues](https://github.com/${owner}/${context.repo.repo}/issues) | ||
| - [PRs](https://github.com/${owner}/${context.repo.repo}/pulls) | ||
| Happy hacking! π οΈ | ||
| --- | ||
| *π€ Auto-generated by NullSec Bot* | ||
| ` | ||
| }); | ||
| console.log(`Created welcome issue in ${forker}/${context.payload.forkee.name}`); | ||
| } catch (e) { | ||
| console.log('Could not create welcome issue:', e.message); | ||
| } | ||
| // Follow them | ||
| try { | ||
| await github.rest.users.follow({ username: forker }); | ||
| console.log(`β Followed ${forker}`); | ||
| } catch (e) {} | ||