Skip to content

Add packaging: Debian, AUR, Flatpak, Snap, AppImage #6

Add packaging: Debian, AUR, Flatpak, Snap, AppImage

Add packaging: Debian, AUR, Flatpak, Snap, AppImage #6

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}! πŸ‘‹

Check failure on line 97 in .github/workflows/welcome-stargazers.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/welcome-stargazers.yml

Invalid workflow file

You have an error in your yaml syntax on line 97
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) {}