I'm starting a new project at work and it basically needs to be able to add repositories to my database and keep track of it. Also download it and upload it to an api. later on be able to upload new files to the repo.

I know how to use C# and .Net core , is there any library to manipulate git?
Is it better to use another tool for the git part? maybe shell commands? (have never learned anything like that but open to it)

Anyway looking forward for recommendations on how to solve my problem, any insight/ experience is useful! 

I think the app will only connect to Github and Bitbucket at launch.

The connector should be able to   

1 keep track of a Repository.   

2 Download files changed in the repository.   

3 Upload them to another System (Non repo)   

4 The other system proccess the files   

5 Download new processed files from the System   

6 Upload them to the repository