Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1df86d2
[create-pull-request] automated change
TheTechromancer Mar 17, 2026
ec1acae
Merge pull request #2971 from blacklanternsecurity/dev
TheTechromancer Mar 17, 2026
ddd5d16
Merge pull request #2973 from blacklanternsecurity/update-docs
liquidsec Mar 23, 2026
e97b880
ci: add CLA workflow
aconite33 Mar 30, 2026
dcdd46d
ci: add org members to CLA allowlist
aconite33 Mar 30, 2026
6d84a4a
ci: use dynamic org membership check for CLA
aconite33 Mar 30, 2026
646b6eb
fix: use GITHUB_TOKEN for org membership check in CLA workflow
aconite33 Mar 31, 2026
ee514b6
fix: handle org membership check for both PR and comment events
aconite33 Mar 31, 2026
1099707
fix: set commit status to success when skipping CLA for org members
aconite33 Mar 31, 2026
5318a7a
fix: use author_association for CLA membership check
aconite33 Mar 31, 2026
5ee7b34
fix: use org-scoped app token for membership check
aconite33 Mar 31, 2026
076b175
fix: use org-scoped app token for reliable CLA membership check
aconite33 Mar 31, 2026
593fe04
fix: disable lock-pullrequest-aftermerge in CLA workflow
aconite33 Mar 31, 2026
648ce4e
fix CLA workflow to properly skip bots and check all committers
aconite33 Apr 1, 2026
83833e7
drop unnecessary actions:write and contents:write permissions
aconite33 Apr 1, 2026
de4f04b
Merge pull request #3013 from blacklanternsecurity/fix-cla-bot-skip
aconite33 Apr 1, 2026
649e32e
Merge remote-tracking branch 'origin/stable' into merge-stable-into-dev
aconite33 Apr 1, 2026
fde791c
Merge pull request #3016 from blacklanternsecurity/merge-stable-into-dev
aconite33 Apr 1, 2026
876465b
Some fun adjectives :D
ausmaster Apr 7, 2026
09cbc86
Alphabet is hard
ausmaster Apr 7, 2026
1b5cdc2
Merge pull request #3030 from blacklanternsecurity/fun-stuff
ausmaster Apr 8, 2026
233c86c
Merge pull request #2007 from blacklanternsecurity/3.0
TheTechromancer Apr 16, 2026
978b7ec
Bump ruff from 0.15.4 to 0.15.9
dependabot[bot] Apr 16, 2026
7508702
Merge pull request #3026 from blacklanternsecurity/dependabot/pip/dev…
liquidsec Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened, closed, synchronize]

permissions:
pull-requests: write
statuses: write

jobs:
CLAAssistant:
runs-on: ubuntu-latest
steps:
- name: Generate token from GitHub App
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
owner: blacklanternsecurity

- name: Check all committers against org and allowlist
id: cla-check
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
if [ "${{ github.event_name }}" = "pull_request_target" ]; then
PR_NUM="${{ github.event.pull_request.number }}"
else
PR_NUM="${{ github.event.issue.number }}"
fi

COMMITTERS=$(gh api "repos/${{ github.repository }}/pulls/$PR_NUM/commits" --paginate --jq '.[].author.login' | sort -u)
ALL_EXEMPT=true

for LOGIN in $COMMITTERS; do
# treat commits with no associated GitHub login as non-exempt
if [ -z "$LOGIN" ] || [ "$LOGIN" = "null" ]; then
echo "Unknown committer (no GitHub login) — not exempt"
ALL_EXEMPT=false
break
fi

EXEMPT=false

# check if account type is Bot (GitHub App accounts)
AUTHOR_TYPE=$(gh api "users/${LOGIN}" --jq '.type' 2>/dev/null || echo "Unknown")
if [ "$AUTHOR_TYPE" = "Bot" ]; then
echo "$LOGIN is a Bot account — exempt"
EXEMPT=true
fi

# check org membership
if [ "$EXEMPT" = "false" ]; then
if gh api "orgs/blacklanternsecurity/members/$LOGIN" > /dev/null 2>&1; then
echo "$LOGIN is an org member — exempt"
EXEMPT=true
fi
fi

if [ "$EXEMPT" = "false" ]; then
echo "$LOGIN is not exempt — CLA required"
ALL_EXEMPT=false
break
fi
done

