{"id":37154744,"url":"https://github.com/stkr89/jarvis","last_synced_at":"2026-01-14T18:18:15.858Z","repository":{"id":55697881,"uuid":"320723144","full_name":"stkr89/jarvis","owner":"stkr89","description":"Define your workflows as a yaml config and execute via a simple cli command. ","archived":false,"fork":false,"pushed_at":"2020-12-15T12:00:49.000Z","size":39,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-19T04:59:00.898Z","etag":null,"topics":["automation","cli","workflow","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","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/stkr89.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":"2020-12-12T01:31:26.000Z","updated_at":"2023-02-13T20:15:18.000Z","dependencies_parsed_at":"2022-08-15T06:30:45.940Z","dependency_job_id":null,"html_url":"https://github.com/stkr89/jarvis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stkr89/jarvis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stkr89%2Fjarvis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stkr89%2Fjarvis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stkr89%2Fjarvis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stkr89%2Fjarvis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stkr89","download_url":"https://codeload.github.com/stkr89/jarvis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stkr89%2Fjarvis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28430287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["automation","cli","workflow","yaml"],"created_at":"2026-01-14T18:18:15.344Z","updated_at":"2026-01-14T18:18:15.851Z","avatar_url":"https://github.com/stkr89.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jarvis\n\nJarvis is a cli based workflow automation tool. It takes its input from a `yml` \nfile and performs the required tasks.  \nFollowing are some benefits of automating your workflows using Jarvis:\n- Shared and executed by any member of your team\n- Added to a git repo and evolve over time\n- Work with environment variables\n- Executed by an automation server (eg, Jenkins)\n- Keep the workflow consistent and free from manual errors\n\n## Usage\nHere is simple `config.yml` file that can be processed by Jarvis.\n```yaml\ntasks:\n  - name: Make sample get request\n    task_type:\n      http:\n        method: GET\n        url: https://reqres.in/api/users\n        auth:\n          basic:\n            username: username\n            password: password\n```\nUse following command to verify if the `config.yml` is valid.\n```shell\njarvis verify ./config.yml\n```\nTo initiate execution, run following command.\n```shell\njarvis apply ./config.yml\n```\nLet's break down this file to understand what each component means.\n## Tasks\nA Task is an independent unit of work that gets executed as part of the workflow.\nA config file can contain any number of tasks. These can be a combination\nof any type of task that is supported by Jarvis.\n## Task type\nA task type defines the kind of work that Jarvis need to perform. Jarvis supports\nfollowing type of tasks:\n### HTTP\n```yaml\nhttp:\n  method: GET\n  url: https://reqres.in/api/users\n```\n```yaml\nhttp:\n  url: https://reqres.in/api/users\n  method: POST\n  body:\n    firstName: foo\n    lastName: bar\n```\n`http` tasks are responsible for performing actions that require interaction with \na RESTful endpoint. It has following properties:\n#### Method\n`method` takes any one of the following values:\n- `GET`\n- `POST`\n- `PUT`\n- `DELETE`\n#### Url\n`url` takes the address of the RESTful endpoint where the request need to be made.\n#### Auth\n`auth` describes the type authentication scheme required by the RESTful endpoint. It\nsupports following authentication schemes:\n##### Basic\n```yaml\nauth:\n  basic:\n    username: username\n    password: password\n```\n`basic` authentication adds a header field in the form of \n`Authorization: Basic \u003ccredentials\u003e`, where `\u003ccredentials\u003e` is the Base64 encoding of \n`username` and `password` joined by a single colon `:`.  \n\u003e You can also provide `username` and `password` via environment variables.\n```yaml\nbasic:\n    username: ${USERNAME}\n    password: ${PASSWORD}\n```\n##### Bearer Token\n```yaml\nauth:\n  bearer_token:\n    token: token\n```\n`bearer_token` authentication adds a header field in the form of \n`Authorization: Bearer \u003ctoken\u003e`.\n\u003e You can also provide `token` via environment variable.\n```yaml\nauth:\n  bearer_token:\n    token: ${TOKEN}\n```\n##### Custom\n```yaml\nauth:\n  custom:\n    my_header_1: value1\n    my_header_2: value2\n```\n`custom` authentication adds headers `my_header_1` and `my_header_2` with values \n`value1` and `value2` respectively.\n\u003e You can also provide value for the custom header via environment variable.\n```yaml\nauth:\n  custom:\n    my_header: ${VALUE}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstkr89%2Fjarvis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstkr89%2Fjarvis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstkr89%2Fjarvis/lists"}