# atlas-man
A CLI to manage Trello and Jira projects.
This project is in very early, but very active stages of development.
## Development Status
- Trello:
- ✅ List boards
- ✅ List lists
- ✅ List cards
- ✅ Add board
- ✅ Add list
- ✅ Add card
- ✅ Update board
- ✅ Update list
- ✅ Update card
- ✅ Delete board
- ✅ Delete list
- ✅ Delete card
- Jira:
- List issues
- ✅ all issues
- options for filtering by project, status, etc.
- ✅ List projects
- Add issue (default: task)
- ✅ Add task (default option)
- ✅ options for issue type
- ✅ iterate through mandatory fields
- add optional parameters for other fields
- ✅ Add project
- Update issue
- Update project
- title
- ✅ Delete issue
- ✅ Delete project
- General:
- TUI (prompt_toolkit) to select boards, lists, cards, etc.
- ✅ Config file to store API keys and other settings
- ✅ Alias support for boards, lists, cards, etc.
- ✅ Trello-specific and Jira-specific help text
- Integration with [Cabinet](https://www.github.com/tylerjwoodfin/cabinet)
- Full test coverage
- `verbose` support from config file
- `default_tool` support from config file
- `output_format` support from config file
- Export to CSV
- Future:
- Confluence integration
- Bitbucket integration
## Overview
`atlas-man` is a command-line interface (CLI) tool for managing tasks and projects in Trello and Jira. It allows you to interact with both platforms directly from your terminal, enabling streamlined project management without needing to open a web browser.
## Features
- List, add, and delete boards, lists, and cards on Trello.
- List, add, update, and delete issues and projects on Jira.
- Separate commands for Trello and Jira, so you can work with only the commands you need.
- Context-aware argument validation, ensuring commands are accurately targeted to Trello or Jira.
## Installation
```bash
pip install atlas-man
```
or
```bash
curl -s https://api.github.com/repos/tylerjwoodfin/atlas-man/releases/latest \
| grep "browser_download_url" \
| cut -d '"' -f 4 \
| xargs curl -L -o atlas-man.pex
sudo mv atlas-man.pex /usr/local/bin/
```
Dependencies in `requirements.md` are installed automatically.
## Configuration
Before using `atlas-man`, you need to populate `~/.config/atlas-man/config.json` file with your Trello and Jira API keys.
### Trello Configuration
- Visit the [Trello Power-Ups Admin](https://trello.com/power-ups/admin/) page and create a new Power-Up.
```
New Power-Up Name: atlas-man <or anything else>
Workspace: <choose a workspace>
Iframe connector URL: <leave blank>
Email: <your email>
Support Contact: <your email>
Name: <your name>
```
- Once the Power-Up is created, go to the API Keys tab and `Generate a new API Key`.
- Copy the API Key and secret, then paste it into `~/.config/atlas-man/config.json` under the `trello` section.
- Run
```bash
export TRELLO_API_KEY=<your API key>
export TRELLO_API_SECRET=<your API secret>
```
- Visit [https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&key=<YOUR_API_KEY>](https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&key=<YOUR_API_KEY>).
- Click `Allow`.
- You will be redirected to a page with a token.
- Copy the token from the URL into `oauth_token` in `~/.config/atlas-man/config.json`.
- Copy the token and paste it into `~/.config/atlas-man/config.json` under the `trello` section.
- Your config.json should look something like this:
```json
{
"trello": {
"api_key": "<your API key>",
"api_secret": "<your API secret>",
"oauth_token": "<your OAuth token>",
"alias_ids": { // optional
"shopping": {
"board_id": "",
"list_id": ""
},
"todo": {
"board_id": "",
"list_id": ""
}
// add more aliases as needed
}
},
}
```
### Jira Configuration
- Visit the [Jira API Tokens](https://id.atlassian.com/manage-profile/security/api-tokens) page and create a new API token.
- Copy the token and paste it into `~/.config/atlas-man/config.json` under the `jira` section.
- Fill out other fields in `~/.config/atlas-man/config.json` as needed.
- Your config.json should look like this:
```json
{
"jira": {
"api_token": "",
"base_url": "https://yourdomain.atlassian.net",
"username": "",
"default_project_key": "",
"default_issue_type": "Task",
"show_done_issues": False,
"custom_status_order": { // optional
"To Do": 1,
"In Progress": 2,
"Testing": 3,
"Done": 4
}
},
}
```
## Usage
Run the CLI by executing the `main` script with the appropriate commands for Trello or Jira. You can access detailed help with the `--help` flag.
```bash
atlasman --help
```
### Trello Commands
#### Listing Commands
- **List all Trello boards**:
```bash
atlasman --trello --boards
```
- **List all Trello lists**:
```bash
atlasman --trello --lists
```
- **List all Trello cards**:
```bash
atlasman --trello --cards
```
#### Add Commands
- **Add a new Trello board**:
```bash
atlasman --trello --add-board "Board Name"
```
- **Add a new Trello list to an existing board**:
```bash
atlasman --trello --add-list "Board ID" "List ID"
```
- **Add a new Trello card to an existing list**:
```bash
atlasman --trello --add-card "List ID" "Card Title"
```
#### Delete Commands
- **Delete a Trello board**:
```bash
atlasman --trello --delete-board "Board ID"
```
- **Delete a Trello list from a board**:
```bash
atlasman --trello --delete-list "List ID"
```
- **Delete a Trello card from a list**:
```bash
atlasman --trello --delete-card "Card ID"
```
### Jira Commands
#### Listing Commands
- **List all Jira issues**:
```bash
atlasman --jira --issues
```
- By default, this lists all issues not in the "Done" status.
- Configure this under `jira` -> `show_done_issues` in `~/.config/atlas-man/config.json`.
- You can also configure the sort order under `jira` -> `custom_status_order` in `~/.config/atlas-man/config.json`. See the example above. Add more statuses as needed.
- **List all Jira projects**:
```bash
atlasman --jira --projects
```
#### Add Commands
- **Add a new Jira issue to a project**:
```bash
atlasman --jira --add-issue "Project Key" "Issue Title" --type "<Issue Type, optional>"
```
- **Add a new Jira project**:
```bash
atlasman --jira --add-project "Project Name"
```
#### Update Commands
- **Update an existing Jira issue's title**:
```bash
atlasman --jira --update-issue "Issue ID" "New Title"
```
#### Delete Commands
- **Delete a Jira issue**:
```bash
atlasman --jira --delete-issue "Issue ID"
```
- **Delete a Jira project**:
```bash
atlasman --jira --delete-project "Project Key"
```
## Example Usages
Here are a few example commands you can try:
```bash
# List all Trello boards
atlasman --trello --boards
# Add a new list to the "Development" board
atlasman --trello --add-list "Development" "Backlog"
# List all issues in Jira
atlasman --jira --issues
# Add a new issue to the "WEB" project in Jira
atlasman --jira --add-issue "WEB" "Fix homepage bug"
```
## Contributing
We welcome contributions! Please fork the repository, make your changes, and submit a pull request. Before contributing, review the following guidelines:
1. Ensure code is clear, concise, and well-documented.
2. Include comments for any complex logic.
3. Test thoroughly before submitting your pull request.
## License
This project is licensed under the MIT License. See the [LICENSE](https://github.com/tylerjwoodfin/atlas-man/blob/main/LICENSE) file for more information.
## Contact
This project was developed by [Tyler Woodfin](https://www.tyler.cloud/).
For any inquiries or issues, please open an issue on [GitHub](https://github.com/tylerjwoodfin/atlas-man/issues).
Happy tasking!
Raw data
{
"_id": null,
"home_page": "https://github.com/tylerjwoodfin/atlas-man",
"name": "atlas-man",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Tyler Woodfin",
"author_email": "feedback-atlas-man@tyler.cloud",
"download_url": "https://files.pythonhosted.org/packages/0e/c1/d8d8512fcf3dd13d0159f17d7d5c0441906af8f8ae904160053a9e206d2a/atlas_man-0.2.1.tar.gz",
"platform": null,
"description": "# atlas-man\nA CLI to manage Trello and Jira projects.\n\nThis project is in very early, but very active stages of development.\n\n## Development Status\n- Trello:\n - \u2705 List boards\n - \u2705 List lists\n - \u2705 List cards\n - \u2705 Add board\n - \u2705 Add list\n - \u2705 Add card\n - \u2705 Update board\n - \u2705 Update list\n - \u2705 Update card\n - \u2705 Delete board\n - \u2705 Delete list\n - \u2705 Delete card\n- Jira:\n - List issues\n - \u2705 all issues\n - options for filtering by project, status, etc.\n - \u2705 List projects\n - Add issue (default: task)\n - \u2705 Add task (default option)\n - \u2705 options for issue type\n - \u2705 iterate through mandatory fields\n - add optional parameters for other fields\n - \u2705 Add project\n - Update issue\n - Update project\n - title\n - \u2705 Delete issue\n - \u2705 Delete project\n- General:\n - TUI (prompt_toolkit) to select boards, lists, cards, etc.\n - \u2705 Config file to store API keys and other settings\n - \u2705 Alias support for boards, lists, cards, etc.\n - \u2705 Trello-specific and Jira-specific help text\n - Integration with [Cabinet](https://www.github.com/tylerjwoodfin/cabinet)\n - Full test coverage\n - `verbose` support from config file\n - `default_tool` support from config file\n - `output_format` support from config file\n - Export to CSV\n- Future:\n - Confluence integration\n - Bitbucket integration\n\n## Overview\n`atlas-man` is a command-line interface (CLI) tool for managing tasks and projects in Trello and Jira. It allows you to interact with both platforms directly from your terminal, enabling streamlined project management without needing to open a web browser.\n\n## Features\n- List, add, and delete boards, lists, and cards on Trello.\n- List, add, update, and delete issues and projects on Jira.\n- Separate commands for Trello and Jira, so you can work with only the commands you need.\n- Context-aware argument validation, ensuring commands are accurately targeted to Trello or Jira.\n\n## Installation\n```bash\npip install atlas-man\n```\n\nor\n\n```bash\ncurl -s https://api.github.com/repos/tylerjwoodfin/atlas-man/releases/latest \\\n| grep \"browser_download_url\" \\\n| cut -d '\"' -f 4 \\\n| xargs curl -L -o atlas-man.pex\n\nsudo mv atlas-man.pex /usr/local/bin/\n```\n\nDependencies in `requirements.md` are installed automatically.\n\n## Configuration\nBefore using `atlas-man`, you need to populate `~/.config/atlas-man/config.json` file with your Trello and Jira API keys.\n\n### Trello Configuration\n- Visit the [Trello Power-Ups Admin](https://trello.com/power-ups/admin/) page and create a new Power-Up.\n\n```\nNew Power-Up Name: atlas-man <or anything else>\nWorkspace: <choose a workspace>\nIframe connector URL: <leave blank>\nEmail: <your email>\nSupport Contact: <your email>\nName: <your name>\n```\n\n- Once the Power-Up is created, go to the API Keys tab and `Generate a new API Key`.\n- Copy the API Key and secret, then paste it into `~/.config/atlas-man/config.json` under the `trello` section.\n- Run\n```bash\nexport TRELLO_API_KEY=<your API key>\nexport TRELLO_API_SECRET=<your API secret>\n```\n- Visit [https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&key=<YOUR_API_KEY>](https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&key=<YOUR_API_KEY>).\n - Click `Allow`.\n - You will be redirected to a page with a token.\n - Copy the token from the URL into `oauth_token` in `~/.config/atlas-man/config.json`.\n- Copy the token and paste it into `~/.config/atlas-man/config.json` under the `trello` section.\n- Your config.json should look something like this:\n```json\n{\n \"trello\": {\n \"api_key\": \"<your API key>\",\n \"api_secret\": \"<your API secret>\",\n \"oauth_token\": \"<your OAuth token>\",\n \"alias_ids\": { // optional\n \"shopping\": {\n \"board_id\": \"\",\n \"list_id\": \"\"\n },\n \"todo\": {\n \"board_id\": \"\",\n \"list_id\": \"\"\n }\n // add more aliases as needed\n }\n },\n}\n```\n\n### Jira Configuration\n\n- Visit the [Jira API Tokens](https://id.atlassian.com/manage-profile/security/api-tokens) page and create a new API token.\n- Copy the token and paste it into `~/.config/atlas-man/config.json` under the `jira` section.\n- Fill out other fields in `~/.config/atlas-man/config.json` as needed.\n- Your config.json should look like this:\n```json\n{\n \"jira\": {\n \"api_token\": \"\",\n \"base_url\": \"https://yourdomain.atlassian.net\",\n \"username\": \"\",\n \"default_project_key\": \"\",\n \"default_issue_type\": \"Task\",\n \"show_done_issues\": False,\n \"custom_status_order\": { // optional\n \"To Do\": 1,\n \"In Progress\": 2,\n \"Testing\": 3,\n \"Done\": 4\n }\n },\n}\n```\n\n## Usage\nRun the CLI by executing the `main` script with the appropriate commands for Trello or Jira. You can access detailed help with the `--help` flag.\n\n```bash\natlasman --help\n```\n\n### Trello Commands\n#### Listing Commands\n- **List all Trello boards**:\n ```bash\n atlasman --trello --boards\n ```\n- **List all Trello lists**:\n ```bash\n atlasman --trello --lists\n ```\n- **List all Trello cards**:\n ```bash\n atlasman --trello --cards\n ```\n\n#### Add Commands\n- **Add a new Trello board**:\n ```bash\n atlasman --trello --add-board \"Board Name\"\n ```\n- **Add a new Trello list to an existing board**:\n ```bash\n atlasman --trello --add-list \"Board ID\" \"List ID\"\n ```\n- **Add a new Trello card to an existing list**:\n ```bash\n atlasman --trello --add-card \"List ID\" \"Card Title\"\n ```\n\n#### Delete Commands\n- **Delete a Trello board**:\n ```bash\n atlasman --trello --delete-board \"Board ID\"\n ```\n- **Delete a Trello list from a board**:\n ```bash\n atlasman --trello --delete-list \"List ID\"\n ```\n- **Delete a Trello card from a list**:\n ```bash\n atlasman --trello --delete-card \"Card ID\"\n ```\n\n### Jira Commands\n#### Listing Commands\n- **List all Jira issues**:\n ```bash\n atlasman --jira --issues\n ```\n - By default, this lists all issues not in the \"Done\" status.\n - Configure this under `jira` -> `show_done_issues` in `~/.config/atlas-man/config.json`.\n - You can also configure the sort order under `jira` -> `custom_status_order` in `~/.config/atlas-man/config.json`. See the example above. Add more statuses as needed.\n\n- **List all Jira projects**:\n ```bash\n atlasman --jira --projects\n ```\n\n#### Add Commands\n- **Add a new Jira issue to a project**:\n ```bash\n atlasman --jira --add-issue \"Project Key\" \"Issue Title\" --type \"<Issue Type, optional>\"\n ```\n\n- **Add a new Jira project**:\n ```bash\n atlasman --jira --add-project \"Project Name\"\n ```\n\n#### Update Commands\n- **Update an existing Jira issue's title**:\n ```bash\n atlasman --jira --update-issue \"Issue ID\" \"New Title\"\n ```\n\n#### Delete Commands\n- **Delete a Jira issue**:\n ```bash\n atlasman --jira --delete-issue \"Issue ID\"\n ```\n- **Delete a Jira project**:\n ```bash\n atlasman --jira --delete-project \"Project Key\"\n ```\n\n## Example Usages\nHere are a few example commands you can try:\n\n```bash\n# List all Trello boards\natlasman --trello --boards\n\n# Add a new list to the \"Development\" board\natlasman --trello --add-list \"Development\" \"Backlog\"\n\n# List all issues in Jira\natlasman --jira --issues\n\n# Add a new issue to the \"WEB\" project in Jira\natlasman --jira --add-issue \"WEB\" \"Fix homepage bug\"\n```\n\n## Contributing\nWe welcome contributions! Please fork the repository, make your changes, and submit a pull request. Before contributing, review the following guidelines:\n1. Ensure code is clear, concise, and well-documented.\n2. Include comments for any complex logic.\n3. Test thoroughly before submitting your pull request.\n\n## License\nThis project is licensed under the MIT License. See the [LICENSE](https://github.com/tylerjwoodfin/atlas-man/blob/main/LICENSE) file for more information.\n\n## Contact\nThis project was developed by [Tyler Woodfin](https://www.tyler.cloud/).\nFor any inquiries or issues, please open an issue on [GitHub](https://github.com/tylerjwoodfin/atlas-man/issues).\n\nHappy tasking!\n",
"bugtrack_url": null,
"license": null,
"summary": "A CLI tool for managing Trello and Jira",
"version": "0.2.1",
"project_urls": {
"Bug Tracker": "https://github.com/tylerjwoodfin/atlas-man/issues",
"Homepage": "https://github.com/tylerjwoodfin/atlas-man"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d205daf8bbbca2e0a26aece0a12e68d37788db5d778058ccb490e900e67e9726",
"md5": "cebaad5ea49bae24e0408985e7e8f92e",
"sha256": "bd74e78cbd8fdcd7c71ec9c8900102715701c3011195d044740cd8dc327239a1"
},
"downloads": -1,
"filename": "atlas_man-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cebaad5ea49bae24e0408985e7e8f92e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 18529,
"upload_time": "2024-12-13T02:54:04",
"upload_time_iso_8601": "2024-12-13T02:54:04.348030Z",
"url": "https://files.pythonhosted.org/packages/d2/05/daf8bbbca2e0a26aece0a12e68d37788db5d778058ccb490e900e67e9726/atlas_man-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0ec1d8d8512fcf3dd13d0159f17d7d5c0441906af8f8ae904160053a9e206d2a",
"md5": "0a026cd1adfe70b36d7b818a38b8aefd",
"sha256": "3067a99722fd6ce2455ff9045a213f4b7e2614002061079ad60884faeee01b15"
},
"downloads": -1,
"filename": "atlas_man-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "0a026cd1adfe70b36d7b818a38b8aefd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 16108,
"upload_time": "2024-12-13T02:54:06",
"upload_time_iso_8601": "2024-12-13T02:54:06.431127Z",
"url": "https://files.pythonhosted.org/packages/0e/c1/d8d8512fcf3dd13d0159f17d7d5c0441906af8f8ae904160053a9e206d2a/atlas_man-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-13 02:54:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tylerjwoodfin",
"github_project": "atlas-man",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "atlas-man"
}