GithubHelp home page GithubHelp logo

zonel / repovault Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 64 KB

๐Ÿ”’ This app empowers users to create secure backups of repositories and issues hosted on GitHub while ensuring the confidentiality of sensitive data through AES encryption. Built on clean architecture and uses OctoKit GitHub API client.

C# 98.47% Dockerfile 1.53%
backup-tool cli csharp octokit-net

repovault's Introduction

RepoVault

RepoVault is a C# application built on clean architecture that leverages the OctoKit GitHub API client. This tool empowers users to create secure backups of repositories and issues hosted on GitHub while ensuring the confidentiality of sensitive data through AES encryption. overview

Features

  • Repository Backup: RepoVault allows users to create backups of their GitHub repositories. It retrieves all the necessary data, including code, issues, pull requests, and project documentation, ensuring that valuable project information is safeguarded.

  • Issue Backup: The application provides a straightforward way to back up issues associated with a GitHub repository. This ensures that your team's discussions, bug reports, and feature requests are preserved.

  • GitHub Integration: RepoVault seamlessly integrates with the GitHub API through OctoKit, simplifying the backup process. Users can authorize the application to access their GitHub repositories securely.

  • AES Encryption: Security is a top priority. RepoVault encrypts all locally stored backup files using the AES (Advanced Encryption Standard) algorithm. This ensures that your sensitive data remains confidential and protected against unauthorized access.

  • Backup Posting: Users have the option to post their backups directly to GitHub repositories. This feature streamlines the recovery process, making it easy to restore your data when needed.

Architecture

RepoVault follows the Clean Architecture design pattern to ensure maintainability, scalability, and separation of concerns.

  • Domain Layer: The heart of RepoVault, this layer defines the core business logic and entities. It encapsulates the essential rules and behaviors of the application, ensuring the independence of the domain from external dependencies.

  • Application Layer: Responsible for orchestrating use cases and business operations, the application layer bridges the gap between the domain layer and external interfaces. It coordinates how data flows and operations are executed.

  • Infrastructure Layer: This layer handles external concerns such as data storage, API interactions (including OctoKit for GitHub). It provides implementation details for interacting with external systems while shielding the core domain from direct dependencies.

  • CLI Layer: Serving as the user interface, the Command-Line Interface (CLI) layer interacts with users and translates their commands into actions within the application. It provides a user-friendly CLI interface for performing backups and managing data. image

Getting Started

To get started with RepoVault, follow these steps:

  1. Clone the repository to your local machine.
  2. Build the project using Visual Studio or your preferred C# development environment. (There might be an issue with behaviour of SQLite while in debugging mode, when encountered try putting .db file inside RepoVault.CLI folder)
  3. Use the command-line interface to initiate backups and manage your data.

How to create my token?

In order to use this app, you will need fine-grained token with proper permissions. This short guide will show you how to obtain one.

  1. Go to https://github.com/settings/tokens?type=beta
  2. Generate new fine-grained token with access to your repositories.
  3. Make sure you've selected those exact permissions for it: image
  4. Hit create and have a new freshly made token you can use in my app!

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

repovault's People

Contributors

zonel avatar

Watchers

 avatar

repovault's Issues

Add Recurring Tasks Feature

It would be great if we could schedule recurring tasks in the app. This would help in managing tasks that need to be done on a regular basis, like weekly meetings or monthly reports.

XSS Vulnerability in Contact Form

I've identified a potential cross-site scripting (XSS) vulnerability in the contact form on the website. When user input is not properly sanitized, it could lead to a security breach.

Add Dark Mode Support

Dark mode is becoming increasingly popular, and it would be great if the app could support it. Adding a dark mode option would enhance the user experience, especially in low-light conditions.

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.