All Projects → marcelovicentegc → octosync

marcelovicentegc / octosync

Licence: MIT license
An open-source solution to keep Github and Jira issues in sync. An alternative to Exalate and Unito.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to octosync

AutoVer
Configurable automatic or real time backup and personal versioning system
Stars: ✭ 65 (+140.74%)
Mutual labels:  synchronization
tempo-api-python-client
Python bindings for Tempo - https://apidocs.tempo.io/
Stars: ✭ 17 (-37.04%)
Mutual labels:  jira
BoilR
Synchronize games from other platforms into your Steam library
Stars: ✭ 664 (+2359.26%)
Mutual labels:  synchronization
ticket-check-action
Verify that pull request titles start with a ticket ID
Stars: ✭ 29 (+7.41%)
Mutual labels:  jira
batyr
Microservice for on-demand synchronization of geographical vector datasources to a PostgreSQL/PostGIS database. The service provides an HTTP API for easy integration into other applications.
Stars: ✭ 25 (-7.41%)
Mutual labels:  synchronization
git-mit
Minimalist set of hooks to aid pairing and link commits to issues
Stars: ✭ 44 (+62.96%)
Mutual labels:  jira
postee
Simple message routing system that receives input messages through a webhook interface and can enforce actions using predefined outputs via integrations.
Stars: ✭ 160 (+492.59%)
Mutual labels:  jira
synchly
Automate database backups with customizable recurring schedules.
Stars: ✭ 27 (+0%)
Mutual labels:  synchronization
Jiraffe
One stop place for exploiting Jira instances in your proximity
Stars: ✭ 157 (+481.48%)
Mutual labels:  jira
jira role
Ansible role to install Atlassian JIRA
Stars: ✭ 13 (-51.85%)
Mutual labels:  jira
jiraworklogtool
A simple Chrome Extension that allows adding worklog in Jira easily.
Stars: ✭ 38 (+40.74%)
Mutual labels:  jira
vira
Create and update your Jira issues while inside Vim!
Stars: ✭ 76 (+181.48%)
Mutual labels:  jira
jirazzz
A jira rest client for the command line, written in clojure as a babashka script.
Stars: ✭ 26 (-3.7%)
Mutual labels:  jira
jira-sprint-reporting
Reporting in a Google Sheet on a Sprint level using JIRA REST API
Stars: ✭ 25 (-7.41%)
Mutual labels:  jira
jira-dark-theme
⚫ A dark theme for Jira
Stars: ✭ 24 (-11.11%)
Mutual labels:  jira
bea-content-sync-fusion
Synchronize contents across your Multisite.
Stars: ✭ 41 (+51.85%)
Mutual labels:  synchronization
CVE-2019-8449
CVE-2019-8449 Exploit for Jira v2.1 - v8.3.4
Stars: ✭ 66 (+144.44%)
Mutual labels:  jira
code-sync
Collaborative cloud platform for students, teachers, and professionals.
Stars: ✭ 28 (+3.7%)
Mutual labels:  synchronization
Coherence
Blender viewport renderer using the Unity Engine
Stars: ✭ 28 (+3.7%)
Mutual labels:  synchronization
SAVY
SAVY Player provides service to watch local videos with in a synchronized way.
Stars: ✭ 15 (-44.44%)
Mutual labels:  synchronization

License: MIT Build

octosync logo

octosync

An open-source solution to keep Github and Jira issues synchronized. An alternative to Exalate and Unito.


Features

  • Sync issue creation bi-directionally
  • Sync issue closing bi-directionally
  • Sync issue comments bi-directionally

Packages

Installation

Currently, there is only one way to run Octosync, which is through its Docker image containing both Jira and Githu webhooks servers. In the near future, Octosync will have a working bot that you can use to automate things on the Github end.

The configuration below is valid for both of the aforementioned methods.

Configuration