echo "all_exempt=$ALL_EXEMPT" >> "$GITHUB_OUTPUT"

- name: Skip CLA when all committers are exempt
if: steps.cla-check.outputs.all_exempt == 'true' && github.event_name == 'pull_request_target'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api --method POST "repos/${{ github.repository }}/statuses/${{ github.event.pull_request.head.sha }}" \
-f state=success \
-f context="CLAAssistant" \
-f description="CLA check skipped — all committers are org members or bots"

- name: "CLA Assistant"
if: |
(steps.cla-check.outputs.all_exempt != 'true') &&
((github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target')
uses: contributor-assistant/github-action@v2.6.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN: ${{ steps.app-token.outputs.token }}
with:
path-to-signatures: "signatures/version1/cla.json"
path-to-document: "https://github.com/blacklanternsecurity/CLA/blob/main/ICLA.md"
branch: "main"
allowlist: "dependabot[bot],github-actions[bot],renovate[bot]"
remote-organization-name: "blacklanternsecurity"
remote-repository-name: "CLA"
lock-pullrequest-aftermerge: "false"
37 changes: 37 additions & 0 deletions bbot/core/helpers/names_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,29 +17,45 @@
"autistic",
"awkward",
"baby",
"bamboozled",
"based",
"befuddled",
"begrudged",
"benevolent",
"bewildered",
"bighuge",
"black",
"blazed",
"bloodshot",
"bodacious",
"bonkers",
"bootleg",
"bricked",
"brown",
"bussin",
"caffeinated",
"chaotic",
"cheeky",
"childish",
"chiseled",
"chonky",
"clapped",
"cold",
"condescending",
"considerate",
"constipated",
"contentious",
"cooked",
"corrupted",
"cosmic",
"cracked",
"crafty",
"cranked",
"crazed",
"creamy",
"crispy",
"crumbly",
"crusty",
"cryptic",
"cuddly",
"cursed",
Expand All @@ -63,6 +79,7 @@
"diabolical",
"difficult",
"dilapidated",
"discombobulated",
"dismal",
"distilled",
"disturbed",
Expand All @@ -83,10 +100,12 @@
"expired",
"exquisite",
"extreme",
"feral",
"fermented",
"ferocious",
"fiendish",
"fierce",
"flabbergasted",
"flamboyant",
"fleecy",
"flirtatious",
Expand All @@ -99,9 +118,13 @@
"fuzzy",
"gentle",
"giddy",
"glitched",
"glowering",
"glutinous",
"goated",
"gobsmacked",
"golden",
"goofy",
"gothic",
"grievous",
"gummy",
Expand Down Expand Up @@ -137,6 +160,9 @@
"intoxicated",
"inventive",
"irritable",
"jacked",
"janky",
"juiced",
"large",
"liquid",
"loveable",
Expand All @@ -162,10 +188,12 @@
"nautical",
"nefarious",
"negligent",
"nerfed",
"neurotic",
"nihilistic",
"normal",
"overattached",
"overclocked",
"overcompensating",
"overenthusiastic",
"overmedicated",
Expand Down Expand Up @@ -213,6 +241,7 @@
"savvy",
"scheming",
"schizophrenic",
"scuffed",
"secretive",
"sedated",
"senile",
Expand All @@ -224,10 +253,12 @@
"sly",
"sneaky",
"soft",
"soggy",
"sophisticated",
"spasmodic",
"spicy",
"spiteful",
"spooky",
"squishy",
"steamy",
"sticky",
Expand All @@ -244,6 +275,7 @@
"sunburned",
"super",
"surreal",
"sus",
"suspicious",
"sweet",
"swole",
Expand All @@ -256,6 +288,8 @@
"ticklish",
"tiny",
"tricky",
"turbo",
"turnt",
"twitchy",
"ugly",
"unabated",
Expand Down Expand Up @@ -288,8 +322,11 @@
"wild",
"wispy",
"witty",
"wonky",
"woolly",
"yeeted",
"zesty",
"zooted",
]

names = [
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ dev = [
"fastapi>=0.115.5,<0.129.0",
"pytest-httpx>=0.35",
"pytest-benchmark>=4,<6",
"ruff==0.15.2",
"ruff==0.15.10",
"baddns~=2.0.0",
]
docs = [
Expand Down
Loading