22

GitHub - AnalogJ/gitmask

 6 years ago
source link: https://github.com/AnalogJ/gitmask
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

gitmask_view

Gitmask

Contribute Code Anonymously

Introduction

Gitmask is an open source hosted service that allows you to contribute to Github projects anonymously. It mimics a standard git remote, however all identifying information (author names, email and timestamps) embedded in your commits are stripped, before forwarding a squashed commit to the target repository as a pull request.

Features

  • Does not require a Github account - Gitmask is completely anonymous
  • Mimic's a standard git remote, allowing you to keep your normal development workflow and tools.
  • Automatically creates a pull request against target repository & branch
  • Hosted Open Source project. Use gitmask.com or run it yourself if you're privacy conscious.
  • Inline progress logs
  • Coming Soon Allows you to anonymously comment on Pull Requests opened by Gitmask, to provide context to your commits.

There's a number of reasons why you may want to contribute to a Github project anonymously.

  • Government - you may live in a country/region where the government tracks your contributions online
  • Career - you may be contributing to a project that your employer may not approve of
  • Security - you may want to contribute to a project that implies financial interest
  • Prove a point - you may want to write something controversial to start a discussion.
  • You just value your privacy.

Getting Started

git clone https://github.com/AnalogJ/gitmask.git
git checkout -b feat_branch
echo "update readme" >> README.md
git commit -am "Commits will be squashed and messages overwritten"
git remote add gitmask https://git.gitmask/v1/gh/AnalogJ/gitmask
git push gitmask feat_branch:master

# Gitmask will strip identifying information from your commits.
# You will be provided with a direct link to the pull request.

Configuration

Coming Soon

Testing

Coming Soon

Contributing

Gitmask is written as a serverless project, specifically configured for the AWS Lambda Python runtime

You can run it locally by doing the the following:

  • Create an AWS account where your gitmask run.

  • Install nodejs, python, serverless-framework and aws-cli.

  • Create and setup the AWS user for the deployment.

  • Issue your github access token

    • Go to github Settings > Developer settings > Personal access tokens
    • Run generate new token
      • scopes
        • public_repo
  • Configure following environment variables:

    Variable Value
    GITHUB_API_TOKEN github personal access token
    GITHUB_USER github username of the personal access token
    GITMASK_SERVICE Your own service name for gitmask, e.g. myown-gitmask-api.
    GITMASK_SERVICE_NORMALIZE Normalized value for GITMASK_SERVICE,removing special characters and captalize the first letter. e.g. Myowngitmaskapi
    CIRCLE_SHA1 Set the value retrieved by git rev-parse --short HEAD
  • Run deployment

    npm install -g serverless
    npm install
    pipenv install
    sls deploy
    
    • The URLs for endpoints are shown.
      • You can redisplay that with sls info

Serverless offline

sls requirements install
PYTHONPATH=~/Library/Caches/serverless-python-requirements/2674a9f8121c5816727ff9f31e4684c72875956b15f0bbb0eb0d69838d6ad47b_slspyc sls offline start

Useful Commands

  • GIT_TRACE=1 GIT_TRACE_PACKFILE=~/repos/gitmask/packfile.txt GIT_TRACE_CURL=2 GIT_CURL_VERBOSE=2 git push test beta2
  • git unpack-objects -r < ~/repos/gitmask/packfile.txt

References

hacker icon designed by sultan mohammed


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK