Sign up
UTRS2
/
utrs
Unblock Ticket Request System (v2) used on Wikimedia projects
en.wikipedia.org/wiki/wikipedia:unblock_ticket_request_system
AGPL-3.0 License
5 stars
10 forks
Star
Notifications
master
Go to file
readme.md
UTRS 2.0
Getting UTRS2 working in a dev environment
  1. Clone into a directory
  2. composer install
  3. cp .env.example .env
  4. edit the DB details in .env
  5. php artisan key:generate
  6. php artisan migrate:fresh
The /public subdirectory is the webroot. You can either use php artisan serve to run a standalone webserver, or point your webserver of choice at /public
Configuring wikis
Currently, most details about supported wikis are stored in config/wikis.php, but a transition to storing them in the database is in progress. For this reason, you need to use php artisan utrs-maintenance:sync-wikis-to-database to synchronize changes in that file to the database for some details to work correctly.
Building frontend assets
The frontend is built using Bootstrap 4. It uses purgecss to remove unused classes to reduce bundle size. This can create complications for development.
First, install NPM dependencies using npm install. Then, you can use Laravel Mix (webpack wrapper) to build assets:
Seeding
UTRS has a suite of seeds that can be used to automatically generate sample data for your development environment.
To reset your database, and create data based on seeds, you can always type
php artisan migrate:fresh --seed
Resetting your database will get rid of your user account and all of its permissions. You will find few .env variables to help with this:
# for seeding: DEVELOPER_USER_NAME="" DEVELOPER_USER_GRANT_ADMIN="" DEVELOPER_USER_GRANT_TOOLADMIN="" DEVELOPER_USER_GRANT_DEVELOPER=""
If you set DEVELOPER_USER_NAME to your user name, that user will automatically created. You can then set DEVELOPER_USER_GRANT_ADMIN and DEVELOPER_USER_GRANT_TOOLADMIN to "enwiki" and then you wll be granted admin and tooladmin access there. Finally, if you set DEVELOPER_USER_GRANT_DEVELOPER to true, you will receive the global developer permission which grants you full access to the interface.
Setting up MediaWiki integration for testing
API calls
You have a couple of options here. Either
Create a bot password for your own testing MediaWiki installation
Use Special:BotPasswords to create a bot password. If you have configured e-mail sending to mediawiki, access to that is useful.
In .env, set MEDIAWIKI_USERNAME to the bot password username and MEDIAWIKI_PASSWORD to the password. Also set WIKI_URL_GLOBAL, WIKI_URL_ENWIKI, and WIKI_URL_PTWIKI to be http://your-mediawiki/w/api.php​.
Create a bot password on Beta Cluster
This is useful because Beta Cluster is really similar to beta. Use Special:BotPasswords on some wiki to create a bot password (they are global).
In .env, set MEDIAWIKI_USERNAME to the bot password username and MEDIAWIKI_PASSWORD to the password. Also set
OAuth
You need a wiki with Extension:OAuth installed. It's easier if you use the same wiki used with API calls.
Use the following settings:
If you set it as for yourself only you don't need to get it approved.
Set up .env:
OAUTH_CALLBACK_URL="http://utrs.test/oauth/callback" # change this also depending on your setup OAUTH_BASE_URL="https://meta.wikimedia.beta.wmflabs.org" OAUTH_CLIENT_ID="some-client-id" OAUTH_CLIENT_SECRET="some-client-secret"
Job executor (for production)
For this to work, you need to have your own urls set up for config/wikis.php
This application requires a job queue to verify blocks and do other critical and regualar tasks. Below is a guide to setting up:
  1. pecl install redis
  2. Ensure jobs work with php artisan queue:work
  3. sudo adduser supervisor
  4. sudo apt-get install supervisor
  5. Add the following block at /etc/supervisor/conf.d/utrs.conf, example, replacing /path/tos:
DO NOT CHANGE ANY OF THESE VALUES EXCEPT THE PATHS
[program:utrs-worker] process_name=%(program_name)s_%(process_num)02d command=php /path/to/artisan queue:work --sleep=3 --tries=3 autostart=true autorestart=true user=supervisor numprocs=1 redirect_stderr=true stdout_logfile=/path/to/log/file.log stopwaitsecs=300
sudo supervisord
Releases 6
Version 2.1.5Latest
on Mar 2
+ 5 releases
Packages
No packages published
Contributors 5
Languages
PHP77.9%
Blade21.9%
Shell0.2%
© 2021 GitHub, Inc.
Terms
Privacy
Security
Status
Docs
Contact GitHubPricingAPITrainingBlogAbout
CodeCodeIssuesIssues33Pull requestsPull requests3DiscussionsDiscussionsActionsActionsProjectsProjects1SecuritySecurityInsightsInsights Code Issues Pull requests Discussions Actions Projects Security Insights