Coder Social home page Coder Social logo

yuki-kimoto / gitprep Goto Github PK

View Code? Open in Web Editor NEW
904.0 62.0 117.0 4.44 MB

Portable GitHub system into your own server

Home Page: http://gitprep.yukikimoto.com/

Perl 90.11% Shell 0.15% HTML 0.39% JavaScript 0.44% CSS 4.83% Dockerfile 0.14% Raku 3.94%

gitprep's Introduction

GitPrep - Portable GitHub system on your own server

GitPrep is portable Github system, which can be installed and hosted on your own Unix/Linux server.

GitPrep example

There is a demo setup at GitPrep example. You will find that GitPrep is a really portable GitHub system and has many features such as repository, pull request, issue and wiki.

Features

  • Github clone: GitPrep has the same interface as GitHub.
  • Support issue system
  • Portable: You can install GitPrep on your own Unix/Linux server.
  • Only needs Perl 5.10.1+.
  • Smart HTTP support: you can pull and push repository via HTTP.
  • Built-in web server, and reverse proxy support.
  • CGI support.
  • SSL support.
  • Public key authentication support

Installation is very easy, requiring only two commands. There are many other configuration settings that can be found in gitprep.conf.

Since the git repositories directory are accessible on the server, it becomes easy to fix mistakes like "git push -f origin master".

All repositories are safely stored only on your server.

This project is open sourced, all free.

Let's try GitPrep. If you like GitPrep, please share and talk about GitPrep in your community or your company.

A. Install and run GitPrep by embedded web server

GitPrep has its own web server. You can start GitPrep easily.

Create gitprep user

Create a gitprep user. This is not necessary, but recommended:

useradd gitprep
su - gitprep
cd ~

Check if git is installed

git --version

Check Perl Version

Check Perl version. You can use GitPrep if the Perl version is 5.10.1+;

perl -v

If you don't have Perl 5.10.1+, you need to install a newer perl version with perlbrew.

curl -L http://install.perlbrew.pl | bash
echo "source ~/perl5/perlbrew/etc/bashrc" >> ~/.bash_profile
source ~/.bash_profile

perlbrew install perl-5.16.3
perlbrew switch perl-5.16.3
perl -v

Download, setup and update - Simplified

# Pulls a shallow copy from this repository
git clone --depth=1 https://github.com/yuki-kimoto/gitprep
cd gitprep

# This will install the necessary modules, create the config file and data folder
./setup

# To update in future, run
./update

Start gitprep server

Download and setup - Detailed

Download from the repository and change directory:

git clone --depth=1 https://github.com/yuki-kimoto/gitprep
cd gitprep

Setup. Needed modules are installed.

./setup_module

If this fails and extlib directory already exists, try to remove "extlib" and run "./setup_module" again.

rm -rf extlib
./setup_module

Check if module setup successes. Run the following command.

prove t

If "syntax OK" is displayed, setup was successful.

Setup database.

./setup_database

If you used Gitprep version 1 and upgrade it to version 2, you need to upgrade database with the following command

# Backup gitprep directory for safety
cd ..
cp -rp gitprep gitprep.bak

# Upgrade database
cd gitprep
mv data/gitprep.db data/gitprep_v1bak.db
./setup_database
old/copy_database_v1_to_v2 data/gitprep_v1bak.db data/gitprep.db

If you install git in your local directory, you have to add the correct git command path to the gitprep.conf config file.

[basic]
;;; Git command path
git_bin=/home/yourname/local/bin/git

And do some settings

git config --global core.quotepath false

Start gitprep server

You can start the application by running the provided gitprep script. The application is run in the background and the port is 10020 by default.

./gitprep

(If you run this command again, gitprep server restarts.)

Then access the following URL.

http://localhost:10020

If you want to change the port, edit gitprep.conf. If you cannot access this port, you might change the firewall settings.

Stop gitprep server

You can stop the application by adding the --stop option.

./gitprep --stop

B. Run GitPrep as CGI script

You can run GitPrep as CGI script as the following site.

GitPrep example site

This is shared server. I assume you can connect the server via SSH and login with your own user.

Installation process is same as above except for create user.

If you finish installation, you can access the following URL.

http://yourhost/somepath/gitprep/gitprep.cgi

If you see Internal Server Error

If you see an internal server error, look at the log file (gitprep/log/production.log) to see what problem has occurred.

FAQ