Variable Description Defaults to
NODE_ENV Whether you're running on a production or development environment. Set this to production when deploying Octosync to an actual host. development
PORT The port which Octosync should run. This variable only takes effect when developing locally, and NODE_ENV is set to development. Otherwise, it's set to 8000, which is the port it runs on the docker image. 8000
GITHUB_TOKEN An alternative to using passwords for authentication to GitHub when using the GitHub API or the command line. For more information on how to get this, see Creating a personal access token. -
GITHUB_ORGANIZATION Is your project hosted under your organization? If yes, use the organization name. Otherwise, use your Github usernamename. -
GITHUB_REPOSITORY The repository name of the repository which you'd like to sync issues with. -
JIRA_HOST The Jira's host of the project you'd like to sync issues with. For example, mine is https://marcelovicentegc.atlassian.net/. -
JIRA_API_TOKEN An API token to authenticate a script or other process (in this case, Octosync) with an Atlassian cloud product. For more information on how to get this, see Manage API tokens for your Atlassian account. -
JIRA_ISSUER_EMAIL You'll need an account to act in name of Octosync, by syncing Github events. This is where its email goes. -
JIRA_PROJECT The project key of your project on Jira. To give you an example, Octosync's project key on Jira is OCT - see its prefix on the Github messages. -
JIRA_PROJECT_ID The ID of your project. It sucks, but you'll need to get this from a querystring on Jira. See the following for more information on how to get these: Solved: JIRA Project ID, How to get project id from the Jira User Interface. -
JIRA_DONE_TRANSITION_ID The transition ID of the "Done", or the state which represents that a issue is completed/closed. For more information on how to get this, see How to find transition ID?. In my case, I navigated to {{ JIRA_HOST }}/secure/admin/workflows/ListWorkflows.jspa and clicked on edit on the transition I needed to see the transition ID. -
JIRA_DONE_STATUS_NAME The name of the transition above 👆. -
JIRA_CUSTOM_GITHUB_REPOSITORY_FIELD In order for Jira to figure out what is the repository linked to the project. We need to create custom fields on Jira, which will be filled by Github. For more information on how to create custom fields, see: Create a custom field. After creating the custom field, get its ID. For more on how to get a custom field ID, see: How to find out field id?. -
JIRA_CUSTOM_GITHUB_ISSUE_NUMBER_FIELD Repeat the above steps 👆. -

Docker image with Github and Jira webhooks servers

The directions below go as far as getting Octosync up and running on a host machine. Configuring a host machine and setting up any kind of proxy to make Octosync available to the world is beyond the scope of this document.

The above is also valid for how to get the ID of custom Jira fields, transition IDs and so on. I'm leaving some links that might be helpful, on the table below.

Once you have gotten the configuration variables needed, it's time to set the webhook triggerers on Github, and Jira. I'm assuming you already know where you'll be hosting Octosync and what is its domain.

  • To configure your Github project's webhooks, navigate to: https://github.com/{{ GITHUB_ORGANIZATION }}/{{ GITHUB_REPOSITORY }}/settings/hooks
  • To configure your Jira's system webhooks, navigate to: {{ JIRA_HOST }}/plugins/servlet/webhooks
Platform Webhooks Endpoint
Github Check the following triggerers: issues, issue comments and labels <your-domain>/github
Jira Check the following triggerers: Under the Issue column, check created, updated and deleted. Under the Comment column, check created <your-domain>/jira

Spinning Octosync

  1. Pull image from registry:

    $ docker pull ghcr.io/marcelovicentegc/octosync:latest
  2. Create a configuration file, based on the following format (same as .env.example, except it doens't has the PORT option):

    configuration.file

    NODE_ENV=production
    GITHUB_TOKEN=
    GITHUB_ORGANIZATION=
    GITHUB_REPOSITORY=
    JIRA_HOST=
    JIRA_ISSUER_EMAIL=
    JIRA_PROJECT=
    JIRA_PROJECT_ID=
    JIRA_API_TOKEN=
    JIRA_DONE_TRANSITION_ID=
    JIRA_DONE_STATUS_NAME=
    JIRA_CUSTOM_GITHUB_REPOSITORY_FIELD=
    JIRA_CUSTOM_GITHUB_ISSUE_NUMBER_FIELD=
    Click here to see an example file filled in, to have an idea of what it may end looking like (token values are fake)
      NODE_ENV=production
      GITHUB_TOKEN=ZmFrZURhdGE
      GITHUB_ORGANIZATION=marcelovicentegc
      GITHUB_REPOSITORY=octosync
      JIRA_HOST=https://marcelovicentegc.atlassian.net
      [email protected]
      JIRA_PROJECT=OCT
      JIRA_PROJECT_ID=10043
      JIRA_API_TOKEN=bW9yZUZha2VEYXRh
      JIRA_DONE_TRANSITION_ID=44
      JIRA_DONE_STATUS_NAME=Done
      JIRA_CUSTOM_GITHUB_REPOSITORY_FIELD=10035
      JIRA_CUSTOM_GITHUB_ISSUE_NUMBER_FIELD=10036
    
  3. Start the image:

    $ docker run -d -p <port-of-your-choice>:8000 --env-file configuration.file ghcr.io/marcelovicentegc/octosync
  4. You're all set. By this point Octosync should be up and running and all you need to do now is expose it to the world 😉.

Octosync bot and Docker image with Jira webhooks server

🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧

Contributing and developing

  1. Clone this repository: git clone [email protected]:marcelovicentegc/octosync.git
  2. Install dependencies and bootstrap packages: yarn && yarn build
  3. Navigate to the packages you want to contribute with and take a loot on their READMEs
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].