Difference between revisions of "Service/git"

From Sugar Labs
Jump to navigation Jump to search
Line 57: Line 57:
 
  update users set email='OLDEMAIL' where login='USER';
 
  update users set email='OLDEMAIL' where login='USER';
  
=== Zapping a user account
+
=== Zapping a user account ===
  
WARNING: to zap a user account, make sure you also remove its related records
+
WARNING: to kill a user account, make sure you also remove *ALL* its associated records
 
from all tables, or Gitorious will break in non-obvious ways.
 
from all tables, or Gitorious will break in non-obvious ways.
  
Line 69: Line 69:
 
  DELETE FROM repositories WHERE user_id=666;
 
  DELETE FROM repositories WHERE user_id=666;
 
  DELETE FROM projects WHERE user_id=666;
 
  DELETE FROM projects WHERE user_id=666;
 +
 +
NOTE: tch pointed out that Rails applications often provide a higher-level method
 +
in class User which deletes the record and its associated entries. However, our
 +
deployed version of Gitorious does not seem to provide it.
  
 
=== Restart gitorious after code/config changes ===
 
=== Restart gitorious after code/config changes ===
 
  touch tmp/restart.txt
 
  touch tmp/restart.txt

Revision as of 12:33, 18 August 2010

Hostnames

Hardware

  • XEN VM

Location

Hosted by the Open Source Lab

Admins

  • OSL Support <support AT osuosl.org> (ask here for anything that requires root access)
  • Lance Albertson <lance AT osuosl.org>, Ramereth on #osuosl Freenode
  • Bernie Innocenti, bernie on #sugar Freenode
  • Luke Faraone, lfaraone on #sugar Freenode
  • Sascha Silbe, silbe on #sugar Freenode

Notes

Web interface

http://admin.osuosl.org/phpmyadmin

Gitorious environments

We do not have root on git.sugarlabs.org. Put the following aliases in your ~/.bashrc to quickly switch to the Gitorious production, test and development environments:

alias gitorious='sudo su - gitorious'
alias gittest='sudo su - gittest'
alias gitdev='sudo su - gitdev'
alias db='mysql -h db1.osuosl.org -u sugarlabs_git -p  sugarlabs_git_dev'

Get a MySQL prompt

type "db" at the prompt, then give the db password from ~gitorious/config/database.yml

Change project owner

UPDATE projects SET user_id=(SELECT id FROM users WHERE login='jasg') WHERE slug='labyrinth';

Change repo owner

UPDATE repositories SET user_id=(SELECT id FROM users WHERE login='jasg') WHERE name='mainline' AND project_id=(SELECT id FROM projects WHERE title='poll');

Add committer

INSERT INTO committerships SET
       user_id=(select id from users where login='bernie'),
       repository_id=(SELECT id FROM repositories where
               project_id=(SELECT id FROM projects WHERE title='sugar') AND name='mainline'),
       kind=2, created_at=NOW(), updated_at=NOW();

Hijack account to reset password

update users set email='YOUREMAIL' where login='USER';

Then make Gitorious send you a password reset email.

update users set email='OLDEMAIL' where login='USER';

Zapping a user account

WARNING: to kill a user account, make sure you also remove *ALL* its associated records from all tables, or Gitorious will break in non-obvious ways.

SELECT id FROM users WHERE login='demian';
DELETE FROM committers WHERE user_id=666;
DELETE FROM events WHERE user_id=666;
DELETE FROM comments WHERE user_id=666;
DELETE FROM merge_requests WHERE user_id=666;
DELETE FROM repositories WHERE user_id=666;
DELETE FROM projects WHERE user_id=666;

NOTE: tch pointed out that Rails applications often provide a higher-level method in class User which deletes the record and its associated entries. However, our deployed version of Gitorious does not seem to provide it.

Restart gitorious after code/config changes

touch tmp/restart.txt