Code Monkey home page Code Monkey logo

jeeves's Introduction

Jeeves The Talent Bot

This is the Slack Bot that the Container Solutions Talent Team Uses to Anonymize Candidates Git Repos.

Secrets

Secrets are encrypted with Google KMS, you will need access to the keys in order to decrypt them

Decrypting Secrets

./scripts/decrypt

Encrypting Secrets

./scripts/encrypt

Deployment

Currently it is deployed into the CS Engineering Shared Cluster Manually

How It Works

The bot just listens to mentions on a slack channel and then creates a Kubernetes Job within the cluster that handles the anonyimization, the anonymizer is just a bash script that can be found in the anonymizer directory

In the channel you would just run

/anonymize https://gitlab.com/<gitlab user name>/api-exercise <candidate id>

Roadmap

  • Automate Build and deployment
  • Add creation of Scoring Google Sheet
  • Add Github Intergrations

jeeves's People

Contributors

spazzy757 avatar paul-the-alien[bot] avatar sashkachan avatar

Watchers

James Cloos avatar Ian Crosby avatar  avatar  avatar  avatar

Forkers

isabella232

jeeves's Issues

Anonymize Should Wait for Job to Finish before Responding

Is your feature request related to a problem? Please describe.

Currently, the job that Jeeves creates gets created but we don't check that it completes successfully

Describe the solution you'd like
There Should be a check to make sure that the job has completed, and then send to the slack channel that the API has been anonymized

Testing is Minimal

Describe the bug
Testing on this project is minimal meaning that it will be prone to bugs and regressions

To Reproduce
Run Tests

Expected behaviour

We should have at least 70%+ coverage to have faith in the application

Automated deployment

Is your feature request related to a problem? Please describe.
Jeeves is currently deployed manually. It would be nice that every time we merged to master the staging bot would be deployed and every time a tag was created it would deploy to production

Describe the solution you'd like
I would like it to use git shas and tags to deploy

Additional context
Jeeves is currently running in the CS shared cluster

Jeeves currently fails if a ID is reused

Describe the bug
When a user tries to anonymize a repo multiple times it will fail as the job is already created.

To Reproduce
Rerun the anonymize slash command with the same input

Expected behavior
We should check if the job already exists and the status of the job, if it has completed we should attach a ID to the end of the job name and rerun it. If it failed we should delete it and rerun it.

Screenshots
image

Additional context
We should try and make this intuitive.

Anonymizer script should not be specific to gitlab and should allow for Github as well

Is your feature request related to a problem? Please describe.
We are thinking of moving the API Exercises too Github and would like the Anonymizer script to be able to handle this. The feeling is that as it is all git we should make the script generic so as to not worry about this and be able to anonymize any git repo that jeeves has access to

Describe the solution you'd like
Make the script generic to the git rep

Additional context
script can be found in (/anonymizer)[/anonymizer]

Automate Setup of API test scoring sheet in google sheets

Is your feature request related to a problem? Please describe.
It would be great as part of the anonymization process we set up the scoring sheet for that API as well.

Describe the solution you'd like
This would need to be implemented using Google Sheets Templates that could be copied. We would also need to create them in a specific folder on our drive

Additional context
Speak to Talent about and example of the API scoring card

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.