Giter VIP home page Giter VIP logo

ado-asana-sync's Introduction

ado-asana-sync

Test and Lint Quality Gate Status Coverage

Release PyPI - Version

Open in Visual Studio Code

This project aims to synchronize work items between Azure DevOps (ADO) and Asana. It's currently in development and not ready for use. Breaking changes will occur as needed.

How to use

  • Get the latest container image from the Github Container Registry.
  • Configure the environment variables with the relevant values:
    • ADO_PAT - Your Personal Access Token for ADO to accesst the work items.
    • ADO_URL - The full URL of your Azure DevOps instance.
    • ASANA_TOKEN - Your Personal Access Token for Asana to access the work items.
    • ASANA_WORKSPACE_NAME - Name of the Asana workspace to sync with.
    • CLOSED_STATES - Comma separated list of states that will be considered closed.
    • THREAD_COUNT - Number of projects to sync in parallel. Must be a positive integer.
    • SLEEP_TIME - Duration in seconds to sleep between sync runs. Must be a positive integer.
    • SYNCED_TAG_NAME - Name of the tag in Asana to append to all synced items. Must be a valid Asana tag name.
  • Run the container with the configured environment variables.
  • The application will start syncing work items between ADO and Asana based on the configured settings.

Development

Commit message style

This repo uses Conventional Commits to ensure the build numbering is generated correctly

Manual testing

To test the application manually, you can use the following steps:

  1. Create new ADO work item and ensure it is synced to Asana.
  2. Rename Asana task and ensure it is reverted back to the ADO name.
  3. Rename ADO task and ensure it is synced to Asana.
  4. Remove Synced tag from item in Asana and ensure it is replaced.
  5. Delete synced tag from Asana workspace and from appdata.json file and ensure it is re-created and assigned to all synced tasks.
  6. Mark Asana task as complete and ensure it is re-opened.
  7. Mark ADO task as complete and ensure it is marked as complete in Asana.
  8. Re-open ADO task and ensure it is re-opened in Asana.

Reference

ADO

Asana

ado-asana-sync's People

Contributors

danstis avatar dependabot[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

ado-asana-sync's Issues

Sync items based on backlog level

As a user, I want multiple levels of backlog items to be enabled to sync to asana based on matching names, so items are synced to a known project in asana.

The mapping of items should follow the below rules:

  • Sync items on requirements backlog to the Asana project as tasks
  • Sync Task level items in ADO to asana as subtasks
  • Only sync items that are assigned to asana people
  • Add items to any other project in asana that matches a parent ado item name
  • Add items to any section in the select projects that match a parent item name
ADO Asana
Project - Team Project
Epic (Additional Project if matching / Section if matching)
Feature (Additional Project if matching / Section if matching)
Work Item Task
Task Subtask

[AAS-16] Add DB to track item mapping

As a user, I want the synced tasks to track each other based on IDs, so I can rename tasks on either side without breaking the item relationship.

[AAS-11] Fix build pipeline for python

As a developer, I want the build pipeline to be updated to support the python version of the application, so I know that my changes are correct.

This pipeline should:

  • perform tagging of the commits

  • produce a release on github

  • add a github discussion item for the release

Priority mapping

As a user, I want a mapping created that assigns priorities on the Asana work items based on the ADO priority, so the priority of the tasks align.

Sync on a schedule

As a user, I want the sync process to happen continuously on a schedule, so I don't have to run it each time I want items synced or updated.

Update build process to bump version in pyproject.toml file

As a developer, I want the build process to generate a binary version of the application with the correct version number based on the build and tags, so the version is integrated into the application.

The version in the default pyproject.toml file should be hardcoded to something that represents development (0.0.0-dev) and have the build process update the version before creating the built binary.

[AAS-13] Only sync assigned tasks

as a user, I want the sync process to only sync tasks that are assigned to a user that exists in Asana, so it does not sync unrelated tasks.

The user mapping between ADO and Asana should be created based on email if they match.

[AAS-1] Sync new items from ADO to Asana

As a user, I expect items created in ADO to have a matching item created in Asana.

Item types that are copied/synced should be configurable.

The service should create some binding key/id to enable future updates to the copied tasks.

[AAS-12] Update readme

As a developer, I want the readme updated to be accurate with the current Python version of the application, so others have the correct information.

  • add sonar cloud badge

  • remove go link

Fix issue with build pipeline for Mypi

ado_asana_sync/sync/sync.py: error: Source file found twice under different module names: "sync.sync" and "ado_asana_sync.sync.sync"
ado_asana_sync/sync/sync.py: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#mapping-file-paths-to-modules for more info
ado_asana_sync/sync/sync.py: note: Common resolutions include: a) adding `__init__.py` somewhere, b) using `--explicit-package-bases` or adjusting MYPYPATH
Found 1 error in 1 file (errors prevented further checking)

Add sync of Pull Requests

As a user, I want open Pull Requests in ADO to create a linked task in Asana, so I can track open Pull Requests.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.