Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sivel/prmove
Github Pull Request Mover, specifically for the Ansible repo consolidation
https://github.com/sivel/prmove
Last synced: about 1 month ago
JSON representation
Github Pull Request Mover, specifically for the Ansible repo consolidation
- Host: GitHub
- URL: https://github.com/sivel/prmove
- Owner: sivel
- License: apache-2.0
- Created: 2016-11-15T19:37:00.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2016-12-29T17:38:02.000Z (about 8 years ago)
- Last Synced: 2024-10-25T18:14:13.080Z (2 months ago)
- Language: Python
- Size: 16.6 KB
- Stars: 2
- Watchers: 1
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# prmove
GitHub Pull Request Mover, specifically for the Ansible repo consolidation
## Configuration
```
GITHUB_CLIENT_ID = '1ecad3b34f7b437db6d0'
GITHUB_CLIENT_SECRET = '6689ba85bb024d1b97370c45f1316a16d08bba20'
SECRET_KEY = '\\{\x86m\x01\xc7\xe6\xa1\x19\x93\xe3F\xf5\x192)\x87k0\xdd\xcb\x1d\x10%'
UPSTREAM_DIR = '/path/to/clone/of/ansible/ansible/merged/devel/branch'
```### Upstream Repository Clone
The path defined by `UPSTREAM_DIR` must:
- Be a clone of the `ansible` repository to which pull requests will be submitted.
- Have the default remote renamed from `origin` to `upstream`.
- Been merged with the module repositories using the `hacking/unify_repos.sh` script from `ansible/ansible`.### GitHub credentials
You will need to [register an application](https://github.com/settings/applications/new)
to provide API access. The Client ID and Secret will need to be populated as
shown in the above example.#### Development
When registering for local development you can use the following values:
- Hompage URL: `http://127.0.0.1:5000/`
- Authorization callback URL: `http://127.0.0.1:5000/login/authorized`### Secret Key
This is just some secret key to use as a salt for encryption, use something like `os.urandom(32)`.
If you run this on multiple servers, make sure this value matches across all servers.
## Installation/Running
1. `virtualenv prmove --python /path/to/python3`
1. `. prmove/bin/activate`
1. `pip install -r requirements.txt`### Development
Running via flask for development:
1. `PRMOVE_CONFIG=/path/to/config.conf python3 prmove.py`
### Production
Running via a wsgi server such as gunicorn is recommended, and potentially behind a proxy such as nginx.
1. `pip install gunicorn gevent`
1. `gunicorn -k gevent -e 'PRMOVE_CONFIG=/path/to/config.py' prmove:app`#### nginx
```
upstream prmove {
least_conn;
server 1.2.3.4:8000;
server 5.6.7.8:8000;
}server {
listen 80;
listen 443 ssl;
server_name prmove.example.org;if ( $scheme != "https" ) {
rewrite /(.*) https://$host/$1 permanent;
}proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;location / {
try_files $uri $uri/ @pass_to_prmove;
}location @pass_to_prmove {
proxy_pass http://prmove;
proxy_read_timeout 300s;
client_max_body_size 1m;
}
}
```### Local Dev Mode
1. `PRMOVE_CONFIG=/path/to/config.py python3 prmove.py`