Gateway to notify Worksection tasks about events from Grafana, Gitlab (e.g commits)
Project description
What is Worksection?
Worksection is a simple, lightweight task tracking system that provides:
- Project and task management, planning and controlling, team organization
- Flexible interface, recurring processes, time-tracking
- Privacy settings, client companies, communication
Check it out.
Worksection task id in Git commit messages
Use commit-msg file to force your developers to have worksection task id during commits. Just copy this file to your git repo as
cp commit-msg <your-git-repo>/.git/hook/commit-msg # on Git server directly (server-side commit)
Since this moment all commit messages should have the following format #WS-0000: The commit message
, where 0000
is worksection task id.
Open API docs
Run it and all endpoints details will be available here: http://localhost:8080/docs
> python g2w
...
INFO: Started server process [86248]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
Push notifications
Please note, that GitLab
commit messages must have the following format: #WS-0000: The commit message
, where 0000
is worksection task id.
- Deploy locally g2w
version: "3.9" services: g2ws: image: dgroup/g2w:0.2.0 container_name: g2w environment: # Mandatory environment variables (docker, podman, etc.) WS_URL_ALL_USERS: "https://xxx.worksection.com/xxxx" # https://worksection.com/faq/api-user.html#q1572 WS_URL_POST_COMMENT: "https://xxx.worksection.com/xxxx" # https://worksection.com/faq/api-comments.html#q1575 WS_URL_POST_TASK: "https://xxx.worksection.com/xxxx" # https://worksection.com/faq/api-task.html#q1577 WS_ADMIN_EMAIL: "xxx.worksection.bot@gmail.com" # plain worksection user email WS_ADMIN_USER_ID: "370080" # plain worksection user id WS_PRJ_223728_POST_TASK_HASH: "23e1sdfj2323" # HASH generated for new task action for a particular project WS_PRJ_223728_POST_COMMENT_HASH: "2312jsafajsdf" # HASH generated for new comment action for a particular project build: dockerfile: Containerfile context: . ports: - "8080:8080" restart: always
- Configure webhook with
Push events
in Gitlab:- Open
project > Settings > Webhook
- Specify URL http://yourserverwith-g2w:8080/gitlab/push/223728, where
223728
is your worksection project id - Ensure that
Push events
option is selected - Press [
Add webhook
]
- Open
- Configure reference to Worksection tasks from commits in Gitlab:
- Open
project > Settings > Integrations > Custom issue tracker
- Set
Project URL
like https://xxx.worksection.com/project/223728/, where223728
is your worksection project id - Set
Issue URL
like https://xxx.worksection.com/project/223728/:id - Set
New issue URL
like https://xxx.worksection.com/project/223728/new/ - Press [
Save changes
]
- Open
- Push commit(s) with following commit message format
#WS-0000: The commit message
format (0000
is worksection task id) to your Gitlab project.
Simulate push Gitlab event
223728
- worksection project id (read more):
curl --request POST \
--url http://127.0.0.1:8080/gitlab/push/223728 \
--header 'Content-Type: application/json' \
--data '{
"object_kind": "push",
"event_name": "push",
"before": "95790bf891e76fee5e1747ab589903a6a1f80f22",
"after": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
"ref": "refs/heads/master",
"checkout_sha": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
"user_id": 4,
"user_name": "John Smith",
"user_username": "jsmith",
"user_email": "john@example.com",
"user_avatar": "https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80",
"project_id": 15,
"project":{
"id": 15,
"name":"Diaspora",
"description":"",
"web_url":"http://example.com/mike/diaspora",
"avatar_url":null,
"git_ssh_url":"git@example.com:mike/diaspora.git",
"git_http_url":"https://example.com/mike/diaspora.git",
"namespace":"Mike",
"visibility_level":0,
"path_with_namespace":"mike/diaspora",
"default_branch":"master",
"homepage":"http://example.com/mike/diaspora",
"url":"git@example.com:mike/diaspora.git",
"ssh_url":"git@example.com:mike/diaspora.git",
"http_url":"https://example.com/mike/diaspora.git"
},
"repository":{
"name": "Diaspora",
"url": "git@example.com:mike/diaspora.git",
"description": "",
"homepage": "http://example.com/mike/diaspora",
"git_http_url":"https://example.com/mike/diaspora.git",
"git_ssh_url":"git@example.com:mike/diaspora.git",
"visibility_level":0
},
"commits": [
{
"id": "b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327",
"message": "Update Catalan translation to e38cb41.\n\nSee https://gitlab.com/gitlab-org/gitlab for more information",
"title": "Update Catalan translation to e38cb41.",
"timestamp": "2011-12-12T14:27:31+02:00",
"url": "http://example.com/mike/diaspora/commit/b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327",
"author": {
"name": "Jordi Mallach",
"email": "jordi@softcatala.org"
},
"added": ["CHANGELOG"],
"modified": ["app/controller/application.rb"],
"removed": []
},
{
"id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
"message": "fixed readme",
"title": "fixed readme",
"timestamp": "2012-01-03T23:36:29+02:00",
"url": "http://example.com/mike/diaspora/commit/da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
"author": {
"name": "GitLab dev user",
"email": "gitlabdev@dv6700.(none)"
},
"added": ["CHANGELOG"],
"modified": ["app/controller/application.rb"],
"removed": []
}
],
"total_commits_count": 4
}'
Build
# Using *.sh file on Linux, Unix, OSX
> ./build.sh
# Using make
make virtualenv install test
Install it from PyPI
pip install g2w
Materials & Links
- http://www.md5.cz - generate WS hash
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file g2w-0.3.0.tar.gz
.
File metadata
- Download URL: g2w-0.3.0.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07152622b36ed12b5178cede35d18195c85498699a2a65e6dae8f8281a861fec |
|
MD5 | 85ad42551c8a422511a9c220b93e2643 |
|
BLAKE2b-256 | 4e214565400c725a4995b6245b685e213265eabaa89c8b15ec3b9ab61bf40ed8 |
File details
Details for the file g2w-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: g2w-0.3.0-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26775838b0e0e6bd88cf46e49c9b7c1a19c31addc414daebd0e5fc90635bfa01 |
|
MD5 | 7a227b654faa231c06d2bca3257f28d2 |
|
BLAKE2b-256 | 3850a5fef5e578c61889ab6d401eba83f59eebb0337e034fbc3ea7a57853ea40 |