All Projects → itaditya → background-check

itaditya / background-check

Licence: MIT license
A GitHub App built with probot that peforms a "background check" to identify users who have been toxic in the past, and shares their toxic activity in the maintainer’s repo.

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to background-check

scalafmt-probot
🤖Github bot for checking code formatting with scalafmt
Stars: ✭ 15 (-44.44%)
Mutual labels:  probot, github-webhooks, github-bot, github-app
issuelabeler
A GitHub bot to label issues automatically based on title and body against list of defined labels. System status (https://status.verticalaxisbd.com/)
Stars: ✭ 23 (-14.81%)
Mutual labels:  probot, github-bot, github-app
dont-merge
Prevent merging of Pull Requests with a custom label selected on labels area.
Stars: ✭ 26 (-3.7%)
Mutual labels:  probot, github-app
Stale
A GitHub App built with Probot that closes abandoned Issues and Pull Requests after a period of inactivity.
Stars: ✭ 1,070 (+3862.96%)
Mutual labels:  probot, github-app
Request Info
Requests more info from PRs/Issues with either the default title or a blank body
Stars: ✭ 89 (+229.63%)
Mutual labels:  probot, github-app
Mergeable
🤖 All the missing GitHub automation 🙂 🙌
Stars: ✭ 475 (+1659.26%)
Mutual labels:  probot, github-app
Todo
🤖✅ GitHub App that creates new issues from actionable comments in your code.
Stars: ✭ 685 (+2437.04%)
Mutual labels:  probot, github-app
Probot Gpg
A GitHub App that enforces GPG signatures on pull requests (no longer maintained)
Stars: ✭ 13 (-51.85%)
Mutual labels:  probot, github-app
Commitlint Bot
[NOT MAINTAINED] use https://github.com/apps/semantic-pull-requests
Stars: ✭ 157 (+481.48%)
Mutual labels:  probot, github-app
Gh Polls Bot
Automatically create polls in GitHub issues.
Stars: ✭ 187 (+592.59%)
Mutual labels:  probot, github-app
Weekly Digest
Weekly summary of activity on your GitHub repository 📆
Stars: ✭ 199 (+637.04%)
Mutual labels:  probot, github-app
boring-cyborg
🤖 A Github bot to automatically label PRs, issues and perform all the boring operations that you don't want to do.
Stars: ✭ 66 (+144.44%)
Mutual labels:  probot, github-app
merge-me
A GitHub app that merges your pull requests once all required checks pass.
Stars: ✭ 19 (-29.63%)
Mutual labels:  probot, github-app
branch-switcher
a GitHub bot that switches the base branch of pull requests to the preferred branch
Stars: ✭ 15 (-44.44%)
Mutual labels:  probot, github-app
react-preview
a GitHub App built with probot that generates preview links for react based projects.
Stars: ✭ 14 (-48.15%)
Mutual labels:  probot, github-app
linter-alex
📝Sensitive, considerate writing before you merge your Pull Requests
Stars: ✭ 67 (+148.15%)
Mutual labels:  probot, github-app
triage-new-issues
A GitHub App, built with Probot that adds `triage` label to newly-created issues which don't have labels
Stars: ✭ 23 (-14.81%)
Mutual labels:  github-bot, github-app
check-in
Checks your test results metadata into github, commit-bound. Acts as a bot. You'll need a GitHub App to use it.
Stars: ✭ 18 (-33.33%)
Mutual labels:  github-bot, github-app
Auto Assign
🤖 A Probot app that adds reviewers to pull requests when pull requests are opened.
Stars: ✭ 140 (+418.52%)
Mutual labels:  probot, github-app
gitbot
The most popular Discord dev toolkit with 400k+ users 🚀✨
Stars: ✭ 59 (+118.52%)
Mutual labels:  github-bot, github-app

background-check

A GitHub App built with probot that peforms a "background check" to identify users who have been toxic in the past, and shares their toxic activity in the maintainer’s discussion repo.

Inline docs App Installations

Demo

How to Use

  • Go to the github app page.
  • Install the github app on your repos.
  • You'll get an invitation to a private repo, accept it and add other maintainers to the repo as well.

FAQ

1. How does the bot finds the background?

The bot listens to comments on repos in which the bot is installed. When a new user comments, the bot fetches public comments of this user and run sentiment analyser on them. If 5 or more comments stand out as toxic, then the bot concludes that the user is of hostile background and an issue is opened for this user in probot-background-check/{your-name}-discussions private repo so that the maintainers can review these toxic comments and discuss whether or not they will like to allow this hostile user to participate in their community.

2. What happens if the sentiment analysis is incorrect?

In case of false positives where the sentiment analysis flags certain comments as toxic while they are not, the discussion issue would still be created. As the bot posts the toxic comments in the issue description, the maintainers can then verify the toxicity and then close the issue if they find the sentiment analysis incorrect.

3. Why does the app maintain a separate org for discussions?

The discussion about a user who has been hostile in the past must ke kept private, so that only maintainers can see it. Because not every account (individual/org) has access to private repo, the app instead uses it's own org. Whenver the app is installed, a private repo for the maintainer's account gets created in the org and the installer is added as collaborator. This way discussions can be held privately.

How To Contribute

1. Setup project in your development machine

  • Fork this repo.
  • Clone the forked repo in your development machine
  • cd into the repo directory, cd background-check probably.
  • Run npm i to setup project.

2. Setup Environment

  • Run cp .env.example .env.
  • Open .env file.
  • Generate API key for Perspective API.
  • Paste this API key against PERSPECTIVE_API_KEY in .env file.
  • Create an org for the app.
  • Create a personal access token and paste that against GITHUB_ACCESS_TOKEN in .env file.
  • Create a Github App and follow these instructions.

Do npm start to check if github app runs correctly in your dev machine. After this create branch, make changes, run tests, commit the changes and make a PR.

Common CLI commands

To make the development of the project faster, these CLI commands are created.

# Install dependencies
npm install

# Run the bot
npm start

# Run bot in dev mode which watches files for changes
npm run dev

# Run Unit Tests
npm test

# Run Unit Tests in watch mode
npm run test:watch

# Run linter and fix the issues
npm run lint

# Serve documentation locally
npm run docs:serve

# Run sandbox
npm run sandbox -- --sandboxName

Eg - npm run sandbox -- --getCommentsOnIssue
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].