{"id":22446005,"url":"https://github.com/richbl/taiga.io-scripts","last_synced_at":"2025-07-18T05:08:56.028Z","repository":{"id":79647866,"uuid":"37746265","full_name":"richbl/taiga.io-scripts","owner":"richbl","description":"A set of scripts that interact with the Taiga agile project management platform (taiga.io)","archived":false,"fork":false,"pushed_at":"2024-12-18T15:59:33.000Z","size":302,"stargazers_count":25,"open_issues_count":0,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-08T07:08:20.789Z","etag":null,"topics":["agile","bash","html","javascript","shell","taiga","taiga-importers","taiga-tasks"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richbl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-19T21:14:12.000Z","updated_at":"2025-01-24T23:13:02.000Z","dependencies_parsed_at":"2023-05-14T06:15:13.311Z","dependency_job_id":null,"html_url":"https://github.com/richbl/taiga.io-scripts","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/richbl/taiga.io-scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richbl%2Ftaiga.io-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richbl%2Ftaiga.io-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richbl%2Ftaiga.io-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richbl%2Ftaiga.io-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richbl","download_url":"https://codeload.github.com/richbl/taiga.io-scripts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richbl%2Ftaiga.io-scripts/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265703633,"owners_count":23814044,"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":["agile","bash","html","javascript","shell","taiga","taiga-importers","taiga-tasks"],"created_at":"2024-12-06T03:17:58.145Z","updated_at":"2025-07-18T05:08:56.020Z","avatar_url":"https://github.com/richbl.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e **DATED PROJECT**: note that this project is out of date (created in 2015), and new Taiga API calls will likely break this script. The most current Taiga.io API is now located here: https://docs.taiga.io/#api. If you'd like to push new functionality (or update existing functionality) to this script, please feel free to work with me on pull requests as needed. Thanks!\n\n# Taiga.io-Scripts\nThese scripts manage an Agile project management platform currently under development called [Taiga](http://taiga.io \"Taiga project management platform\"). \nThough in beta, this web-based platform is extremely stable and the RESTful API is thorough and responsive.\n\nThese scripts are organized into three categories:\n\n- **Taiga Importers**: bulk import new user stories into an existing Taiga project\n- **Taiga Exporters**: export the JSON file that defines an existing Taiga project (useful for backing a project)\n- **Taiga Task Activity Reporting**: generate a custom visual report on Taiga tasks on a per-user basis. Several variants of this script are available, including a Javascript solution that does not use bash.\n\n## [\u003cimg src=\"https://github.com/user-attachments/assets/4dc1e16e-3fd3-481c-9a43-b027c029dd27\" width=\"150\" /\u003e](https://github.com/richbl/a-bash-template)[Developed with a Bash Template (BaT)](https://github.com/richbl/a-bash-template)\n\nThe [bash](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) scripts in **Taiga.io-Scripts** use a bash template (BaT) called **[A-Bash-Template](https://github.com/richbl/a-bash-template)** designed to make script development and command line argument management more robust, easier to implement, and easier to maintain. Here are a few of those features:\n\n- Dependencies checker: a routine that checks all external program dependencies (*e.g.*, [jq](https://stedolan.github.io/jq/))\n- Arguments and script details--such as script description and syntax--are stored in the [JSON](http://www.json.org/) file format (*i.e.*, `config.json`)\n- JSON queries (using [jq](https://stedolan.github.io/jq/)) handled through wrapper functions\n- A script banner function automates banner generation, reading directly from `config.json`\n- Command line arguments are parsed and tested for completeness using both short and long-format argument syntax (*e.g.*, `-f|--font`)\n- Optional command line arguments are permissible and managed through the JSON configuration file\n- Template functions organized into libraries (see the [Bash-Lib](https://github.com/richbl/bash-lib) project for details) to minimize code footprint in the main script\n\nFor more details about using a bash template, [check out the BaT sources here](https://github.com/richbl/a-bash-template).\n\n## Taiga Importers\n### Importing User Stories into a Taiga Project\nCalled `taiga_import_story.sh`, it does what it sounds like: imports a user story into a Taiga project. Actually, the real value of this script is that it can perform a bulk import of many stories from a tab-delimited file provided as input to the script.\n\nThis script creates a new story, populating the following fields:\n\n- project ID (determined from project slug name, an argument passed into the script)\n- story subject (required)\n- story description\n- tags (up to three)\n\n\u003e **NOTE:** For technical details about creating a new story in Taiga, see the [Taiga REST API](https://taigaio.github.io/taiga-doc/dist/api.html#user-stories-create).\n\n### User Story File Format\nThe file format used to define individual user stories is a simple **tab-delimited** structure:\n\n\tColumn 1\tColumn 2\tColumn 3\tColumn 4\tColumn 5\n\tSubject\t    Description\t[Tag 1]\t    [Tag 2]\t    [Tag 3]\n\n### Basic Usage\n`taiga_import_story.sh` is run through a command line interface, so all of the command options are made available there.\n\nHere's a successful import of a user story into a Taiga project that uses a project slug named called \"a-test-project-import\":\n\n\u003e**NOTE:** Taiga project slugs are not the same as a Taiga project, but are derived from a Taiga project name. For details on how to determine a Taiga project slug, see the [Taiga REST API](https://taigaio.github.io/taiga-doc/dist/api.html#_projects).\n\n\t$ bash taiga_import_story.sh -w https://api.taiga.io -n a-test_project_import -i /home/user/Desktop/bulk_stories -u user@somewhere.com -p pass123\n\t\n\t |\n\t |  A bash script to POST user stories into a Taiga project\n\t |    0.2.0\n\t |\n\t |  Usage:\n\t |    import_taiga -w website -n project_slug_name -i input_file -u username -p password\n\t |\n\t |  -w, --website            website IP or URL (e.g., http://www.website.com)\n\t |  -n, --project_slug_name  project slug name (not the project name)\n\t |  -i, --input_file         tab-delimited input file\n\t |  -u, --username           username\n\t |  -p, --password           password\n\t |\n\t\n\tSuccess: user story #680676 imported.\n\tSuccess: user story #680679 imported.\n\n\n## Taiga Exporters\n### Export a Taiga Project into a JSON File\n`taiga_export_project.sh` takes a number of command-line parameters, mostly identifying the Taiga project from which to export, and exports the JSON file to a date-and-time-stamped file (particularly useful for a running backup archive).\n\n\u003e**NOTE:** For technical details defining the JSON structure of a Taiga project, see the [Taiga REST API](https://taigaio.github.io/taiga-doc/dist/api.html#export-import-export-dump).\n\nRelated to this script, `run_taiga_export_project.sh` is the front-end script that calls into `taiga_export_project.sh` with a predefined set of parameters. This script is used to automate a regular Taiga project backup strategy through the use of Unix-like tools such as *crontab*.\n\n### Basic Usage\n`taiga_export_project.sh` is run through a command line interface, so all of the command options are made available there.\n\nHere's a successful export of a Taiga project that uses a project slug named called \"a-test-project-import\":\n\n\t$ bash taiga_export_project.sh -w https://api.taiga.io -n a-test_project_import -o /home/user/Desktop -u user@somewhere.com -p pass123\n\t\n\t|\n\t| A bash script to GET a JSON export file from a Taiga project\n\t|  0.2.0\n\t|\n\t| Usage:\n\t|   export_taiga -w website -n project_slug_name -o output_dir -u username -p password\n\t|\n\t|   -w, --website          website_url (e.g., http://www.website.com)\n\t|   -n, --projectslugname  project_slug_name (not the project name)\n\t|   -o, --outputdir        absolute directory path for exported file\n\t|   -u, --username         user_name\n\t|   -p, --password         password\n\t|\n\t\n\tSuccess: JSON export completed. Results file (a-test_project_import-export-20160416211616.json) created in /home/user/Desktop.\n\n\n\u003e**NOTE**: The Taiga REST API only permits the export of a Taiga project using JSON if the Taiga server is configured to return a HTTP status code of 200. If the server returns 202, a valid export file is not available, and `taiga_export_project.sh` will quit indicating the reason for failure. For technical details, see the [Taiga REST API as it relates to project export](https://taigaio.github.io/taiga-doc/dist/api.html#export-import-export-dump). \n\n## Taiga Task Activity Reporting\nThese scripts are used to query into an existing Taiga project, parse user stories by user, perform some calculations against these user stories, and ultimately display the results graphically using [Highcharts](http://www.highcharts.com/ \"Highcharts\").\n\n\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://cloud.githubusercontent.com/assets/10182110/17636695/b8276304-6093-11e6-9402-58f8a52308cd.png\"\u003e\u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://cloud.githubusercontent.com/assets/10182110/17636695/b8276304-6093-11e6-9402-58f8a52308cd.png\"\u003e\u003cimg src=\"https://cloud.githubusercontent.com/assets/10182110/17636695/b8276304-6093-11e6-9402-58f8a52308cd.png\"\u003e\u003c/picture\u003e\n\n\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/richbl/taiga.io-scripts/master/taiga_tasks_activity_report.png\"\u003e\u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/richbl/taiga.io-scripts/master/taiga_tasks_activity_report.png\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/richbl/taiga.io-scripts/master/taiga_tasks_activity_report.png\"\u003e\u003c/picture\u003e\n\nThese scripts are provided in both bash and JavaScript, and are intended to be run either locally or from a remote server. The organization of the repository should provide some understanding of which scripts are which:\n\n- bash folder containing:\n\t- `taiga_tasks.sh`\n\t- `run_taiga_tasks.sh`\n- local folder containing:\n\t- `taiga_tasks.html`\n- remote folder containing:\n\t- `taiga_tasks.html`\n\t- `favicon.ico`\n\t- img folder containing:\n\t\t- `logo.png`\n\t- js folder containing:\n\t\t- `taiga_tasks_dlg.js`\n\t\t- `taiga_tasks_api.js`\n\nThe scripts contained in the bash and the local folders are useful for running these applications from a local machine, while the scripts in the remote folder are intended to be installed and run from a remote web-server.\n\n## Requirements\n### Bash Scripts\n\n - A preexisting Taiga project\n - An operational [bash](https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29) environment (bash 4.3.2 used during development)\n - Curl (http://curl.haxx.se/) must be installed on host machine\n - JQ (https://stedolan.github.io/jq/) must be installed on host machine, used for parsing the `config.json` file\n\nWhile this package was written and tested under Linux (Ubuntu 15.10), there should be no reason why this won't work under other Unix-like operating systems.\n\n### JavaScript Scripts\nThe JavaScript version of the taiga_tasks solution expects JavaScript to be running in the browser. All other requirements are managed remotely through a set of external JavaScript libraries.\n\n## License\nThis software is released under the GNU GENERAL PUBLIC LICENSE, Version 3. For details, see the license file in this project ([`license.md`](https://github.com/richbl/taiga-scripts/blob/master/LICENSE \"License\")).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichbl%2Ftaiga.io-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichbl%2Ftaiga.io-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichbl%2Ftaiga.io-scripts/lists"}