I can't install Gitprep on CentOS

After CentOS 6, some perl core modules are not installed by default. You can install Perl core modules by the following command.

yum -y install perl-core

Can't find git command from GitPrep

If you install git into your local directory, you must add the correct git command path to the config file gitprep.conf .

[basic]
;;; Git command path
git_bin=/home/yourname/local/bin/git

blame doesn't work

In Gitprep, blame page uses "git blame --line-porcelain". In old git, there is no --line-porcelain option. We don't know when --line-porcelain was added to git. At least, blame page work well in git 1.8.2.1.

How to upgrade GitPrep

It is very easy. you only overwrite all files except for "gitprep.conf".

If you want to upgrade by "git pull", you can do it. you create "gitprep.my.conf" copied from "gitprep.conf", and do "git pull"

If you get a rainbow unicorn t-rex error after upgrading, you might be missing a new CPAN dependency. Run again "setup.sh".

I can't push large repository by http protocol

There are some reasons.

1. Git version is old

If you see "error: RPC failed; result=56, HTTP code = 200" , your git maybe old. Please upgrade to latest git. I checked git version 1.8.5.5.

2. GitPrep restriction

GitPrep restrict max post message size 10MB(This is default of Mojolicious)

You maybe see the following error

Delta compression using up to 4 threads.
Compressing objects: 100% (17830/17830), done.
Writing objects: 100% (18281/18281), 687.05 MiB | 129.92 MiB/s, done.
Total 18281 (delta 295), reused 18281 (delta 295)
error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly

Please increase increase the value of MOJO_MAX_MESSAGE_SIZE

# 1GB
export MOJO_MAX_MESSAGE_SIZE=1024000000

3. git restriction

git restrict post max size via http protocol. http.postBuffer value of git config is maybe small.

You maybe see the following error message.

error: RPC failed; result=56, HTTP code = 200
fatal: The remote end hung up unexpectedly
Counting objects: 18281, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (17830/17830), done.
Writing objects: 100% (18281/18281), 687.05 MiB | 133.23 MiB/s, done.
Total 18281 (delta 295), reused 18281 (delta 295)
fatal: The remote end hung up unexpectedly
Everything up-to-date

Please increase the value of http.postBuffer.

# 1GB
git config http.postBuffer 1024000000

How to use reverse proxy?

You can use GitPrep via reverse proxy access

     ----------------------------     ------------
---->| Web Server(Reverse proxy)|---->|GitPrep   |
<----| (Apache, etc)            |<----|          |
     ----------------------------     ------------

I show apache config example. You can use Name virtual host.

# HTTP
<VirtualHost *:80>

  ServerName myhost.com
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://localhost:10020/ keepalive=On
  ProxyPassReverse / http://localhost:10020/
  RequestHeader set X-Forwarded-Proto "https"
    
</VirtualHost>

If you use GitPrep via https, you should set X-Forwarded-HTTPS Request Header.

# HTTPS
<VirtualHost *:443>

  ServerName myhost.com
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://localhost:10020/ keepalive=On
  ProxyPassReverse / http://localhost:10020/
  RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>

How to use reverse proxy with sub directory?

GitPrep support reverse proxy with sub directory.

At first, set [reverse_proxy]path_depth option.

[reverse_proxy]

;;; Reverse proxy path depth (default: none)
;;; If proxy path is http://somehost.com/foo, you set path_depth to 1.
;;; If proxy path is http://somehost.com/foo/bar, you set path_depth to 2.
path_depth=1

Next you set http server config file. The following is apache example.

<VirtualHost *:80>
  ServerName perlcodesample.com
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  ProxyRequests Off
  ProxyPreserveHost On

  ProxyPass /app1 http://localhost:10020/app1 keepalive=On
  ProxyPassReverse /app1 http://localhost:3000/app1

  ProxyPass /app2 http://localhost:10021/app2 keepalive=On
  ProxyPassReverse /app2 http://localhost:3001/app2
  
  RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>

How to import already existing repositories?

You can import already existing repositories by script/import_rep script.

cd script
./import_rep -u kimoto rep_dir

-u is user name. rep_dir must contains git respoitories like the following.

rep_dir/project1.git
       /project2.git
       /project3.git
       /project3.git

If description file exists in git repository, it is copied.

I can't add more than one collaborator

This is a GitPrep bug before version 1.5.1. Please use after version 1.5.2.

