ericpaulbishop / redmine_git_hosting Goto Github PK
View Code? Open in Web Editor NEWThis project forked from untoldwind/redmine-gitosis
A ChiliProject/Redmine plugin which makes configuring your own git hosting easy.
This project forked from untoldwind/redmine-gitosis
A ChiliProject/Redmine plugin which makes configuring your own git hosting easy.
Tried both: localhost -p 2000 and localhost:2000
With a port the git URLs change to, ex: git@site:repo.git
becomes ssh://git@site:socket/repo.git
Given:
project with an identifier of parent_project and a sub project of sub_project.
When a project is created, the url is stored in the repository as repositories/sub_project
A new repo is created at:
/home/shared/repositories/sub_project.git
However, another repo is created at /home/shared/repositories/parent_project/sub_project.git
Hope this makes sense.
Test case :
It's quite tricky to have to save both Information and Repository tab to really make a project private.
And I think that the 'Git Daemon' select should rather be disabled (in an HTML input meaning), in order not to erase the setting, when the project is private, instead of forcing it's value to 'Disabled' (in a setting meaning); this way, when we re-publish the project, anonymous access is automatically accessible again.
What's the deal with the naming conventions of the ssh keys and gitolite usernames?
hello redmine_kyse_1305304142_465473, the gitolite version here is 1.5.4-1ubuntu0.1 (Debian)
Wouldn't it make more sense to use the gitolite naming conventions. For instance, I currently have [email protected] and [email protected]. These are not throught the redmine plugin ssh keys because redmine and gitolite were installed before this plugin. So all I have to do is use the kyse usename in the config file and I'll be able to access a table from both home and on the server itself.
The way i see the plugin setup right now, each key I enter under my redmine user generates a seperate ssh key username for gitolite instead of using the key name from redmine as it's naming convention. Wouldn't it make sense to use redmine_username@keyname_from_redmine.pub.
This way, after I install this plugin ontop of an existing gitolite setup, and I want to use redmine to add my keys instead of the shell, I can continue to just use kyse as my username in the gitolite-admin/conf/gitolite.conf file.
In addition this would allow you to expand this as a feature to import existing public keys from gitolite-admin/keydir/ into your redmine user account. So, for isntance, I'd goto my account page under redmine, click on import existing keys, and my list of keys would then also include kyse@server and kyse@home in addition to any I've already entered.
The only issue I see with this concept would be a security thing. What if existing gitolite users are not currently using the redmine setup for that gitolite server. If someone knew about it, they could create a redmine account with that username, import and gain access to some secret repo not on redmine. Or what if the redmine username of someone didn't match the username the gitolite admin setup for their gitolite-admin username, the same scenario as before could be applied, plus they wouldn't get their keys they're looking for imported.
Perhaps a patch to redmine could be made to check the username of the existing keys vs the username desired. If the username already exists under gitolite, it could force manual approval be required from the redmine site admin so they can confirm they have the correct user. Or perhaps so way of authenticating via one of their existing ssh logins, but that's way beyond what I could dream of coding up at my level.
Caught this error in logs while working today: ActiveRecord::StatementInvalid (Mysql::Error: Unknown column 'created_on' in 'order clause': SELECT * FROM git_caches
ORDER BY created_on ASC LIMIT 1):
This looks like it's just a simple typo in vendor/plugins/redmine_git_hosting/lib/git_hosting/patches/git_adapter_patch.rb , trying to sort by "created_on", which doesn't exist. Everything works if I use created_at instead.
I tried installing this about 4 times, and failed each time. The configuration instructions on the Readme is really confusing, and there's no step by step instructions. I don't mind installing this manually, even if it takes a little work, but I need to know what to do. :( This project looks really great too.
I'd really appreciate it!
To enable http repositories with apache and mod_fcgid you need to put "Passheader Authorization" into the virtualhost section of the apache config. Otherwise you will get "fatal: Authentication failed" when trying to access a repo via https.
This is not exactly a Issue but I wanted to write somewhere down, so other people can find it.
I seem to have everything setup pretty well, however, SmartHTTP isn't working for me, HTTP or HTTPS.
When I try to clone a url such as redmine-site.com/project.git, I get an error..
icearmy@icyplex280:~$ git clone https://[email protected]/project.git
Cloning into project...
Password:
fatal: The remote end hung up unexpectedly
I realize I have provided pretty much no information on what the problem could be, but just let me know what you need me to tell you.
So far I can come up with, is my http server domain is exactly the same as the redmine site. I know this is the proper way to do SmartHTTP, but I don't understand how it fails. I can't find any error logs of the problem either.
Passheader Authorization
did nothing for me either
I've noticed that Repository.fetch_changesets_for_project() only seems to pull in changesets for the master branch. I guess it's just the difference between running "git log" and "git log --all"? Or maybe "git push --all" in a post-commit hook somewhere.
I am running CentOS 5.6, with redmine 1.2 installed and running. When I try to add a git repository from within a redmine project, I see:
"Scm command is not available. Please check settings on the administration panel."
When I go to the administration panel>Settings>Repositories, I see:
[x] Git (!) /tmp/redmine_git_hosting/run_git_as_git_user
I checked and the file /tmp/redmine_git_hosting/run_git_as_git_user exists and is accessible by git. and apache
When I check visudo I have:
apache ALL=(git) NOPASSWD:ALL
git ALL=(apache) NOPASSWD:ALL
When I look the redmine_git_hosting settings page I see
Git user is able to sudo to Web user? (!)
Web user is able to sudo to Git user? (!)
Any idea why redmine can't see /tmp/redmine_git_hosting/
Thanks
Looks like your label_public_keys path leading to my/public_keys doesn't lead anywhere.. there's no page available to display here.
Just loaded the latest and got this....
ActionView::TemplateError (undefined method `+' for nil:NilClass) on line #14 of vendor/plugins/redmine_git_hosting/app/views/projects/settings/_repository.rhtml:
11:
12: <% if @repository && @repository.is_a?(Repository::Git) %>
13: <%
14: mirror_pubkey = GitHosting.mirror_push_public_key
15: extra_vals = { :git_daemon=>"1", :git_http=>"1", :notify_cia=>"0" }
16: extra_vals.each_key do |e|
17: begin
vendor/plugins/redmine_git_hosting/app/views/projects/settings/_repository.rhtml:14:in `_run_rhtml_vendor47plugins47redmine_git_hosting47app47views47projects47settings47_repository46rhtml_locals_object_repository'
vendor/plugins/redmine_git_hosting/app/views/projects/settings/_repository.rhtml:1:in `_run_rhtml_vendor47plugins47redmine_git_hosting47app47views47projects47settings47_repository46rhtml_locals_object_repository'
passenger (3.0.8) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
passenger (3.0.8) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
passenger (3.0.8) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send'
passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application'
passenger (3.0.8) lib/phusion_passenger/utils.rb:479:in `safe_fork'
passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:180:in `start'
passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
passenger (3.0.8) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
passenger (3.0.8) lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
passenger (3.0.8) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
passenger (3.0.8) helper-scripts/passenger-spawn-server:99
Rendering /opt/redmine-1.2/public/500.html (500 Internal Server Error)
Gitolite Server Domain should be a separate entry from: Gitolite Public Server Domain (where users connect, what is displayed, etc)
Many hosting services (Amazon EC2, etc) will charge you for bandwidth for pulling from yourself that way and ask you to use either localhost your machines local-ip.
Thanks for the great work on this plugin. Since lots of people are still new to git, and the integration is not a simple thing, it would be helpful to have some troubleshooting steps, or logging that we can use when things aren't working.
I'm presently stuck, and am having a hardtime working out what's broken because of a lack of logging, or maybe I just can't find it. I have everything set up, running Chiliproject 1.3.0, with the latest version of the plugin. But it does not create repositories for new projects, and it does not add chiliproject users to existing repositories.
So I turned to logging to see what else might be the trouble. After switching Redmine to debug level logging, I can see a few relevant lines in the log, but nothing that notes how the plugin is trying to create a project, or add a new user to authorized_keys or to existing projects. I can see:
Repository Load (0.2ms) SELECT * FROM `repositories` WHERE (`repositories`.project_id = 15) LIMIT 1
Repository::Git Create (0.1ms) INSERT INTO `repositories` (`path_encoding`, `project_id`, `git_http`, `url`, `log_encoding`, `type`, `git_daemon`, `login`, `password`, `root_url`) VALUES(NULL, 15, 1, '/home/git/repositories/woogoo.git', NULL, 'Git', 1, '', '', '/home/git/repositories/woogoo.git')
That's it. I can also visit the Repository tab on my newly created project, and get a nice debug output of
Repository Load (0.2ms) SELECT * FROM `repositories` WHERE (`repositories`.project_id = 15) LIMIT 1
Shelling out: 'git' '--git-dir' '/home/git/repositories/woogoo.git' 'branch' '--no-color'
EnabledModule Load (0.5ms) SELECT name FROM `enabled_modules` WHERE (`enabled_modules`.project_id = 15)
Shelling out: 'git' '--git-dir' '/home/git/repositories/woogoo.git' 'ls-tree' '-l' 'HEAD:'
Rendering template within layouts/base
Rendering repositories/git_instructions
GitolitePublicKey Load (0.4ms) SELECT * FROM `gitolite_public_keys` WHERE (`gitolite_public_keys`.user_id = 3) AND (`gitolite_public_keys`.`active` = 1)
So I can see that the SQL calls are working fine, but I have no idea what's actually going wrong when it tries to create the repo. I have the same problem with creating a new user key, or adding a user to an existing project. I can see that the database is working perfectly, but I can't see what's failing or where.
We can use this issue to build out a good set of troubleshooting steps. Even a step by step of this is how the plugin tries to create a repo would be useful, so people can try to parallel the experience in the shell. An alternative might be to add log lines similar to the "Shelling Out:" line above. Or maybe just a logfile for error output from Git. Thoughts?
Creating new projects always creates a new repository, event if the repository module is not enabled.
Hi,
i used perfectly redmine-gitosis by xdissent for some times, but now i just moved to gitolite i'd like to try your plugin.
To that purpose i upgraded redmine to 1.2 stable and it does work well.
I couldn't find any documentation how to install nor configurate your plugin, so i just installed it the usual redmine way.
But i got a blank screen when i restart my web server (apache+passenger) and try to load redmine. Redmine's log gives me ""404 Not found".
Any advice please ? or a link ?
How to reproduce:
Workaround:
If manually click on SSH button then right URL will be displayed.
I you somehow stop the process in the middle when updating the temporary gitolite-admin folder created in the /tmp/ from the plugin, the gitolite-admin repositore can crash somehow.
Then aways when someone change something, before it push the commit to the server, it drops an error and stop the process.
So the simple solution is to purge the folder, then the plugin will clone again before made the commits changes and push again.
I think for a stability solution, was nice if the response from the remote gitolite-admin was not successful for any reason, purge the folder then try again, if don' t fix, throw an error for the redmine administrator fix it.
We have many projects where we don't need any repository. So the repository module is disabled in project configuration. After installing the plugin on every project overview page the "Git Repository" block is shown even if the module is enabled or not.
I think when the module "Repositories" is disabled for a project, no output should be made by this plugin.
Do you think also?
Best Regards
Renzo
I checked the redmine_git_hosting plugin out into my vendor/plugins directory. Git is installed as well as the 3 gems documented in the project page. Redmine fails to start. When I ran the command:
rake db:migrate:plugins RAILS_ENV=production
I received the error message:
undefined method sq_bin' for class
Class'
sq_bin appears to be a function defined in the Redmine git adapter, but I thought it was included as part of all the scm adapters. Perhaps I am missing a gem? Thank you for any assistance.
When I set any values in the new caching fields, the Repository tab will always show the repo for the most recent commit, no matter which project that commit was on. For example, if I commit to project A, then visit project B's Repository tab, I will see content from project A. I see that project A repo when visiting projects C, D, and Q also.
Secondarily, I suspect the cache is not clearing on commit. I can commit changes which I can see in the repository, but which do not appear in Redmine's repository tab. I've tried forcing it to re-read the commit log with ruby script/runner "Repository.fetch_changesets" -e production , and through the web services command http://projects.example.com/sys/fetch_changesets?key=<123456ABCDEFG>&id=project . This could be related - ie I could just be seeing cache when I look at the repository tab. I tried setting the caching values on the settings page to 0 and to 1, but this behavior is unchanged. These are small repos, so it's totally possible that the cache fits into 1MB. :| A "do not cache" selection option would be helpful here.
I did have a problem after the yourchili install - trying to commit to repos gave an error that post-commit couldn't find update.secondary. So I added the script in ~git/.gitolite/hooks/common as an empty, executable file, and ran gl-setup as the git user. I didn't expect it to cause any problems, but if yourchili does anything fancy with the hooks that might be related.
Hi,
I have both gitolite and redmine working just fine, i can create repos and access with the keys i put on gitolite fine and redmine works awesome, i installed the plugin, configured it on the plugin page, put the keys in place, one that can commit to gitolite-admin repo and one that has shell access as the git user. But when i create a project on redmine nothing happens, i see no log anywhere, no error anywhere, messages log dont have any ssh attempt, redmine and nginx logs have nothing related, same with adding a key to a user, it's getting added on the database, but nothing happens with gitolite.
I've been banging my head for 2 days, it's probably something stupid but i can't think of any other possible problem.
Any help?
Thanks
Glad to see you've merged my work into your new_hook_handling
. I can now start deleting my feature branches.
Regarding the "less invasive models", you did what I was going to do with the CIA notifications stuff, ie, stick that into extra.
Yet, regarding the CIA notifications, we're still invasive in the changeset's table, ie, in order to not repeat notifications, for example, when branches are merged, I created a cia_notified
column.
How do you think we should handle that, create a notifications table, related to changeset's, to store that "bit"?
I'm having trouble with this plugin crashing redmine entirely. I get this information out of Phusion's error page, or on the terminal if I run rake db:migrate :
example** Invoke db:migrate_plugins (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
undefined method `[]' for nil:NilClass
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/builder.rb:159:in `build'
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/route_set.rb:310:in `add_route'
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/route_set.rb:19:in `connect'
/srv/www/projects.example.com/chili/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:77:in `add_route_for_project_with_map'
/srv/www/projects.example.com/chili/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:69:in `add_route_for_project'
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/route_set.rb:227:in `draw'
/srv/www/projects.example.com/chili/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:68:in `add_route_for_project'
/srv/www/projects.example.com/chili/vendor/plugins/redmine_git_hosting/config/routes.rb:3
/srv/www/projects.example.com/chili/vendor/plugins/redmine_git_hosting/config/routes.rb:2:in `each'
/srv/www/projects.example.com/chili/vendor/plugins/redmine_git_hosting/config/routes.rb:2
/usr/local/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:173:in `load_without_new_constant_marking'
/usr/local/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:173:in `load'
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/route_set.rb:287:in `load_routes!'
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/route_set.rb:287:in `each'
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/route_set.rb:287:in `load_routes!'
/usr/local/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.12/lib/action_controller/routing/route_set.rb:267:in `reload!'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rails-2.3.12/lib/initializer.rb:537:in `initialize_routing'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rails-2.3.12/lib/initializer.rb:188:in `process'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rails-2.3.12/lib/initializer.rb:113:in `send'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rails-2.3.12/lib/initializer.rb:113:in `run'
/srv/www/projects.example.com/chili/config/environment.rb:33
/usr/local/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:182:in `require'
/usr/local/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:182:in `require'
/usr/local/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:547:in `new_constants_in'
/usr/local/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:182:in `require'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rails-2.3.12/lib/tasks/misc.rake:4
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `call'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `each'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/usr/local/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:176:in `invoke_prerequisites'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in `each'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in `invoke_prerequisites'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:157:in `invoke_with_call_chain'
/usr/local/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `each'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:62:in `run'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2/bin/rake:32
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
Tasks: TOP => db:migrate_plugins => environment
I tried deleting all lines from the repositories table where the repo type is specified as Repository::Git (most of them are just "Git"). That gets me access to the basic chiliproject interface again, so long as I don't try to visit a repo-related page. But of course I still get the error on db:migrate or db:migrate plugins.
When i call RAILS_ENV=production rake db:migrate_plugins
I get this error
(in /var/websites/redmine/redmine-1.2)
rake aborted!
undefined method `[]' for nil:NilClass
this only happens when i have the redmine_git_hosting plugin in my plugin dir
with --trace
RAILS_ENV=production rake db:migrate_plugins --trace
(in /var/websites/fengforge/redmine/redmine-1.2)
** Invoke db:migrate_plugins (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
undefined method []' for nil:NilClass /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/builder.rb:159:in
build'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:310:in add_route' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:19:in
connect'
/var/websites/redmine/redmine-1.2/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:92:in add_route_for_project_with_map' /var/websites/redmine/redmine-1.2/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:84:in
add_route_for_project'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:227:in draw' /var/websites/redmine/redmine-1.2/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:83:in
add_route_for_project'
/var/websites/redmine/redmine-1.2/vendor/plugins/redmine_git_hosting/config/routes.rb:3
/var/websites/redmine/redmine-1.2/vendor/plugins/redmine_git_hosting/config/routes.rb:2:in each' /var/websites/redmine/redmine-1.2/vendor/plugins/redmine_git_hosting/config/routes.rb:2 /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:173:in
load_without_new_constant_marking'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:173:in load' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:287:in
load_routes!'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:287:in each' /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:287:in
load_routes!'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:267:in reload!' /usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:537:in
initialize_routing'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:188:in process' /usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in
send'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in run' /var/websites/redmine/redmine-1.2/config/environment.rb:20 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in
gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in require' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in
require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:547:in new_constants_in' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in
require'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/tasks/misc.rake:4
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in call' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in
execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in each' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in invoke_with_call_chain' /usr/lib/ruby/1.8/monitor.rb:242:in
synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in invoke_with_call_chain' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in
invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in each' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in invoke_with_call_chain' /usr/lib/ruby/1.8/monitor.rb:242:in
synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in invoke_with_call_chain' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in
invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in invoke_task' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in
top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in each' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in
top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in
top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in run' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in run' /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 /usr/bin/rake:19:in
load'
/usr/bin/rake:19
When one changes the git user setting, and possibly others, the script files in /tmp/redmine_git_hosting
need to be updated with the new configuration values. Right now, they retain the old values until manually deleted, which means that some configuration options seem to have no effect, which makes setup difficult.
I created a project called "test". Then a subproject under it called "subtest".
The url shows as [email protected]:test/subtest.git
The instructions show:
The instructions show: Repository Setup:
mkdir subtest
cd subtest
git init
touch readme.txt
git add readme.txt
git commit -m 'Initializing Test repository'
git remote add origin [email protected]:test/subtest.git
git push origin master
Existing Git Repo?
cd existing_git_repo
git remote add origin [email protected]:test/subtest.git
git push origin master
This doesn't work though. To get my repo to work and to show in the repo-viewer (in chiliproject) I had to use git@[email protected]:subtest.git
(notice not a subdirectory of "text")
So the text and URL needs fixed or the plugin needs to create the text/subtest.git repo instead of just the ./subtest.git repo (probably just fix the url or text would be fine since all project names need to be unique anyways).
I noticed when using this plugin that when I made a repository, Redmine's "Report last commit for files and directories" option isn't shown in the repository tab for the settings, and the effects of it are disabled in the repository tab. Seeing with all the new caching and whatnot, how about putting that option back in and enabling it by default? :) This goes perfectly with the new hook system you guys are working on. Can't wait for it!
Hi,
I have this error :
=> Booting WEBrick => Rails 2.3.11 application starting on http://0.0.0.0:3000 /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/builder.rb:159:in `build': You have a nil object when you didn't expect it! (NoMethodError) You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.[] from /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:310:in `add_route' from /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:19:in `connect' from /var/lib/redmine/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:92:in `add_route_for_project_with_map' from /var/lib/redmine/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:84:in `add_route_for_project' from /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:227:in `draw' from /var/lib/redmine/vendor/plugins/redmine_git_hosting/lib/git_hosting.rb:83:in `add_route_for_project' from /var/lib/redmine/vendor/plugins/redmine_git_hosting/config/routes.rb:3 from /var/lib/redmine/vendor/plugins/redmine_git_hosting/config/routes.rb:2:in `each' from /var/lib/redmine/vendor/plugins/redmine_git_hosting/config/routes.rb:2 from /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:171:in `load_without_new_constant_marking' from /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:171:in `load' from /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:547:in `new_constants_in' from /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:171:in `load' from /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:287:in `load_routes!' from /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:287:in `each' from /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:287:in `load_routes!' from /usr/lib64/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/routing/route_set.rb:267:in `reload!' from /usr/lib64/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:537:in `initialize_routing' from /usr/lib64/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:188:in `process' from /usr/lib64/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in `send' from /usr/lib64/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in `run' from /var/lib/redmine/config/environment.rb:20 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:54:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:54:in `require' from /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in `require' from /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:547:in `new_constants_in' from /usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in `require' from /usr/lib64/ruby/gems/1.8/gems/rails-2.3.11/lib/commands/server.rb:84 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:54:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:54:in `require' from script/server:3
What's wrong ?
TypeError (can't convert nil into String)
Processing ProjectsController#create (for 89.154.180.246 at 2011-07-12 10:48:29) [POST]
Parameters: {"commit"=>"Save", "action"=>"create", "authenticity_token"=>"IzqZKzECxLg6ptLJt79kTOzE/P2oc8T7AD0MRK91PHo=", "project"=>{"issue_custom_field_ids"=>[""], "name"=>"teste", "tracker_ids"=>["4", "2", "3", "1", ""], "homepage"=>"", "parent_id"=>"54", "is_public"=>"0", "description"=>"", "identifier"=>"teste", "enabled_module_names"=>["repository", ""]}, "controller"=>"projects"}
Redirected to http://dev.ufsoft.org/projects/teste/settings
TypeError (can't convert nil into String):
vendor/plugins/redmine_git_hosting/app/models/git_hosting_observer.rb:34:in `update_repositories'
vendor/plugins/redmine_git_hosting/app/models/git_hosting_observer.rb:7:in `after_create'
/usr/lib/ruby/1.8/active_record/observer.rb:171:in `send'
/usr/lib/ruby/1.8/active_record/observer.rb:171:in `update'
/usr/lib/ruby/1.8/observer.rb:185:in `notify_observers'
/usr/lib/ruby/1.8/observer.rb:184:in `each'
/usr/lib/ruby/1.8/observer.rb:184:in `notify_observers'
/usr/lib/ruby/1.8/active_record/callbacks.rb:357:in `notify'
/usr/lib/ruby/1.8/active_record/callbacks.rb:350:in `callback'
/usr/lib/ruby/1.8/active_record/callbacks.rb:267:in `create'
/usr/lib/ruby/1.8/active_record/base.rb:2927:in `create_or_update_without_callbacks'
/usr/lib/ruby/1.8/active_record/callbacks.rb:250:in `create_or_update'
/usr/lib/ruby/1.8/active_record/base.rb:2577:in `save_without_validation'
/usr/lib/ruby/1.8/active_record/validations.rb:1090:in `save_without_dirty'
/usr/lib/ruby/1.8/active_record/dirty.rb:79:in `save_without_transactions'
/usr/lib/ruby/1.8/active_record/transactions.rb:229:in `send'
/usr/lib/ruby/1.8/active_record/transactions.rb:229:in `with_transaction_returning_status'
/usr/lib/ruby/1.8/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
/usr/lib/ruby/1.8/active_record/transactions.rb:182:in `transaction'
/usr/lib/ruby/1.8/active_record/transactions.rb:228:in `with_transaction_returning_status'
/usr/lib/ruby/1.8/active_record/transactions.rb:196:in `save'
/usr/lib/ruby/1.8/active_record/transactions.rb:208:in `rollback_active_record_state!'
/usr/lib/ruby/1.8/active_record/transactions.rb:196:in `save'
/usr/lib/ruby/1.8/active_record/associations/has_one_association.rb:64:in `replace'
/usr/lib/ruby/1.8/active_record/associations.rb:1287:in `repository='
/usr/lib/ruby/1.8/active_support/callbacks.rb:178:in `send'
/usr/lib/ruby/1.8/active_support/callbacks.rb:178:in `evaluate_method'
/usr/lib/ruby/1.8/active_support/callbacks.rb:166:in `call'
/usr/lib/ruby/1.8/action_controller/filters.rb:662:in `run_after_filters'
/usr/lib/ruby/1.8/action_controller/filters.rb:619:in `call_filters'
/usr/lib/ruby/1.8/action_controller/filters.rb:610:in `perform_action_without_benchmark'
/usr/lib/ruby/1.8/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/action_controller/rescue.rb:160:in `perform_action_without_flash'
/usr/lib/ruby/1.8/action_controller/flash.rb:151:in `perform_action'
/usr/lib/ruby/1.8/action_controller/base.rb:532:in `send'
/usr/lib/ruby/1.8/action_controller/base.rb:532:in `process_without_filters'
/usr/lib/ruby/1.8/action_controller/filters.rb:606:in `process'
/usr/lib/ruby/1.8/action_controller/base.rb:391:in `process'
/usr/lib/ruby/1.8/action_controller/base.rb:386:in `call'
/usr/lib/ruby/1.8/action_controller/routing/route_set.rb:438:in `call'
/usr/lib/ruby/1.8/action_controller/dispatcher.rb:87:in `dispatch'
/usr/lib/ruby/1.8/action_controller/dispatcher.rb:121:in `_call'
/usr/lib/ruby/1.8/action_controller/dispatcher.rb:130:in `build_middleware_stack'
/usr/lib/ruby/1.8/active_record/query_cache.rb:29:in `call'
/usr/lib/ruby/1.8/active_record/query_cache.rb:29:in `call'
/usr/lib/ruby/1.8/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
/usr/lib/ruby/1.8/active_record/query_cache.rb:9:in `cache'
/usr/lib/ruby/1.8/active_record/query_cache.rb:28:in `call'
/usr/lib/ruby/1.8/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
/usr/lib/ruby/1.8/action_controller/string_coercion.rb:25:in `call'
/usr/lib/ruby/1.8/action_controller/params_parser.rb:15:in `call'
/usr/lib/ruby/1.8/action_controller/session/cookie_store.rb:99:in `call'
/usr/lib/ruby/1.8/action_controller/failsafe.rb:26:in `call'
/usr/lib/ruby/1.8/action_controller/dispatcher.rb:106:in `call'
thin (1.2.11) lib/thin/connection.rb:84:in `pre_process'
thin (1.2.11) lib/thin/connection.rb:82:in `catch'
thin (1.2.11) lib/thin/connection.rb:82:in `pre_process'
thin (1.2.11) lib/thin/connection.rb:57:in `process'
thin (1.2.11) lib/thin/connection.rb:42:in `receive_data'
eventmachine (0.12.10) lib/eventmachine.rb:256:in `run_machine'
eventmachine (0.12.10) lib/eventmachine.rb:256:in `run'
thin (1.2.11) lib/thin/backends/base.rb:61:in `start'
thin (1.2.11) lib/thin/server.rb:159:in `start'
thin (1.2.11) lib/thin/controllers/controller.rb:86:in `start'
thin (1.2.11) lib/thin/runner.rb:185:in `send'
thin (1.2.11) lib/thin/runner.rb:185:in `run_command'
thin (1.2.11) lib/thin/runner.rb:151:in `run!'
thin (1.2.11) bin/thin:6
/var/lib/gems/1.8/bin/thin:19:in `load'
/var/lib/gems/1.8/bin/thin:19
Rendering /srv/chili/public/500.html (500 Internal Server Error)
Processing WelcomeController#robots (for 66.249.71.138 at 2011-07-12 10:49:36) [GET]
Parameters: {"action"=>"robots", "controller"=>"welcome"}
Rendering welcome/robots
Completed in 59ms (View: 4, DB: 2) | 200 OK [http://dev.ufsoft.org/robots.txt]
This is using current master.
I've gotten most of this to work, but this portion. When I create a new repo for a project, it fails to add it to the gitolite.conf so I have to manually add it in my local gitolite.conf file (after which it's fine). Here's the error I'm getting:
Processing RepositoriesController#edit (for 202.37.225.46 at 2011-09-06 03:12:34) [POST]
Parameters: {"commit"=>"Create", "action"=>"edit", "authenticity_token"=>"tfnP1Wh7Ie793P5sGo30xwLE1KTdVfOUnW0JRVTlWpw=", "id"=>"altlayout", "controller"=>"repositories", "extra"=>{"git_http"=>"0", "git_daemon"=>"0", "notify_cia"=>"0"}, "repository_scm"=>"Git"}
Cloning gitolite-admin repository
Creating MD5 digests for Redmine Git Hosting hook
Digest for post-receive.redmine_gitolite.rb: b007f793382102ff9f0f2a54b5a057c8
Our hook is already installed
Errno::ENOENT (No such file or directory - /tmp/redmine_git_hosting/gitolite-admin/conf/gitolite.conf):
passenger (3.0.8) lib/phusion_passenger/rack/request_handler.rb:96:in process_request' passenger (3.0.8) lib/phusion_passenger/abstract_request_handler.rb:513:in
accept_and_process_next_request'
passenger (3.0.8) lib/phusion_passenger/abstract_request_handler.rb:274:in main_loop' passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in
start_request_handler'
passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in send' passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in
handle_spawn_application'
passenger (3.0.8) lib/phusion_passenger/utils.rb:479:in safe_fork' passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in
handle_spawn_application'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in __send__' passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in
server_main_loop'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:206:in start_synchronously' passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:180:in
start'
passenger (3.0.8) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in start' passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:219:in
spawn_rails_application'
passenger (3.0.8) lib/phusion_passenger/abstract_server_collection.rb:132:in lookup_or_add' passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:214:in
spawn_rails_application'
passenger (3.0.8) lib/phusion_passenger/abstract_server_collection.rb:82:in synchronize' passenger (3.0.8) lib/phusion_passenger/abstract_server_collection.rb:79:in
synchronize'
passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:213:in spawn_rails_application' passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:132:in
spawn_application'
passenger (3.0.8) lib/phusion_passenger/spawn_manager.rb:275:in handle_spawn_application' passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in
send'
passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:357:in server_main_loop' passenger (3.0.8) lib/phusion_passenger/abstract_server.rb:206:in
start_synchronously'
passenger (3.0.8) helper-scripts/passenger-spawn-server:99
Rendering /opt/redmine-1.2/public/500.html (500 Internal Server Error)
Hey,
on my server (Debian Squeeze, chiliproject trunk, redmine_git_hosting trunk) the sudo checks were not working. It saved: "-sh: echo -n: not found"
Changing the sudo test command from 'sudo ... -i "echo -n" 2>...' to 'sudo ... -i echo -n 2>...' in lib/git_hosting.rb fixed the problem.
I'm getting this in my error_logs:
vendor/plugins/redmine_git_hosting/app/models/gitolite_public_key.rb:31: warning: character class has `-' without escape
Should be pretty easy to fix. :)
PHPMyAdmin view: http://i52.tinypic.com/sfuque.png
What I did: migrated database to new server
[www@el-abid rails_app]$ rake db:migrate:plugins RAILS_ENV=production
(in /home/www/redmine.el-abid.com/rails_app)
Migrating plugin redmine_git_hosting ...
Migrating plugin redmine_knowledgebase ...
[www@el-abid rails_app]$ ruby script/server -e production
=> Booting WEBrick
=> Rails 2.3.11 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-05-09 22:55:59] INFO WEBrick 1.3.1
[2011-05-09 22:55:59] INFO ruby 1.8.7 (2011-02-18) [x86_64-linux]
[2011-05-09 22:55:59] INFO WEBrick::HTTPServer#start: pid=9705 port=3000
Processing MyController#account (for 69.120.49.100 at 2011-05-09 22:56:00) [GET]
Parameters: {"action"=>"account", "controller"=>"my"}
Rendering template within layouts/base
Rendering my/account
ActionView::TemplateError (Mysql::Error: Table 'redmine.gitolite_public_keys' doesn't exist: SELECT * FROM gitolite_public_keys
WHERE (active=1) AND (gitolite_public_keys
.user_id = 1) ORDER BY active DESC, created_at DESC) on line #44 of vendor/plugins/redmine_git_hosting/app/views/my/account.rhtml:
41:
42:
43:
vendor/plugins/redmine_git_hosting/app/views/my/account.rhtml:44:in `_run_rhtml_vendor47plugins47redmine_git_hosting47app47views47my47account46rhtml'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/local/rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/webrick/server.rb:82:in `start'
Rendering /home/www/redmine.el-abid.com/rails_app/public/500.html (500 Internal Server Error)
Everything seems to be well configured because gitolite-admin is correctly updated and repositories are automatically added in gitolite.
But when I go to the Repository tab I always have : "Repository does not exist. Create one using the instructions below."
When I follow the given commands :
mkdir sandbox
cd sandbox
git init
touch readme.txt
git add readme.txt
git commit -m 'Initializing Sandbox repository'
git remote add origin git@[MYSERVER]:sandbox.git
git push origin master
It works like a charm but I always have the message : "Repository does not exist."
What's going on ? How may I find useful debug informations ?
edit: I use redmine 1.2
edit: I guess I found where the problem comes from. In redmine logs I have :
Shelling out: '/tmp/redmine_git_hosting/run_git_as_git_user' --version --no-color
Shelling out: 'git' '--git-dir' 'repositories/bac-a-sable.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'branch' '--no-color'
It means, if I correctly understood, that the second command is executed locally instead of being executed through ssh (sq_bin_with_ssh is not called). So it's logical that it doesn't find anything. But why it uses 'git' instead of '/tmp/redmine_git_hosting/run_git_as_git_user' ?
I'm not really sure how this works, but it's quite annoying that everytime someone clicks on the repo button that it connects to the git server. It takes time and resources, as well as opening up a GREAT way to DDoS. So perhaps a cache setup to only check it once every x minutes or never at all (via the panel). The never at all option would assume that the user has a hook or daemon to update it (I wouldn't mind having a hook update it).
Let me know if these features are spamming you too much and I'll just fork you and put the issues there.
I've been having an issue with this.
I login to my server as root. I go to /tmp
and do a git clone git@localhost:gitolite-admin. Then I modify the gitolite.conf file the way I want it (basically just removing stuff I no longer want). Then In commit and push it:
git commit -a -m "removing project xtest"
git push
I then remove the physical git files w/ rm -rf /srv/git/repositories/xtest.git
All seems well except now my Chiliproject install wont create new repos or add new keys. It will be this way until I restart the server.
Is there something I'm doing that is blocking CP's access to gitolite?
Is there somethign I'm doing wrong
Allow setting read perm for gitweb
There should be a post-update hook in a newly created repository right?
# ls -lah /srv/vcs-repositories/repos-git/deluge/teste.git/
total 36K
drwxrwx--- 7 git git 4.0K 2011-07-12 12:28 .
drwxrwx--- 7 git git 4.0K 2011-07-12 12:28 ..
drwxrwx--- 2 git git 4.0K 2011-07-12 12:28 branches
-rw-rw---- 1 git git 66 2011-07-12 12:28 config
-rw-rw---- 1 git git 23 2011-07-12 12:28 HEAD
drwxrwx--- 2 git git 4.0K 2011-07-12 12:28 hooks
drwxrwx--- 2 git git 4.0K 2011-07-12 12:28 info
drwxrwx--- 4 git git 4.0K 2011-07-12 12:28 objects
drwxrwx--- 4 git git 4.0K 2011-07-12 12:28 refs
# ls -lah /srv/vcs-repositories/repos-git/deluge/teste.git/hooks/
total 56K
drwxrwx--- 2 git git 4.0K 2011-07-12 12:28 .
drwxrwx--- 7 git git 4.0K 2011-07-12 12:28 ..
-rwxrwx--- 1 git git 452 2011-07-12 12:28 applypatch-msg.sample
-rwxrwx--- 1 git git 894 2011-07-12 12:28 commit-msg.sample
lrwxrwxrwx 1 git git 54 2011-07-12 12:28 gitolite-hooked -> /usr/local/share/gitolite/hooks/common/gitolite-hooked
-rwxrwx--- 1 git git 160 2011-07-12 12:28 post-commit.sample
lrwxrwxrwx 1 git git 62 2011-07-12 12:28 post-receive.mirrorpush -> /usr/local/share/gitolite/hooks/common/post-receive.mirrorpush
-rwxrwx--- 1 git git 552 2011-07-12 12:28 post-receive.sample
-rwxrwx--- 1 git git 189 2011-07-12 12:28 post-update.sample
-rwxrwx--- 1 git git 398 2011-07-12 12:28 pre-applypatch.sample
-rwxrwx--- 1 git git 1.6K 2011-07-12 12:28 pre-commit.sample
-rwxrwx--- 1 git git 1.2K 2011-07-12 12:28 prepare-commit-msg.sample
-rwxrwx--- 1 git git 4.9K 2011-07-12 12:28 pre-rebase.sample
lrwxrwxrwx 1 git git 45 2011-07-12 12:28 update -> /usr/local/share/gitolite/hooks/common/update
-rwxrwx--- 1 git git 3.6K 2011-07-12 12:28 update.sample
Hey,
I'm getting a 500 Internal Server error when displaying the activity tab. The log says:
ActiveRecord::SerializationTypeMismatch (changes was supposed to be a Hash, but was a String):
app/models/journal.rb:103:in method_missing' lib/redmine/activity/fetcher.rb:86:in
events'
lib/redmine/activity/fetcher.rb:86:in sort!' lib/redmine/activity/fetcher.rb:86:in
events'
app/controllers/activities_controller.rb:37:in `index'
public/dispatch.fcgi:24
I'm on the latest chiliproject master and on the latest master of redmine_git_hosting. Database is mysql and git caching is enabled (1000 items and 10mb, also no idea what are reasonable values).
I'm happy to give more informations as needed, but I have no idea what is needed :) I have also no idea if this is an issue of this plugin or chiliproject.
When I have this plugin in my vendors/plugins I keep getting bad command: git "--version" "--no-color"
on my logs. My redmine version is 1.2.0.
How can I fix this!?
My server has been working great for several months. But I recently updated to 2.1 and thought I'd upgrade this as well. I figured the sudo stuff was going to work nice and easy... but I can't get it to:
I am running chiliproject 2.1.
From my previous working setup, I updated to 2.1 code and db, then updated redmin_git_hosting and db. I changed the perms of /srv/www/chiliproject/.ssh to owner = www-data with perms of 600. I also modded my sudoers file and I figured that wold take care of it.
If I login to www-data (with root: su -s /bin/bash www-data) and run something like:
sudo -u git git clone /srv/git/repositories/gitolite-admin
It works just fine... which tells me that www-data (apache) can run commands with git. Right? But the plugin config page has 2 red exclamation marks next to the permissions so this tells me the opposite.
I also removed the /tmp/redmine_git_hosting directory since it seemed to have old ssh code in it. Then I rebooted and ran the rake for updating pluggins db... I have a new redmin_git_hosting dir in tmp... but it still doesn't work .
What am I missing? Its probably something really simple but I cant figure it out.
Thanks a million for this plugin - It's fantastic. I've noticed that when I "delete" a key, it is deactivated, but remains in the database. If I go to re-add that key in the future, it just fails silently and never adds the key. I guess the expected behavior would be that the key is deleted entirely (and could be added again later). Alternatively, if the key needs to be kept in the database, it would be nice if there was a way to re-enable it from the interface.
When you create a new project with an identifier of an existing repo in gitolite, it brings you to an error page where you have to hit back. It doesn't tell you the reason, but I assumed, and am guessing the repo already existing is the cause. Should have a page come up instead that gives two options.
I've updated redmine 1.2.1 . Now want to migrate redmine_git_hosting. I also done the steps for migration as per the documentation. But whenever i am running migration task i.e RAILS_ENV=production rake db:migrate_plugins it gives me following error :
...........................................................
no such file to load -- open-uri-cached
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
require'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:184:in require' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/rails/gem_dependency.rb:217:in
load'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:307:in load_gems' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:307:in
each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:307:in load_gems' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:164:in
process'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in send' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in
run'
/home/ubuntu/sites/redmine/releases/20110715095306/config/environment.rb:20
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
require'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in require' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:547:in
new_constants_in'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in require' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/tasks/misc.rake:4 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in
call'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in execute' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in
each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in execute' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:158:in
invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/monitor.rb:242:in synchronize' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in
invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:176:in invoke_prerequisites' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in
each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in invoke_prerequisites' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:157:in
invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/monitor.rb:242:in synchronize' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in
invoke_with_call_chain'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:144:in invoke' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:112:in
invoke_task'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in top_level' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in
each'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in top_level' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in
standard_exception_handling'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:84:in top_level' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:62:in
run'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in standard_exception_handling' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:59:in
run'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/bin/rake:32
/opt/ruby-enterprise-1.8.7-2011.03/bin/rake:19:in load' /opt/ruby-enterprise-1.8.7-2011.03/bin/rake:19 no such file to load -- open-uri-cached /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:184:in
require'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/rails/gem_dependency.rb:217:in load' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:307:in
load_gems'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:307:in each' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:307:in
load_gems'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:169:in process' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in
send'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/initializer.rb:113:in run' /home/ubuntu/sites/redmine/releases/20110715095306/config/environment.rb:20 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in
require'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:547:in new_constants_in' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in
require'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/tasks/misc.rake:4
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in call' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in
execute'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in each' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in
execute'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:158:in invoke_with_call_chain' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/monitor.rb:242:in
synchronize'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in invoke_with_call_chain' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:176:in
invoke_prerequisites'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in each' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:174:in
invoke_prerequisites'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:157:in invoke_with_call_chain' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/monitor.rb:242:in
synchronize'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in invoke_with_call_chain' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:144:in
invoke'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:112:in invoke_task' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in
top_level'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in each' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in
top_level'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in standard_exception_handling' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:84:in
top_level'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:62:in run' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in
standard_exception_handling'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:59:in run' /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rake-0.9.2/bin/rake:32 /opt/ruby-enterprise-1.8.7-2011.03/bin/rake:19:in
load'
/opt/ruby-enterprise-1.8.7-2011.03/bin/rake:19
Missing these required gems:
open-uri-cached
You're running:
ruby 1.8.7.334 at /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby
rubygems 1.3.7 at /home/ubuntu/.gem/ruby/1.8, /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8
Run rake gems:install
to install the missing gems.
..................................................................
I checked all the gems after this error. All the gems are available on system as per the mentioned location.
So, what is the solution for this ?
Regards,
Omkar
Not sure whether this is the right place to ask this, but there does not seem a forum/mailing list, and no one ever answers over at redmine.org.
When I create a new repository for some project, the gitolite.conf will have an additonal line declaring the project, but there will not be any user having read or write access to it. How am I adding write permissions to some user? When I go to Project Settings->Repository->Users, I see a message "No Data to Display" which seems to be because the log of the repository is scanned for users, but since the repository is brand new, there are no commits so no users are found. When I go to Project -> Repository, I am told to push my stuff to the newly created repository, which I cannot as I do not have write access to it. Am I overlooking something? How do I give some initial user permissions?
Hello,
I've managed to deploy chiliproject 1.3 + gitolite + redmine_git_hosting on a dreamhost account ( using one shell account for the chiliproject site and one shell account reserved for subversion and git hosting).
I had an issue with the plugin trying to create a directory in /tmp.... As dreamhost is a kind of shared hosting... I do not want to write in a global /tmp.
As a quick hack, I've added a line in the config/environment.rb to overrride the ENV['TMPDIR'] variable and use $HOME/tmp.
Is there any reason for using Dir.tmpdir instead of creating a directory in #{RAILS_ROOT}/tmp ?
Thanks for your useful plugin !!
The GitoliteConfig (and GitoliteAccessRights) class uses standard Hashes for storing the repository data.
As a hash does not preserve the order of its contents, the config file is rewritten on call to update_repositories.
There are several problems here I think:
How to duplicate this issue:
From here you now have 2 repos for "myproject". One located at ~/repositories/myproject.git and one at ~/repositories/test/myproject.git. The one at test/myproject.git is empty. The other isn't.
Also, if you try to use the NEW git url for cloning and pushing. Your changes won't show up on the http://yoursite.com/projects/myproject/repository page, since it still references the old git repo.
Deleting repository on redmine does not delete actual repository.
The delete repository setting is set to enabled.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.