first commit
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
|
||||
# gitlab-ldap-sync
|
||||
|
||||
Python project to sync ics calendars into nextcloud.
|
||||
|
||||
Adapted from https://github.com/buzz/ics2owncloud.py .
|
||||
|
||||
|
||||
## Getting Started
|
||||
|
||||
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
This project has been tested on CentOS 7.6 with nextcloud 14.x, google calendar and zimbra calendar.
|
||||
|
||||
```
|
||||
Python : 3.4.9
|
||||
pip3 : 8.1.2
|
||||
requests : 2.9.1
|
||||
icalendar : 3.9.2
|
||||
```
|
||||
|
||||
### Installing
|
||||
|
||||
You could either install requirements system wide or use virtual environment / conda, choose your poison.
|
||||
|
||||
To get this up and running you just need to do the following :
|
||||
|
||||
* Clone the repo
|
||||
```bash
|
||||
git clone https://github.com/MrBE4R/nextcloud_ics_sync.git
|
||||
```
|
||||
* Install requirements
|
||||
```bash
|
||||
pip3 install -r ./nextcloud_ics_sync/requirements.txt
|
||||
```
|
||||
* Edit config.json with you values
|
||||
```bash
|
||||
cp nextcloud_ics_sync/nextcloud_ics_sync.ini{.example,}
|
||||
EDITOR ./nextcloud_ics_sync/nextcloud_ics_sync.ini
|
||||
```
|
||||
* Start the script and enjoy your calendars being synced
|
||||
```bash
|
||||
cd ./nextcloud_ics_sync && ./nextcloud_ics_sync.py
|
||||
```
|
||||
|
||||
You should get something like this :
|
||||
```bash
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (204)
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (204)
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (204)
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (204)
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@gmail.com (204)
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@gmail.com (204)
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@gmail.com (204)
|
||||
Imported: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@gmail.com (204)
|
||||
```
|
||||
|
||||
You could add the script in a cron to run it periodically.
|
||||
## Deployment
|
||||
|
||||
How to configure config.json
|
||||
```ini
|
||||
[DEFAULT] # The nextcloud server where we will sync all calendar
|
||||
username: username # Nextcloud username
|
||||
password: password # Nextcloud password
|
||||
server: https://nextcloud.example.com/ # Nextcloud URL
|
||||
|
||||
[import_a] # a convenient name for you
|
||||
calendar: calendar_xy # name of the calendar in nextcloud. must exist prior sync
|
||||
ics_url: https://cloud.owncloud.org/index.php/apps/calendar/export.php?calid=6 # url to the ics file
|
||||
ics_username : # username of the distant ics server
|
||||
ics_password : # password of the distant ics server
|
||||
|
||||
[import_b]
|
||||
calendar: zimbra
|
||||
ics_url: https://zimbra.example.com/home/username/Calendar?fmt=ics
|
||||
ics_username :
|
||||
ics_password :
|
||||
|
||||
[import_c]
|
||||
calendar: google
|
||||
ics_url: https://calendar.google.com/calendar/ical/username/private-xxxxxxx/basic.ics
|
||||
ics_username :
|
||||
ics_password :
|
||||
```
|
||||
For now ```ics_username``` and ```ics_password``` are mandatory in each import, meaning the keys should be here but empty if not needed by the distant ics server.
|
||||
|
||||
```create_user``` If set to true, the script will create the users in gitlab and add them in the corresponding groups. Be aware that gitlab will send a mail to every new users created.
|
||||
## TODO
|
||||
|
||||
- [ ] validate if ```ics_username``` and ```ics_password``` are in config to avoid putting empty value in config
|
||||
- [ ] your suggestions
|
||||
## Built With
|
||||
|
||||
* [Python](https://www.python.org/)
|
||||
* [icalendar](https://icalendar.readthedocs.io/en/latest/)
|
||||
* [requests](http://docs.python-requests.org/en/latest/)
|
||||
|
||||
## Contributing
|
||||
|
||||
Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.
|
||||
|
||||
## Authors
|
||||
|
||||
* **Jean-François GUILLAUME (Jeff MrBear)** - *Initial work* - [MrBE4R](https://github.com/MrBE4R)
|
||||
|
||||
See also the list of [contributors](https://github.com/MrBE4R/nextcloud_ics_sync/contributors) who participated in this project.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
* Hat tip to anyone whose code was used
|
||||
Reference in New Issue
Block a user