If you continue to use GitPrep before version 1.5.1, collaboration table is broken. Please fix it the following way.

# Run SQLite client
sqlite3 data/gitprep.db

# drop collaboration table
drop table collaboration;

# Restart
./gitprep

I want to set time zone.

OK. GitPrep supports time zones. You can set time_zone option in conig file.

[basic]
;;; Time Zone
;;; GitPrep time zone is GMT by default
;;; You can set your local time zone.
time_zone=+9:00

How to hide user home directory in ssh repository URL?

1. Use symbolic link and ssh_rep_url_base option

At first, set [basic]ssh_rep_url_base option to /~/git

;;; SSH repository url base
; For exampke, If you set this value to /~/git, SSH repository url become
; ssh://[email protected]/~/git/kimoto/gitprep.git
; ~ is exapned to user home directory automatically
ssh_rep_url_base=/~/git

Next, you create symbolic link to /home/gitprep/gitprep/data/rep

cd ~
ln -s ~/gitprep/data/rep ~/git

2. Use only public key authentication and set [basic]ssh_rep_url_base to empty

If you use only public key authentication, you can access ssh repository using the following url.

ssh://[email protected]/kimoto/gitprep.git

If you set [basic]ssh_rep_url_base to empty string, this URL is shown on Browser.

;;; SSH repository url base
; For exampke, If you set this value to /git, SSH repository url become
; ssh://[email protected]/git/kimoto/gitprep.git
ssh_rep_url_base=

How to get atom feed of commits page

You can get atom feed of commits page by the following URL

http://somehost.com/kimoto/gitprep/commits/master.atom

How to run GitPrep from root user

You can manage the application from the root user.

Start the application

sudo -u gitprep /home/gitprep/gitprep/gitprep

Stop the application

sudo -u gitprep /home/gitprep/gitprep/gitprep --stop

If you want to start the application when the OS starts, add the start application command to rc.local(Linux).

If you want to make it easy to manage gitprep, then create a run script.

mkdir -p /webapp
echo '#!/bin/sh' > /webapp/gitprep
echo 'su - gitprep -c "/home/gitprep/gitprep/gitprep $*"' >> /webapp/gitprep
chmod 755 /webapp/gitprep

You can start and stop the application with the following command.

# Start or Restart
/webapp/gitprep

# Stop
/webapp/gitprep --stop

I want to use GitPrep on Perl 5.8.7 system

GitPrep 2.0 dropped support for Perl 5.8.7 because latest Mojolicious doesn't support Perl 5.8.

You can choose between those options:

1. use GitPrep 1.xx

GitPrep 1.xx support Perl 5.8.7+. You can use GitPrep v1.12.

https://github.com/yuki-kimoto/gitprep/archive/v1.12.tar.gz

You can see version 1.12 document.

GitPrep version 1 Document

2. You can install your local perl by perlbrew.

http://perlbrew.pl/

perlbrew is a very useful perl installation tool without breaking your system perl.

If you install perl 5.10.1+ with perlbrew, you can install latest GitPrep.

I know information about GitPrep 2.0 upgrading.

If you use GitPrep on Perl 5.8 and install newer perl with perlbrew, you must remove extlib directory before running the "./setup_module" command.

rm -rf extlib

You should know the following small changes.

1. X-Forwarded-HTTPS header is deprecated. use X-Forwarded-Proto header.

# This is deprecated in GitPrep 2.0
RequestHeader set X-Forwarded-HTTPS "1"

# Use X-Forwarded-Proto instead
RequestHeader set X-Forwarded-Proto "https"

2. remove [basic]show_ignore_space_change_link option

remove [basic]show_ignore_space_change_link option. and move this feature to project settings page.

# Go to settings page in your project
/kimoto/gitprep/settings

3. remove [basic]show_ignore_space_change_link option

remove [basic]show_ignore_space_change_link option. but enable this feature on in project settings page.

# Go to settings page in your project
/kimoto/gitprep/settings

4. remove [basic]encoding_suspects option

remove [basic]encoding_suspects option and move this feature to project settings page.

# Go to settings page in your project
/kimoto/gitprep/settings

**5. mail is required for user registration.

mail address is require for user registration.

Pull requests is removed when GitPrep upgrade

Sorry, I found critical database specification mistake in GitPrep from v2.0 to v2.2, and fix it in v2.3. All your pull requests is removed when upgrading from v2.0-v2.2 to v2.3+. Please create Pull request again by the following command.

