{"id":15498940,"url":"https://github.com/jumplink/redmine-swp-script","last_synced_at":"2025-07-27T21:37:12.091Z","repository":{"id":5030209,"uuid":"6189152","full_name":"JumpLink/redmine-swp-script","owner":"JumpLink","description":"Skript für automatisches Anlegen von Benutzern und Projekten für die Fachhochschule Wedel","archived":false,"fork":false,"pushed_at":"2012-10-29T13:27:12.000Z","size":292,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T18:15:25.398Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JumpLink.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-12T11:18:49.000Z","updated_at":"2013-10-08T05:56:57.000Z","dependencies_parsed_at":"2022-09-09T07:51:12.846Z","dependency_job_id":null,"html_url":"https://github.com/JumpLink/redmine-swp-script","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JumpLink%2Fredmine-swp-script","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JumpLink%2Fredmine-swp-script/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JumpLink%2Fredmine-swp-script/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JumpLink%2Fredmine-swp-script/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JumpLink","download_url":"https://codeload.github.com/JumpLink/redmine-swp-script/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246068301,"owners_count":20718505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T08:49:06.820Z","updated_at":"2025-03-28T17:27:11.281Z","avatar_url":"https://github.com/JumpLink.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"redmine-swp-script\n==================\n\nSkript für automatisches Anlegen von Benutzern und Projekten unter [Redmine](http://www.redmine.org/).\nDas Skript ist ausgelegt für das Praktikum [Softwareprojekt](http://www.fh-wedel.de/~si/praktika/SoftwarePraktikum/index.html) der [Fachhochschule Wedel](http://www.fh-wedel.de/), diese Notwendigkeit bestand, da regelmäßig aufwändig neue Projekte und Benutzer angelegt werden müssen. \n\nInstallation\n============\n\nGetestet mit \n* node.js Version v0.8.11 und v0.8.12\n* Ubuntu in Version 10.04.4 LTS und 12.04.1 LTS\n* Redmine in Version 1.2.3.stable.10619\n\n```\nsudo apt-add-repository ppa:chris-lea/node.js\nsudo apt-get update\nsudo apt-get install nodejs nodejs-dev npm git-core\ngit clone git://github.com/JumpLink/redmine-swp-script.git\ncd redmine-swp-script/\nnpm install\n```\nNpm installiert dabei automatisch die Abhängigkeiten nach, dies sind:\n* optimist in Version 0.3.5\n* mysql in Version 2.0.0-alpha3\n* moment-range in Version 0.1.1\n* restler in Version 2.0.1 und meinen Fork von [node-redmine](https://github.com/JumpLink/node-redmine).\n\nAnschließend die Dateien mysql.json.example, redmine.json.example und svn.json.example umbenennen und anpassen:\n```\ncd config/\nmv mysql.json.example mysql.json\nmv redmine.json.example redmine.json\nmv svn.json.example svn.json\ndein-lieblings-editor mysql.json redmine.json svn.json\n```\napiKey\n------\nIn der redmine.json muss der apiKey eingetragen werden, welcher zuvor in Redmine anzulegen ist:\n* Melde dich mit dem entsprechenden Admininstrator unter Redmine an.\n* Gehe auf deine.redmine.domain/settings oder Redmine Startseite-\u003eAdministration-\u003eKonfiguration, klicke auf den Reiter Authentifizierung und mache einen Hacken bei \"REST-Schnittstelle aktivieren\" und speicher dies.\n* Gehe auf deine.redgmine.domain/my/account oder Redmine-Startseite-\u003eMein Konto und lege dir einen RSS-Zugriffsschlüssel an und/oder kopiere den vorhanden.\n* Speichere diesen Key in der redmine.json für das apiKey-Attribute ab.\n\nZugriff von außen\n-----------------\nWenn das Skript nicht auf dem selben Server ausgeführt werden soll - auf dem Redmine installiert ist - dann ist noch folgendes von nöten:\n\n* bind-address innerhalb von /etc/mysql/my.cnf auskommentieren.\n* mittels MySQL die Rechte der Datenbank anpassen:\n```\ngrant all on database.* to 'user'@'%' IDENTIFIED BY 'passwort';\n```\n\nHinweis: Backups funktionieren derzeit nur lokal\n\nAnpassen\n========\nDas Skript kann durch Optionen beeinflusst werden, dafür einfach mal in die Hilfe schauen: ```./app.js --help```.\n\nSollen bestimmte Benutzer nicht automatisch vom Skript deaktivert werden (z.B. sollte sich der Admin nicht selbst aussperren), muss das Skript derzeit noch [manuell bearbeitet](https://github.com/JumpLink/redmine-swp-script/blob/master/app.js#L311) werden.\n\nBedienungsanleitung\n===================\nVorbedingungen\n-------------\n* Es darf keine erforderlichen benutzerdefinierten Felder geben.\n * Die benutzerdefinierten Felder sind unter deine.redmine.domain/custom_fields oder unter Redmine-Startseite-\u003eAdministration-\u003eBenutzerdefinierte Felder zu finden.\n* Der anzulegende Benutzer-Anmeldename (= Matrikelnummer) / die anzulegende Projekt-Kennung (= Semesterbezeichnung + Projektkürzel) darf nicht bereits vergeben sein.\n* Die LDAP-Authentifizierung muss bereits eingerichtet sein.\n * Einstellbar unter deine.redmine.domain/ldap_auth_sources oder Redmine-Startseite-\u003eAdministration-\u003eLDAP-Authentifizierung\n * Zur Selbstkontrolle ist es möglich, sich die vorhanden Authentifizierungs-Arten ausgeben zu lassen: ```./app.js --getldap```.\n * Soll eine andere ID als 1 verwendet werden, kann sie mit der Option ```--auth_id #``` (# ersetzen mit der gewünschten ID) festgelegt werden.\n\nDie empfohlene Vorgehensweise ist:\nVollautomatisch\n-----------\n```\n./app.js --template lua.json.example --auto\n```\n* Hierbei wird geprüft ob das Template valide ist,\n* Backups angefertigt,\n* alle anderen Benutzer und Gruppen deaktiviert,\n* dass Template eingepflegt (in diesem Fall lua.json.example)\n* und ein Backup-Template erstellt.\n\nDas Template muss vorher irgendwie generiert, unter templates/ abgelegt werden und dem [Beispiel-Template](https://github.com/JumpLink/redmine-swp-script/blob/master/templates/lua.json.example) entsprechen.\n\nNur Template überprüfen\n-------------------\nOb das Template valide ist kann wie folgt überprüft werden:\n```\n./app.js --template lua.json.example --check\n```\n\nNur Template einpflegen\n-----------------------\nEs ist auch möglich ein Template ein zu plegen ohne dabei Backups anzufertigen oder etwas zu deaktivieren:\n```\n./app.js --template lua.json.example\n```\nErzeugt Benutzer, Gruppen und Rechte entsprechend der Template-Datei lua.json.example.\nEs wird dabei eine backup_lua.json.example erstellt mit zusätzlichen Informationen wie der IDs in der Datenbank.\n\n\nTemplate rückgängig machen\n--------------------------\nMit Hilfe der Backup-Template-Datei (wird automatisch nach dem einpflegen einer Template angefertigt) kann der Vorgang wieder rückgänig gemacht werden:\n```\n./app.js --removetemp backup_lua.json.example\n```\n\nNur ein Datenbankbackup anfertigen\n----------------------------------\nEin Backup der Datenbank nach backup/db/ kann wie folgt angefertigt werden:\n```\n./app.js --backup \n```\n\nEin Datenbankbackup wiederhergestellen\n--------------------------------------\nUnd auch wiederhergestellt werden:\n```\n./app.js --restoredb [Backupdateiname]\n```\n\nDebug-Modus\n-----------\nFür eine ausführlichere Ausgabe kann der Debug-Modus aktiviert werden:\n\n```\n./app.js --debug --template lua.json.example\n./app.js --debug --removetemp backup_lua.json.example\n./app.js --debug --backup\nusw..\n```\n\nWeiteres\n--------\nEs gibt noch weitere Möglichkeiten, benutze dafür die Hilfe: ```./app.js --help```.\n\nTechnisches\n===========\n\nTemplates\n---------\nEin Template ist ein Json-Format und beinhaltet Projekt, Gruppen und Benutzerinformationen welche dann automatisiert in Redmine eingepflegt werden.\n\nDas Template beinhaltet 3 Hauptattribute:\n* project: {...}\n* users: [...]\n* groups: [...]\n\n### project\n\nDas project-Attribut beinhaltet an erster Stelle das Hauptprojekt, das Hauptprojekt ist das Hauptthema des Software-Projektes.\nDas Hauptprojekt hat die folgenden Atribute:\n* project.name: \"...\"\n* project.description: \"...\"\n* project.links: [...]\n* project.subprojects: [...]\n\n#### project.subprojects\nDas subprojects-Attribut ist ein Array mit Unterprojekten und hat unter anderem das Attribut\n* project.subprojects[#].groups: [...]\n\n##### project.subprojects[#].groups\nDiese Gruppen werden unter Redmine als Projekt behandelt, stellen im Software-Projekt aber die Programmiergruppen da.\n\n### users\n* users = [...]\n* users[#].student_id: \"...\"\n* users[#].lastname: \"...\"\n* users[#].firstname: \"...\"\n\n### groups\n* groups = [...]\n* groups[#].name: \"...\"\n* groups[#].users: [...]\n* groups[#].type: \"...\"\n\n#### groups[#].name\n* z.B. \"swp01\"\n\n#### groups[#].users\n* z.B. [\"inf4444\", \"inf1111\", \"inf6666\"]\n\n#### groups[#].type\n* \"developer\" oder \"coordinator\"\n\nSiehe auch\n--------\n* https://github.com/GraemeF/redminer\n* https://github.com/danwrong/restler\n* http://www.redmine.org/projects/redmine/wiki/Rest_api\n* https://github.com/felixge/node-mysql","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumplink%2Fredmine-swp-script","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjumplink%2Fredmine-swp-script","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumplink%2Fredmine-swp-script/lists"}