Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Github Commits Tracker #146

Open
1 task
PrinxeShamar opened this issue Sep 4, 2023 · 5 comments
Open
1 task

Github Commits Tracker #146

PrinxeShamar opened this issue Sep 4, 2023 · 5 comments
Assignees
Labels
automation Involves automating workflows enhancement New feature or request integrations Involves integrations with third-parties like Discord/GitHub users Involves the users system

Comments

@PrinxeShamar
Copy link
Collaborator

PrinxeShamar commented Sep 4, 2023

GitHub Commits Tracker

Overview

Currently every user can register a github account to there profile. We also manage project data and which users are on each project. If we where to collect project github link(s) and assuming the members of the project on portal are also members of the project on github, we can aggregate commits for each user based on the projects they are on. This can be a great advantage for users as they can download there commits from portal. This can also have an impact when it comes to grading as it gives a live view at a students commits and this can be reference at mid/end of semester.

Project Extensions

  • Collect Project GitHub Link(s). Note: Some projects may have multiple repositories so being able to collect multiple links is important.

GitHub to RCOS IO

To retrieve user commits, we can periodically query github for commits for each project. We can then store this snapshot of the commits in portal as to avoid multiple API requests to github (not sure of a limit). We can then match the commits to the users.

@bnidevs
Copy link
Contributor

bnidevs commented Sep 4, 2023

@Apexal do u want me to handle this

@PrinxeShamar
Copy link
Collaborator Author

Note: This ideally would serve as a https://bnidevs.github.io/get-my-commits/ feature in portal.

@Apexal
Copy link
Member

Apexal commented Sep 4, 2023

The database is ready for this to be added any time. Projects even support multiple repositories already!

The only potential blockers are that there's no way for project owners/leads to add/remove repositories to their projects after they first created the projects. Coordinators/Faculty Advisors can of course manually repositories to projects, but it'd be better if the project lead could do so.

We should add a project edit page for project leads, and then work on this! I'll quick create an issue for the project edit page.

@Apexal Apexal added enhancement New feature or request integrations Involves integrations with third-parties like Discord/GitHub users Involves the users system labels Sep 5, 2023
@Apexal
Copy link
Member

Apexal commented Sep 10, 2023

We should also make use of our Redis cache to make as few calls to GitHub as possible. Maybe make refreshing the data an explicit action that students have to click to do, instead of fetching automatically every time a page is viewed.

Orrr we fetch automatically in the background every night, and offer manual refresh?

Thoughts here? How strict is the API limit for this sort of thing @bnidevs

@bnidevs
Copy link
Contributor

bnidevs commented Sep 10, 2023

@Apexal I believe it's 5000 calls an hour with a key, but getting all commits for one repo may cost more than one call because it's paginated

@PrinxeShamar PrinxeShamar self-assigned this Oct 11, 2023
@PrinxeShamar PrinxeShamar added the automation Involves automating workflows label Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automation Involves automating workflows enhancement New feature or request integrations Involves integrations with third-parties like Discord/GitHub users Involves the users system
Projects
None yet
Development

No branches or pull requests

3 participants