old/fix_v2_pull_request data/gitprep.db

Are there other ways to install GitPrep?

Sparrowdo

You can use Sparrowdo to install GitPrep on remote server ( by ssh ) or on running Docker container:

Here is example for Docker minimal Debian image:

$ zef install Sparrowdo

$ docker pull bitnami/minideb-extras 
$ docker run --name instance0 -d bitnami/minideb-extras -expose=10020:10020  bash

$ sparrowdo \
  --bootstrap
  --docker=instance1 \
  --no_sudo --sparrowfile=deploy/sparrowfile.install.pl6 \
  --format=production

$ firefox 127.0.0.1:10020

And for remote server:

$ sparrowdo \
  --bootstrap
  --host=$ipaddress \
  --no_sudo --sparrowfile=deploy/sparrowfile.install.pl6 \
  --format=production

$ firefox $ipaddress:10020

Caveat - this installation method is only supported for Linux OS.

Follow Sparrowdo for the details.

Dockerfile and docker-compose

You can use Docker to build your own container based on Alpine Linux. This image configures SSHD to be run by user root and GitPrep to be run by user gitprep.

docker build ./deploy -t jndeverteuil/gitprep:latest

With that build, you can start a service with docker-compose:

version: "3"

services:
gitprep:
    image: jndeverteuil/gitprep:latest
    container_name: gitprep
    hostname: gitprep
    restart: always
    ports:
    - "10020:10020"
    - "0.0.0.0:2222:22"
    volumes:
    - gitprep:/home/gitprep
    - sshd:/etc/ssh

volumes:
gitprep:
sshd:

For Developers

Run GitPrep in development mode

If you are a developer, you can start the application in development mode.

./morbo

Then access the following URL.

http://localhost:3000

If you have git, it is easy to install from git.

git clone git://github.com/yuki-kimoto/gitprep.git

It is useful to write configuration in gitprep.my.conf, not gitprep.conf.

The way to create installable Mojolicious application

GitPrep is the best example for developers who want to create installabel Mojolicious application.

Even if shared hosting server, you can install Mojolicious application as CGI.

###1. cpanm and cpanfile, module installation and version control###

Tatsuhiko Miyagawa's cpanm and cpanfile is the tool which install CPAN module easily.

cpanm is a command. It is one file. you can download cpanm easily and put it in your directory.

cpanfile is a definition of module name and version. you create the following file which name is "cpanfile".

requires 'Time::HiRes', '== 1.9732';
requires 'DBD::SQLite', '== 1.50';
requires 'DBI', '== 1.634';
requires 'DBIx::Connector', '== 0.53';
requires 'Object::Simple', '== 3.14';
requires 'DBIx::Custom', '== 0.36';
requires 'Validator::Custom', '== 1.01';
requires 'Config::Tiny', '== 2.23';
requires 'Data::Page', '== 2.02';
requires 'Data::Page::Navigation', '== 0.06';
requires 'Mojolicious', '== 6.57';
requires 'Mojolicious::Plugin::BasicAuth', '== 0.08';
requires 'Mojolicious::Plugin::AutoRoute', '== 0.19';
requires 'Mojolicious::Plugin::INIConfig', '== 0.03';
requires 'Mojolicious::Plugin::DBViewer', '== 0.28';
requires 'Text::Markdown::Hoedown', '== 1.01';
requires 'Time::Moment', '== 0.38';

If you want to install all defined modules, you only run the following command.

perl -Iextlib/lib/perl5 cpanm -L extlib --installdeps .

It's ok. but in some environment Module::CoreList is not installed, and latest ExtUtils::MakeMaker is needed for module installation.

I write the following way in "setup_module"

perl cpanm -n -l extlib Module::CoreList
perl -Iextlib/lib/perl5 cpanm -f -L extlib ExtUtils::MakeMaker
perl -Iextlib/lib/perl5 cpanm -L extlib --installdeps .

###2. CGI is supported in Mojolicious

It is good luck for us that Mojolicious author Sebastian Riedel decided to support CGI in Mojolicious.

We can create web application which support CGI with a little effort.

All you do is always using url_for method or url_with method in your templates when you write URL.

<a href="<%= url_for('/foo') %>">Bar</a>

<a href="<%= url_with('/foo') %>">Bar</a>

Mojolicious automatically resolve URL for both embded server and CGI.

