GithubHelp home page GithubHelp logo

jira_as_a_code's Introduction

Jira as a Code YAML (PACA)

PACA - Project as Code Assistant

tired of wasting time with jira.. making epics, tasks, links, this and that... transition to backlog, to do, whatever...

With PACA you can avoid a lot of non-sense-wasting-time with JIRA and drive the sprints, quarters, planning, or a project thru a YAML. This is how pac.yaml looks

sop_templates:
  cluster_migration_steps: |
    Each cluster has to be performed according this process:
    1 - Creation of new infrastructure via Terraform
    2 - Cleanup old resources from previous cluster

    DOD: Cleanup task has been completed.
  argo_update: |
    1 - argo step 1
    2 - argo step 2
  mesh_rollout: |
    1 - mesh step 1
    2 - mesh step 2
    3 - mesh step 3

    Validation: you should see lorem ipsum

quarters:
  - name: 2021_Q4
    epics:
      - name: Upgrade Fleet to ArgoCD v2.1.1
        estimation: 8w
        description: |
          As part of our LifeCycle, we need to upgrade our ArgoCD to v2.1.1
        sop_template: argo_update
        task_status: Backlog
        status: In Progress
        tasks_iterate:
          - name: ArgoCD Upgrade on %CLUSTER% to v2.1.1
            iterator: CLUSTER
            CLUSTER:
              - prod-cluster-1
              - prod-cluster-2
              - prod-cluster-3
            estimation: 1d
            story_points: 10
            sop_template: argo_update
            description: As part of our LifeCycle, we need to upgrade %METACLUSTER% ArgoCD to v2.1.1
        tasks:
          - name: ArgoCD Fleet Sync
            sop_template: argo_update
            story_points: 15
            estimation: 4h
            status: Selected for Development
            description: Sync ArgoCD in the Fleet
      - name: Upgrades K8s Fleet to v1.21
        estimation: 8w
        description: |
          As part of our LifeCycle, we need to upgrade our kubernetes clusters to v1.21
        sop_template: cluster_migration_steps
        task_status: Backlog
        status: In Progress
        tasks:
          - name: K8s - Migration - v1.21 prod-cluster-1 cluster
            estimation: 3d
            story_points: 10
            sop_template: cluster_migration_steps
            description: As part of our LifeCycle, we need to upgrade prod-cluster-1 kubernetes cluster to v1.21
          - name: K8s - Migration - v1.21 prod-cluster-2 cluster
            estimation: 3d
            story_points: 10
            sop_template: cluster_migration_steps
            description: As part of our LifeCycle, we need to upgrade prod-cluster-2 kubernetes cluster to v1.21
            status: Selected for Development
      - name: Rollout Service Mesh on Kubernetes Fleet
        estimation: 2w
        description: |
          Enable Traefik on the cluster
          This has to be performed in a specific order:
          1 - Staging
          2 - Production Fleet
            prod-cluster-1
            prod-cluster-2
            << COOLDOWN >> 3d
            .. the rest of clusters ..
        tasks:
          - name: K8s - ServiceMesh - Staging Clusters
            estimation: 2d
            story_points: 20
            sop_template: mesh_rollout
          - name: K8s - ServiceMesh - Prod Clusters
            estimation: 5d
            story_points: 40
            sop_template: mesh_rollout

There are features such as:

  • tasks_iterate Allows you to iterate over a list, that can be used as well to replace the name and description, and create as many jira tasks as it requires with minimum effort.

  • task_status Define the default status for the tasks of an epic, in this way you can have epics and their tasks on backlog then you can transition it into ToDo or whatever at light-speed.

  • sop_template Define templates that can be reused as descriptions of the tasks. They either become the whole description or they are appended to a description, thats up to you.

  • epics Declare EPICs and inside their tasks, they will automatically get linked.

  • quarters You can create many, and you can move Epics from one to another.. PACA will take care of the changes.

Since its declarative and overall produces a model, you can simply interpolate up-down some of the values within the epic->tasks and save time.

TODO

  • Add a mechanism to consolidate JIRA>PACA information so you can use the PACA DB to create dashboards, reports, etc.
  • Email or Slack (similar) integration to let the assignee to know that he is getting out of time or already out of time on a task
  • Assign a task or a whole epic to a user/s
  • some other fancy stuff that would make my life easier..

ALREADY KNOW

  • Yah you can make all this and much more with jira, but not as fast as this... yah you can make reports or whatever, with plugins or any other complicated ways of doing it.
  • No, ABSOLUTELY you CANNOT make a long quarter planning (epic, tasks, status, links, etc) click by click faster than PACA..
  • Yes, YAML to structure the planning is much faster than click by click on Jira
  • Yes, I could put testcases or whatever... but I have no time and yet this is a very small project. But if u want, throw a PR for it or any other improvement.

CONTRIBUTING

Talk is free, commits are not. Waiting for your PR.

jira_as_a_code's People

Contributors

fblgit avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.