Giter Site home page Giter Site logo

badging / badging-bot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bistaastha/badging-bot

1.0 1.0 10.0 1.26 MB

A GitHub App that helps to coordinate the workflow of the DEI Badging, a peer-review program that is managed by the CHAOSS Community.

License: ISC License

JavaScript 99.19% Shell 0.31% Dockerfile 0.50%
chaoss github-bot hacktoberfest octokit-js

badging-bot's Introduction

DEI Project Badging

About DEI Project Badging

The DEI Project Badging Initiative is a CHAOSS that awards badges to open-source projects that demonstrate diversity and inclusion. This initiative promotes leadership, self-reflection, and self-improvement on issues critical to building the Internet as a social good.

The DEI project badges help open source project maintainers showcase their ongoing commitment to improving and supporting diversity, equity, and inclusion.

How does DEI Project Badging work?

  • Open Source projects submit their project repository containing a DEI.md file. Check out what a DEI.md file entails and how to create one here.

  • The project badging scanner bot will search through the DEI.md file in the specified repository for evidence of required metrics.

  • Once the scan is complete, the project will receive a markdown snippet that can be included in the README.md as an image of the DEI Project Badge earned.

  • Upon the conclusion of each badging level, the project receives an inclusive language report on how to improve its DEI efforts in order to apply for and earn the next badging level. Badging process

Badging Levels

Currently, the DEI Project Badge is available in one level

Level Badge Requirements Met
Bronze Bronze Badge Presence of DEI.md File

Contributing to this Project

This is a living repository, meaning we are very open to changes and improvements. We follow the GitHub pull-request workflow. More details on specifically what that means can be found in the CONTRIBUTING.md file. If you would like to contribute but aren't sure how to go about doing so, please reach out to the community on Slack or Elizabeth Barron (@ElizabethN). We are happy to help!

Don't forget to give the project a star! Thanks again!

Acknowledgments

Our heartfelt gratitude to all the maintainers of this project. Thank you for your ongoing efforts to maintain and nurture this project.

badging-bot's People

Contributors

adeyinkaoresanya avatar bistaastha avatar dependabot[bot] avatar desmondsanctity avatar kaxada avatar nebrethar avatar

Stargazers

 avatar

Watchers

 avatar

badging-bot's Issues

Removing deprecated implementations

Badging-bot is currently working with some deprecated or unconventional libraries or methods which makes it less efficient when compared to the latest working dependencies and implementations.

Technical description:

Badging-bot totally works on the concept of Github APIs which is supported by octokit library and based on the probot architecture which updated quite a lot.
The implementations which are used to access Github issue data used for the badging process can be updated to the latest.

This is the dependency updates, in the package.json will look like this:

image

The dependencies update cause problems:

image

Potential solution:

Changing implementations to get in sync with the new conventions and versions of the architecture.

Tasks included for this:

  • Updating the dependencies
  • Updating the implementations which is affected by the dependencies, with new conventions
  • Testing the code

Create a slackbot automation

For this Kind of automation, Create a simple Slack bot that pings an assignee who has been assigned an issue on this repository. assuming the assignee is already a member of the badging slack channel is the CHAOSS slack workspace and also you know their username.

Create unit tests for specific functions of the bot

Most of the code and the implementations are not tested before being put into production.

This issue aims at creating unit tests for specific code functions mostly in this folder and the index file. The primary purpose of those tests to to make sure the function returns what it should return however much altered it is.

The tools for testing are not defined. As long as they get the work done.

Creating tests for the bot

Description:

The tests in the Github app is useful for the developers to test the features of the app locally without repeatedly creating events on Github to check if code is working or not.

Potential solution:

The tests can be implemented using jest or nock. Probot defines the usage of tests in their documentation which can be found out here

Adding a manifest file for the project

Description:

Adding a manifest file will help in the permission and subscriptions management of the app on Github, which will be used while initially configuring the app. The newer versions of probot apps resolves this issue

package-lock.json gets updated on running 'npm install' locally

When the repo is cloned and npm install is run, the package-lock.json gets updated creating a new dependency tree hence forcing a stash of the main branch before any other new branch is created or checked out.

A quicker solution to this error would be running npm ci to generate a dependency tree using package-lock.json instead of package.json but it throws an error below which confirms that there are missing dependencies that may have been due to a previous commit.

npm WARN old lockfile 
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile 
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile 
npm ERR! `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
npm ERR! 
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Invalid: lock file's [email protected] does not satisfy [email protected]
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! Missing: [email protected] from lock file
npm ERR! 


This may lead to merge conflicts or build failures in future during continuous deployments. 

Implement a timer

Once an issue is assigned, the assignment should trigger off a timer that will run for 24 hours and stop. The timer should trigger console messages on the 6th hour, 12th hour and on 24th the hour before it stops.

Update the moderators' list in the .github file so that the bot can successfully execute the 'close' ticket function

I realized that changing the state of the issue from 'open' to 'closed' needs only @Nebrethar to have had activity on the issue which is currently not the case.

Currently @ElizabethN manually closes an issue. I kinda feel this gives us more control on the state of the issue but if we are still okay with the bot automatically closing the issue then we can see how to rewrite this automation in the checkModerators.js file

Add a `done` command

This command is used by reviewers to inform the bot that they are done with the review. once the done command is issued by both the reviewers, the bot will automatically follow through the steps to close the application

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.