After that, you only prepare CGI script to call Mojolicious application in production mode.

#!/usr/bin/env perl
use FindBin;
use lib "$FindBin::Bin/extlib/lib/perl5";

$ENV{MOJO_MODE} = 'production';
require "$FindBin::Bin/script/gitprep";

Web Site

GitPrep Web Site

Internally Using Modules

GitPrep depends on the following modules, especially Mojolicious is the base of GitPrep. Thanks to Mojolicious author,Sebastian riedel.

Sister project

These are my Perl web application projects.

  • WebDBViewer - Database viewer to see database information on web browser.

Bug

If you find bug, plese tell me on GitHub issue. Small bugs is OK! I'm pleasure if you report anything bugs.

Please post only bug information.

Mailing list (Asking questions and feature requests)

You can ask questions about usage of GitPrep in this mailing list.

If you want new features, please post the request to this mailing list.

Author

Yuki Kimoto

Yuki Kimoto Perl Blog

Yuki Kimoto Twitter

If you are interested in my project and activity, Please follow me on Twitter.

Contributers

Thanks for helping my GitPrep project.

Copyright & license

Copyright 2012-2016 Yuki Kimoto. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

gitprep's People

Contributors

alpha6 avatar bilogic avatar brainchild0 avatar dams avatar djzort avatar emil-perhinschi avatar felipemm avatar flixh avatar jason-cooke avatar jndeverteuil avatar johnolinda avatar kberov avatar knittl avatar maspalio avatar mastergt7 avatar melezhik avatar mrmuskrat avatar pgmot avatar reneeb avatar sn0 avatar socialmedialabs avatar spatil47 avatar svendowideit avatar tetsuh avatar toshi-ara avatar troneill avatar yuki-kimoto 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  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

gitprep's Issues

cgi setup failed for apache installation

Hi,
I installed GitPrep according to your Readme. Donwloaded the zip file moved it in the /var/www/html folder. Enabled CGI handling in the apache httpd.conf settings and started the ser(gitprep/setup/setup.cgi file. After click on the Setup button it took a while then it prints a error message:

Result
Error, Setup failed. See setup/log/production.log
<<
The production log contains following line:
[Mon Jul 29 18:55:13 2013] [error] Can't close pipe install modules:
[Mon Jul 29 18:55:27 2013] [error] Can't close pipe install modules:

Is this a bug or did I something wrong? Do I need to install some apache modules?

Thanks for this. I successfully installed it already and I really like it. I could use the build-in Mojo framework again but I think, if my problem is a bug it would help to report it.

My system:
Korora (Fedora 18 kernel 3.9.11)
Apache 2.4.4(Fedora)
Server buld May 17 2013 12:22:01

Suggestion: use a stronger hash for user passwords

First - gitprep looks really neat!

However, it may be a good security idea to hash passwords with a more difficult hash function than md5 (even 2x MD5 with a salt :).

my $password_encryped = md5_hex md5_hex "$salt$password";
is where I'm referring to.

https://metacpan.org/pod/Mojolicious::Plugin::Bcrypt might be a good option here, but I'm not sure if it will work with the version of mojo gitprep ships with.

create new repo dialog does not have a private-repo tickbox

which means one has to create a vague public one first, then make it private, then change the name / description :)

oh, and then i notice that a private repo (and its description) are still listed for users that should not be able to see them - I hope this is not intentional, but if it is, then that needs to be highlighted to the user.

about markdown style

Hi Yuki,

At GitHub, when I write:

a
b
c

It should like this:

a
b
c

However, when I use GitPrep, it changed to the following style:

a b c

Hope the GitHub style will not change when we use GitPrep, if there is no particular functions were reserved.

Thanks,

Qinhu

Can not create a second collaborator

Hi Yuki,

I want to share a repo with my collaborators, I successfully create a first collaborator but when I add the second one, the server return "Internal Error" and this is the log file:

[Fri Mar 7 23:16:09 2014] [error] /wangqinhu/demo/settings/collaboration?op=add: DBD::SQLite::st execute failed: column user_id is not unique. Following SQL is executed.
insert into "collaboration" ("collaborator_id", "project_name", "user_id") values (? , ? , ? )
(DBIx::Custom::execute) at template /settings/collaboration.html.ep line 48

GitPrep setup on centos 6.4 with git version 1.8.5

Thanks,

Qinhu.

Upgrade 1.5.2 and collaborators issue

