Giter VIP home page Giter VIP logo

gitmask's Introduction

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.

Why?

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

Logo

hacker icon designed by sultan mohammed

gitmask's People

Contributors

analogj avatar dmarti avatar gitmask-anonymous avatar ikedam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitmask's Issues

Typo on front page

Unfortunately that means that every commit you every make is visible to everyone. Every commit.

Need a docs

I'm a bit confused on how to use this can you please create a doc file

Add option to leave original author

This may be pushing GitMask beyond its intended purpose. I'm currently looking at Git Mask to allow submitting pull requests without a GitHub account. I actually want the Git author left alone. We could add an optional param that allows this to be configured per request.

I'd be willing to submit a PR if this was considered useful.

Issue with DockerFile

Hi,

Using DockerFile i created a docker Image, Http was working fine. but getting error with https://

while creating image got this error. Also when i looked into the docker's "/srv/letsencrypt/" certs folder was missing.

Error:

Removing intermediate container f306e91bdab5
Step 5 : RUN curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python2.7
---> Running in 89f87683332f
Collecting pip
/tmp/tmp9EMMYE/pip.zip/pip/vendor/requests/packages/urllib3/util/ssl.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
/tmp/tmp9EMMYE/pip.zip/pip/vendor/requests/packages/urllib3/util/ssl.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Downloading pip-8.0.2-py2.py3-none-any.whl (1.2MB)
Collecting setuptools
Downloading setuptools-19.7-py2.py3-none-any.whl (472kB)
Collecting wheel
Downloading wheel-0.26.0-py2.py3-none-any.whl (63kB)
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-8.0.2 setuptools-19.7 wheel-0.26.0
/tmp/tmp9EMMYE/pip.zip/pip/vendor/requests/packages/urllib3/util/ssl.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
---> 10c2e361ddda
Removing intermediate container 89f87683332f
Step 6 : RUN sudo pip install --pre github3.py
---> Running in b5fa50bc4268
Collecting github3.py
/usr/local/lib/python2.7/dist-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
SNIMissingWarning
/usr/local/lib/python2.7/dist-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning

Is the service offline?

Kinda need it ASAP, and it's returning 403 for each and every endpoint

{"message":"Forbidden"}

Thanks! ^^

gitMask don't create pull request

I follow the tutorial on site, below is the commands that i used:

git clone https://github.com/Urahara/rotacao
cd rotacao
git checkout -b teste
# change some file
git add 
git commit -m "testing gitMask"
git bundle create commits.bundle origin/master
curl -L -X PUT --upload-file commits.bundle https://git.gitmask.com/v1/bundle/github.com/Urahara/rotacao/master

I don't get any error or anything, i did something wrong?

GitMask without Git/GitHub

Is there a way to use this program to erase file metadata without using git or GitHub? It appears to be dependent based on the code instructions from the README.

Add possibility to add PR comment

Could you please add a parameter, to add a PR comment?

Why? Because sometimes it is necessary to add a comment to understand the purpose of the Pull Request.

Option to preserve commit logs

gitmask squashes all commits into one commit with the message "anonymous commit" by ghost.
Though it removes identifications completely, it also loses much information in the change. Commit messages are often important in development.

It would be nice if there's an option to preserve commit logs and replaces the committer and the author with ghost to remove identifications:

  • Maintainers can get the outline of the request from commit messages.
  • The pull request can be more descriptive by splitting commits in appropriate logical units.

I believe it can be done by running this command in the branch created from the bundle instead of merging that branch into the target branch and squashing commits:

git rebase -f  ${destBranchName} -x "git commit --amend --reset-author"

Auth token is missed

Hi,
I'm getting {"message":"Missing Authentication Token"}%. Is there any authorization required?

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.