Git Product home page Git Product logo

github-api's Introduction

Github APIs

The objective of this project was to identify the number of PRs approved by each user.

There is a groups CRUD, the purpose of the groups is to group repositories by departments or squads.

Ex: repository1 and repository2 are part of squad x, so you can get the approval ranking of a certain group.

As the github APIs work with a maximum pagination of 100, the data is persisted in a database, so there is no need for the query that takes a long time.

Backlog

The project is a v1, and has several points of improvement, among them are:

  • Implement logs;
  • Return ranking filtering by date;
  • Data return model with possible errors;
  • Ranking of who made more comments, more rejections;
  • EF mapping can be improved;
  • CRUD of groups can be improved;

The project was developed with the intention of obtaining other data besides pull and review, for this is to extend the GithubAPI.Service.Database.IGithubDataService interface and implement the UpdateDatabase, so the method will be automatically called by the database/sync.

How to run the project?

1- First you need to run docker compose in the project root:

docker compose up

2 - Create a github token. https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

3 - Insert the token in appsettings.json along with the username

  "GithubConfiguration": {
    "Token": "YOUR GITHUB TOKEN",
    "User": "YOUR GITHUB USER"
  }

4 - Run the project and call:

 POST /api/database/migration

5 - You can use GithubAPI.Context.Seed and create groups and repositories or use groups crud to create.

6 - End

API docs

https://docs.github.com/pt/rest/reference/pulls

Important

The project was made for a punctual and shared data extraction with the objective of helping people with the same need, it has several points that can be improved.

github-api's People

Contributors

phmonte avatar

Stargazers

Natalie Tolentino avatar Alexandre Prates avatar DANI avatar Gabriel Faraday avatar Rafael avatar

Watchers

 avatar

Forkers

leticiasassaki

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.