I replaced my installation by the new one, restarted and now i see i have versino 1.5.2 but still i cant add collaborators to a second repo, i was able to do it in the first repo but i get a internal error in the second repo, i should do:

Run SQLite client

sqlite3 data/gitprep.db

drop collaboration table

drop table collaboration;

Restart

./gitprep

or what can be wrong?

Configuring LDAP Authentication

社内ユーザーを管理しているLDAPサーバーで、Gitprepのユーザー認証をさせたいのですが、実装予定はあるでしょうか?

fatal: Authentication failed

Hi Yuki,

GitPrep is really great project. I setup it on Mac OS X (10.9.1, local) and Linux (Cent OS 6.4, server), when I use git push, both local and server return the following message:

Username for 'http://xxx.xxx.xxx.xxx': username
Password for 'http://[email protected]':
fatal: Authentication failed for 'http://xxx.xxx.xxx.xxx/gitprep.cgi/username/repox.git/'

I am sure I have the right username and password, and I also can access the server via ssh key, would you please help me to figure out the problem?

BTW, there is no problem when setup under a particular user home directory.

Thanks,

Qinhu.

cpan mirror configuration error

Hi all,

I try to install the lastest release of gitprep and I couldn't download modules with default mirror. I must modify cpanm file, line 1439 : $self->{mirrors} = [ 'http://cpan.metacpan.org' ];

Sincerely

Shared Repos

Is it possible to have users share repos like you can with git without duplicating the repos? We have three existing repos that are used by multiple users that we'd like to import into gitprep.

Can I run the import_rep script for each user and then replace the user's repo directories with links to the original repo directories?

Example: Say that I have three repos that I use /git-repo/One.git, /git-repo/Two.git, and /git-repo/Three.git. After running the import I have One.git, Two.git and Three.git under .../gitprep/data/rep/mmusgrove. Could these directories be removed and replaced with links to the ones under /git-repo?

It appears to work but are there any drawbacks or side effects that I should be aware of?

Wiki

The wiki is empty :-/

Hide users in main page

I want hide users in index page. I changed the index.html.ep in auto directory but nothing happened with yourdomain.com/
How i can hide this values?

Thanks in advance.

Time zone

Now, GitHub display local time. GitPrep is GMT. I want the feature of setting time zone.

List form of pipe open not implemented

When I try to create a repository running on Strawberry Perl I get this error.
The actual cause is this line

 open my $fh, "-|", @git_init_cmd

In GitPrep::Manager::_create_rep (and probably in several other places)

Windows can only handle strings and not lists or arrays in that call to open.

Future Request: UI for adding ssh public keys

It will be nice if GitPrep has GitHub like UI for adding SSH Public Keys.

GitPrep is pretty good support both http and ssh. but I need to edit ~gitprep/.ssh/authorized_keys manually if I want to add SSH Public Keys.

Links to other resources in wiki

It is possible to add a way to link to other "*.md" files on the same repository ? I've tried with relative paths but it doesn't work on the README.md page.

Make gitprep installable CPAN module

Hi,

Congratulations! This is a very interesting project, I'm sure it can be adopted by a large set of users since git is a great tool but a lot of IT people would like a GitHub-like interface for their intranet.

I tryed to install it, but, since I've tryed from an intranet it didn't work. I'm opening this issue, cause I'd like to discusse about the possibility to pack gitprep as a CPAN distribution, so the installation would be something like

cpan App::gitprep

I already did this for other Mojolicious webapps, following Making your application installable set of instructions.

I this I could do this modification, then forking, and pulling back, but, it is worth to discuss about it with other contributors.

error with pulling and pushing repos via http

Hey,

first I have to thank you for this amazing managment tool. For smaller projects (less than 10M) it works very fine for us. I have one user whose project size is about 290M. I only can push it, if I set http.postBuffer to 200M and increase MOJO_MAX_MESSAGE_SIZE env to 5242880200. But I am not able to pull it. I get http error 502. If I lower both values I get http error 200.

What else could I do to get it work?

Suggestion: Search Capability

First let me say I think GitPrep is great. Nice work!

I am wondering if you have plans to add search capability. Being able to search a collection of Git repositories by category would be useful, especially if there are many users with many repos. I'm not sure how one would go about organizing repos into some kind of category structure, though.

Future Request: code snippet management like Gist.

It will be nice if Gitprep has integrated Gist like code snippet management.

