Commit Graph

239 Commits

Author SHA1 Message Date
Denis Gukov
3d571c0319
Use Stdin to pass secrets to ansible-playbook (#1911)
* feat: pass secrets via stdin

* feat: use pty

* feat(pty): logs

* feat(secrets): works

* fix(secrets): use correct ask flag of ansible playbook

* test(secrets): change tests
2024-04-05 14:36:04 +02:00
fiftin
205fe71bcb
fix(websocket): duplication logs for admin 2024-04-05 13:02:06 +02:00
fiftin
f20451b4c8
fix(backups): add inventory field 2024-04-03 11:02:29 +02:00
Denis Gukov
f758e75d9e
Merge pull request #1906 from semaphoreui/1870-author-details-missing-in-slack-alert
fix(alerts): use dash instead of user name of it is cron task
2024-04-03 00:45:34 +02:00
Denis Gukov
ab3fe8ba02
Merge pull request #1905 from semaphoreui/1832-refresh-does-not-seem-to-work-correctly
fix(backups): add the user to the restored project
2024-04-03 00:33:49 +02:00
fiftin
cbccad0de0
fix(alerts): use dash instead of user name of it is cron task 2024-04-03 00:28:36 +02:00
fiftin
0c9c611cb3
fix(backups): add the user to the restored project 2024-04-03 00:05:07 +02:00
fiftin
dafc6590df
fix(users): update task log for admins 2024-04-02 23:50:52 +02:00
fiftin
7f15af22b5 fix(slack): log messege for unsuccess sent 2024-04-02 14:16:34 +02:00
Denis Gukov
d33d752bea
unregister runner (#1875)
* fix(login): expire cookie on error with login

* feat: allows to unregister runner via cli

* feat(runner): add subcommands

* feat(runners): unregister command

* refactor(runner): move config to util.gol

* Revert "fix(login): expire cookie on error with login"

This reverts commit 6d726e3475.
2024-03-27 14:43:41 +01:00
fiftin
7a1e08023e feat(runners): change log messages 2024-03-27 12:04:30 +01:00
fiftin
52f64e36fa fix: email link 2024-03-23 21:59:29 +01:00
fiftin
c5448d0357 feat: use html for emails 2024-03-23 21:16:59 +01:00
fiftin
a369bd772f feat: add emoji for all messengers 2024-03-23 20:55:33 +01:00
fiftin
e2707994cb feat: add notification for confirmation 2024-03-23 20:36:43 +01:00
fiftin
8964689383 feat(notifications): add emoji to messages 2024-03-23 20:33:48 +01:00
fiftin
65d7a467fa feat(integrations): add alias management endpoints 2024-03-20 14:01:52 +01:00
tothakos-code
21f9b50b66 feat: add secret survey field type 2024-03-19 09:49:33 +01:00
Oussama Jarrousse
631da95ea9 Adding rocket.chat alerts support (similar to slack) 2024-03-15 18:30:15 +01:00
Oussama Jarrousse
a43c94f6e7 Revert "Adding rocket.chat alerts support (similar to slack)"
This reverts commit 2bb8114464.
2024-03-15 18:23:11 +01:00
Oussama Jarrousse
2bb8114464 Adding rocket.chat alerts support (similar to slack) 2024-03-15 18:20:54 +01:00
fiftin
26f609b3a5 fix(runners): check statuses from server 2024-03-12 03:03:43 +01:00
fiftin
f2c8bc2a4c fix(be): deny waiting confirmation after confirmed 2024-03-12 02:53:29 +01:00
fiftin
179a2625f7 fix(be): logger for playbook 2024-03-12 02:20:30 +01:00
fiftin
7667665755 fix(be): status for local running job 2024-03-12 02:06:21 +01:00
fiftin
02899c9ccb feat: status updating 2024-03-12 01:44:04 +01:00
fiftin
8a6d5821f8 Revert "feat: make inventory optional for template"
This reverts commit f6f3e4228f.
2024-03-10 22:56:58 +01:00
fiftin
8aafae1417 Merge branch 'develop' of github.com:ansible-semaphore/semaphore into develop 2024-03-10 22:51:37 +01:00
fiftin
f6f3e4228f feat: make inventory optional for template 2024-03-10 22:51:28 +01:00
gavrilov.nikita
741a6748fd Fix deprecation io/ioutil 2024-03-10 22:07:19 +03:00
fiftin
479eb889f8 refactor: add type InventoryType 2024-03-09 20:23:38 +01:00
fiftin
c150d90a75 feat(be): implement confirmation endpoint 2024-03-09 15:01:20 +01:00
fiftin
bdd758e59d feat(be): add confirm endpoint 2024-03-09 14:54:27 +01:00
Thomas Boerger
dba0b8e35e
feat: add more logs to alerts and use same structure for teams alerts 2024-03-03 22:29:37 +01:00
Thomas Boerger
5c8b87620e
feat: refactoring of alerts and send correct email alerts
Previously the sent email alerts have been missing mandatory headers
like `Date` and it was also missing content type, content transfer
encoding and mime version. I have taken proper examples form the
unmaintained gomail library to build right emails.

Besides that I have refactored the calls for alerts, they git the same
structure now and it should be prepared to inject custom templates for
all altering methods at some later point. Generally it is prepared for a
more flexible alert handling.
2024-03-03 20:12:28 +01:00
Denis Gukov
ebb0c2c286
Merge pull request #1584 from robinmalik/develop
Add: Support for Microsoft Team Channel Alerts (via Adaptive Card webhook)
2024-03-02 18:35:11 +01:00
Denis Gukov
60f3c72c22
Merge pull request #1771 from thibaultserti/develop
fix: slack color for failure
2024-03-01 14:27:07 +05:00
Thomas Boerger
3b7436e22c
feat: upgrade all dependencies
I have updated all dependencies within go.mod by executing `go get -u
./...`, beside that I had to replace the imports for logrus, mergo and
squirrel to match the right names from their modules.
2024-02-27 12:06:05 +01:00
Thibault Ayanides
b932b96088
fix: slack color for failure 2024-02-19 21:55:18 +01:00
fiftin
e2f43bee7e fix(schedule): parallel tasks with boltdb (https://github.com/ansible-semaphore/semaphore/issues/1211) 2024-02-10 18:59:56 +05:00
Denis Gukov
d173577f3d feat(backup): add random suffix for resources with the same name 2024-02-10 18:23:11 +05:00
Denis Gukov
813358b266 feat(backup): add random suffix for resources with the same name 2024-02-10 18:21:39 +05:00
Denis Gukov
1fd655258a fix(backup): nullpointer error with cron 2024-02-10 15:30:41 +05:00
samerbahri98
6d2b34858f
fix(api): restore cron 2024-02-07 22:19:25 +01:00
samerbahri98
9c0b53a216
test(api): restore 2024-02-07 22:19:25 +01:00
samerbahri98
84a3841c80
feat(api): restore 2024-02-07 22:19:23 +01:00
samerbahri98
6a2cfcc3ac
feat(api): backup 2024-02-07 22:19:22 +01:00
fiftin
78c93b1c84 fix: null pointer to logger 2024-02-05 01:38:15 +05:00
fiftin-quiz
57046eaf65 refactor(app): add app factory 2024-01-30 20:42:56 +05:00
Denis Gukov
b361695f68
Add app field to template (#1721)
* feat(be): add template app

* feat(be): add field app to template

* fix(be): add app to sql implementation

* refactor(be): extract AnsibleApp class

* refactor(be): rename LocalJobApp -> LocalApp

* feat(app): default app id = empty string

---------

Co-authored-by: fiftin-quiz <157730881+fiftin-quiz@users.noreply.github.com>
2024-01-30 14:26:11 +05:00
Denis Gukov
f7da53c75c fix(runner): pass token in PUT request 2024-01-08 00:50:37 +05:00
Denis Gukov
7d99fd2e7d feat(runner): support env vars 2024-01-07 22:25:52 +05:00
Denis Gukov
8263693622 fix(runner): check token 2024-01-07 21:35:02 +05:00
Denis Gukov
446515fd1a fix(runner): status code condition 2024-01-07 18:37:22 +05:00
Denis Gukov
f47c2ee407 fix(runner): chanage log messages 2024-01-07 18:36:48 +05:00
Denis Gukov
34485b7b8e feat(backend): add config option max_task_duration_sec 2023-12-25 04:17:12 +05:00
Robin Malik
dd15b7feae Remove localhost debugging line 2023-10-21 16:33:33 +01:00
Robin Malik
2c36d7e603 Update to use red image for indicating failure 2023-10-21 16:03:30 +01:00
Robin Malik
f9011986a0 Add empty final line in keeping with project code 2023-10-21 10:53:35 +01:00
Robin Malik
2abf648d9a Remove some debug logging 2023-10-21 10:51:30 +01:00
Robin Malik
da51613236 Add Adaptive Card template (not compressed) 2023-10-21 10:50:08 +01:00
Robin Malik
2e51ab7f1f Add support for Microsoft Team Channel Webhook 2023-10-21 10:47:11 +01:00
Denis Gukov
6c0ff218bb
fix(config): support yes for bool (#1536)
* fix(config): support yes for bool

* feat(runners): add logs

* feat(runners): add logs
2023-10-01 16:38:05 +02:00
Denis Gukov
b7c1eea8e6 fix: merge conflict 2023-09-23 17:54:46 +02:00
Denis Gukov
43b342b3e8 feat(secrets): use ssh agent for git 2023-09-23 17:47:27 +02:00
Denis Gukov
58850e9129 refactor: create package db_lib 2023-09-23 17:12:35 +02:00
Denis Gukov
bc3210994a feat(runners): use 1 atomic for check and send 2023-09-20 03:01:28 +02:00
Denis Gukov
7f6173bf14 fix(runners): add atimic checks 2023-09-20 02:17:41 +02:00
Denis Gukov
a6c89d041b fix(runner): duplication of runners and tasks 2023-09-20 01:03:58 +02:00
Andras Elso
dbbb73c0b7 Fix test 2023-09-20 00:26:17 +02:00
Denis Gukov
c8a00ba1e4 fix(alerts): version instaed of build id 2023-09-19 23:34:51 +02:00
Denis Gukov
47f9c851e6 chore(alerts): use ERR instead of WARN 2023-09-19 23:14:21 +02:00
Denis Gukov
80cb157e52 fix(alerts): do not panic on error 2023-09-19 23:11:51 +02:00
Andras Elso
c80815656e Fix variable scope 2023-09-19 23:10:45 +02:00
Andras Elso
4553cfea99 Handle ssh keys with internal ssh agent 2023-09-19 21:31:41 +02:00
Denis Gukov
e6c72fb330 fix(be): ignore max parallel tasks if it is 0 2023-09-17 22:06:28 +02:00
Denis Gukov
70dd0554d8 fix(runners): specify content type in webhook request 2023-09-17 01:09:08 +02:00
Denis Gukov
ed3693472f fix(config): bug with handing maps in config 2023-09-16 23:47:06 +02:00
Denis Gukov
b829285981 ci: return dev workflow 2023-09-13 12:43:11 +02:00
Denis Gukov
aef7cbca04 feat: add status starting 2023-09-12 20:58:44 +02:00
Denis Gukov
0522ad169f feat(runners): add SetStatus method 2023-09-12 19:40:22 +02:00
Denis Gukov
0304e7cac3 fix(runners): pass vault key 2023-09-11 02:00:10 +02:00
Denis Gukov
a8921e6e82
Runners (#1458)
* feat(runners): update task status

* feat(config): add remote runner flag

* feat(runners): kill remote job

* feat(runners): update state
2023-09-10 23:18:25 +02:00
Denis Gukov
dc5bba69e6 chore(be): rename method 2023-08-30 11:13:48 +02:00
Denis Gukov
9f9606e18a fix(runners): use local job 2023-08-29 12:28:28 +02:00
Denis Gukov
d1b7ad021e
Runners (#1444)
* feat(runners): add register endpoint

* feat(runners): add remote runner

* refactor(runners): move functionality TaskRunner -> AnsibleJobRunner

* fix(runners): init job

* chore(runners): remote unused field

* feat(runners): use external logger from AnsibleJobRunner

* refactor(runners): remove status field

* refactor(runners): remove mutation from job

* feat(runners): pass username and verison to task

* test(runners): fix tests

* fix(runners): params for Run

* feat(runners): implement runner selection

* feat(runners): fill required fields

* fix(runners): session block

* feat(runners): kill process

* refactor(runners): rename fields to public

* feat(runners): remote runner functionallity

* refactor(runners): remove unused class

* fix(runners): send json

* feat(runners): runner registration

* feat(runners): logging

* feat(runners): server <-> running communication works

* feat(runners): pass creds to runenr
2023-08-29 00:51:04 +02:00
Denis Gukov
b5a99eba7f
Runners (#1439)
* refactor(runners): extract jobs to separate entity
2023-08-27 18:02:51 +02:00
Denis Gukov
29b38c446c test: fix test after MR 2023-07-03 10:40:17 +02:00
Denis Gukov
62a771fec0
Merge pull request #1289 from cedbale/taskId
feat: expose taskID into semaphore_vars
2023-06-27 18:51:02 +02:00
Daniel Torlop
ad30f8252c
fix: email alert 2023-06-21 22:16:26 +02:00
Cédric
653029c94d
Update runner.go 2023-06-20 14:18:57 +02:00
Cédric
efdf4140f0 feat: provide task ID from semaphore_vars 2023-06-20 14:16:21 +02:00
mgukov
d8b7cc54ba feat: use go git client by default 2023-03-06 12:48:03 +07:00
mgukov
40e018aaa1 feat:support go-git client 2023-02-26 13:22:47 +07:00
Denis Gukov
1e58ff16f4 fix(be): housekeeping after clone 2022-11-21 00:37:05 +05:00
Denis Gukov
f830f3bbee test(be): task run 2022-11-20 14:10:33 +05:00
Denis Gukov
056aeb4942 fix(be): running task on boltdb 2022-11-20 13:15:29 +05:00
Denis Gukov
07c6860ccb feat(be): support session connection for boltdb 2022-11-19 03:23:30 +05:00
Denis Gukov
8d0a27822d fix(be): creating task/output for boltdb with no keep connection mode 2022-11-09 22:31:52 +05:00
Denis Gukov
53a75cf916 test: fix unit test 2022-11-09 21:37:38 +05:00
Denis Gukov
579f978ffc feat(be): do not keep connection by BoltDB 2022-11-09 21:30:35 +05:00
Denis Gukov
e4cf341f9e fix(be): bug with derermining of playbook path, relates to https://github.com/ansible-semaphore/semaphore/issues/1068 2022-10-29 15:00:56 +05:00
anarchistcat
b27611e565 Diff mode test 2022-10-28 05:05:13 +02:00
Denis Gukov
1923eb751f fix(be): use correct collections path 2022-10-16 23:30:52 +05:00
Denis Gukov
0dd190dbcf fix(be): email sending 2022-10-02 22:10:56 +05:00
Loïc Tosser
13af56c031
Merge branch 'develop' into slack-alerts 2022-07-14 10:21:13 +04:00
Denis Gukov
fd259a4af4 fix(be): empty env field in environment, https://github.com/ansible-semaphore/semaphore/issues/980 2022-06-30 11:04:51 +05:00
Dino Paskvan
545df6fb87
Merge branch 'ansible-semaphore:develop' into develop 2022-06-24 12:31:30 +02:00
Dino Paškvan
e6a90b4762 Update runner to use new model 2022-06-24 12:31:00 +02:00
Denis Gukov
261719137a
Merge pull request #811 from jdhayes/develop
Added ansible limit to API
2022-06-23 17:02:21 +05:00
Dino Paškvan
6ff9b34c10 Add back ENV variable support 2022-06-14 12:58:52 +02:00
quantumsheep
5761b4e15e
feat: support yaml static inventories 2022-05-24 17:55:20 +02:00
Loïc Tosser
d86fb48b97 Improve slack messages 2022-04-19 16:32:03 +04:00
Loïc Tosser
d957c81789 Slack alerts 2022-04-19 10:51:13 +04:00
Loïc Tosser
e72a5a6ee6 Slack alerts 2022-04-11 12:29:48 +04:00
Denis Gukov
4bfb9bd78e feat(be): support git file:// protocol and local repo 2022-03-30 20:31:00 +05:00
Cyril
ebc0900820 set type argument in galaxy calls 2022-03-17 20:28:31 +01:00
Cyril
a5c49bc826 fix: typo on ansible-galaxy argument 2022-03-17 17:22:40 +01:00
Cyril
de3b1e2eb5 fix ansible-semaphore/semaphore#682 2022-03-17 17:18:56 +01:00
bakito
b442fa9576
colored output 2022-03-13 16:25:03 +01:00
Jordan Hayes
4b884ab567 Fixed limit override, now appends 2022-03-09 11:59:10 -08:00
Jordan Hayes
c24fdd19d1 Moved API limit patch to use Task Override 2022-03-09 10:48:42 -08:00
jhayes
b3caba78f8 Merge branch 'develop' of github.com:ansible-semaphore/semaphore into develop 2022-03-08 11:04:13 -08:00
Denis Gukov
b127e054d8 feat(be): add max parallel tasks to project settings and ability to suppress success alerts for tasks 2022-02-14 16:52:28 +05:00
Jordan Hayes
1f4c8c1c76 Added ansible limit to args, again 2022-02-10 12:01:42 -08:00
Denis Gukov
32a6c952ce refactor(be): move some functionality to GitRepository and AnsiblePlaybook classes 2022-02-06 20:37:55 +05:00
Denis Gukov
f9ea2df04e fix(be): bug with deserializing secrets 2022-02-06 17:17:28 +05:00
Denis Gukov
f8d333f0b1 feat: add username (optional) for SSH access key 2022-02-06 00:00:33 +05:00
Denis Gukov
fe9c602c5d fix(be): bug with panic https://github.com/ansible-semaphore/semaphore/issues/855 2022-02-05 22:34:34 +05:00
Denis Gukov
95e891cdd8 fix(be): bug with alert chat id https://github.com/ansible-semaphore/semaphore/issues/853 2022-02-03 23:35:32 +05:00
Denis Gukov
05dd7c5653 feat: remove soft delete functionality 2022-02-03 12:06:24 +05:00
Denis Gukov
9c5c155f99 fix(be): shedule with condition 2022-01-31 15:43:13 +05:00
Denis Gukov
dec20af128 fix(be): cron condition 2022-01-31 09:22:08 +05:00
Denis Gukov
208e615a6e feat(be): cron task with condition 2022-01-30 22:43:15 +05:00
Denis Gukov
bf7b50316a refactor(be): extract Ansible to separate class 2022-01-30 18:04:09 +05:00
Denis Gukov
3e559cccb4 fix(be): err check 2022-01-30 16:29:33 +05:00
Denis Gukov
88f4603028 refactor(be): extract git functionality to separate class 2022-01-30 16:22:18 +05:00
Denis Gukov
fa4e13a0f1 refactor(be): remove global vars of task pool and schedule pool 2022-01-29 23:14:36 +05:00
Denis Gukov
b5eac6ca2f refactor(be): move schedules to package services 2022-01-29 16:24:51 +05:00