There are several independent Gist clone ( heso, gistub and memocurial ).
But I hope one which share almost code from Gitprep and mojolicious.

Thanks.

git pull upgrade not quite successful

because dreamhost doesn't have Text::Markdown::Discount and I didn't need it before.

this results in the initial and user screens being ok, but anything inside the repo failing with the loverly rainbow-unicorn-dinasour.

I re-ran the setup.php, and things are good now - so I might just send you a PR that updates the docco a little

[error] Can't close pipe install modules: [nothing ...]

Is there any way to get more information regarding why installation fails on a Liquidweb shared server running Centos 5.10. I've built Git (git version 1.9.0) on a local version of of Centos 5.10 and uploaded it to the server, and it appears to be working properly -- I was able to clone your repository to my home directory and setup runs, but creates an error message: Error, Setup failed. See setup/log/production.log. When I look at the log, there is nothing there that points me in the right direction:

[Thu Apr 17 17:50:47 2014] [error] Can't close pipe install modules: 

Any ideas on how else I can troubleshoot what might be wrong?

Packages needed!

I was going through your install and noticed that you have no mention of packages that are needed for a minimal install RH/CentOS.

packages required to get working are
cpan
make
perl-Test-Base.noarch
perl-Time-HiRes
perl-DBD-SQLite
cpp
gcc

Installed with perl:
cpan YAML
cpan Text::Markdown::Discount

..It went pretty smooth after I installed these packages.

Can't create/rename or import repo beginning with a dot

I can't create a repo with a . at the beginning (I didn't test others characters or others placements for the dot) It throw that I use invalid characters.

I like to use git to keep my settings (in particular .vim).

Is that a choice ?

Feature-Request: HTTPS Git Clone URL

If I login through HTTPS to Gitprep, would it be possible that the Git clone URL (HTTP | SSH) changes to (HTTPS | SSH)? I hope you understand what I mean :)

Only ascii character could be used for password

Current version of gitprep allows password as ASCII character.
It will be great if it supports every character for password.

If ORM which is used by gitprep escapes dangerous character enough,
then I don't think restricting password character is needed.

templates/auto/_admin/user/create.html.ep:

  password => [
    ['not_blank' => 'Password is empty.'],
    ['ascii' => 'Password contain invalid character.'],
    [{'length' => {max => 20}} => 'Password is too long.']
  ],

roadmap, plans and progress

first up, thankyou very much, gitprep, as you released it at version 1 has helped me immeasurably already.

every few months, I come back to see if anything has changed, and if i should upgrade, and whats going on, and tbh, i pretty much have no idea.

Is there a roadmap that i'm not finding? or some list of where you're at?

I'm using gitprep on some semi-private repos that i'm hosting on a shared host at dreamhost - so pure cgi - simple and nice - thank you :)

Sven

Sort repo list?

Hi,

Will Gitprep have the ability to sort the list of repos?

Thanks!

"Internal Error" when creating repo with README

newly setup system. (Linux MATE15)
SUccessfully installed GitPrep by following the instrusctions.
use Chrome opened the website http://xxxx:10020
logged in with Admin account
Created another user
Logged in as that user
created new repo, and ticked the checkbox "Initialize this repository with a README"

Then
Internal Error happened.

If created new repo WITHOUT ticked "Initialize this repository with a README". Repo can be created successfully.

Good! only 2 moments..

else gitprep for reverse proxy, ip address is 127.0.0.1:9000 - is not access in world.
in project-repository link instesd: http://127.0.0.1:9889/Petro/phpaaa.git - no good ...
and question 2: autorizate api ? from existen cooke from domen .. or another method, conect to mysql base and read, or api function send login/pasword and recive true or false ...

Cant Install

So I went to setup.php and it redirected me to setup.cgi. I clicked setup, waited a while then got this:

Result
Error, Setup failed. See setup/log/production.log

I went to the log it said this:
[Sat May 24 13:41:48 2014] [error] Can't close pipe install modules:
[Sat May 24 13:43:27 2014] [error] Can't close pipe install modules:

So what do I do?

About submodule link

GitPrep、素晴らしいプロダクトをありがとうございます。

質問ですが、Githubではサブモジュールはシンボリックリンクっぽく元のリポジトリに飛びますが、GitPrepでは対応していないのでしょうか。
恐竜っぽい画像が表示されServer errorとなりました。

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.