# Changelog All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. ## [0.3.0](https://github.com/ssube/cautious-journey/compare/v0.2.0...v0.3.0) (2022-11-23) ### ⚠ BREAKING CHANGES * requires Node with stable ES modules. Consumers targeting versions of Node or browsers without module support will need to use a bundler to replace the imports. * **config:** this updates config loading to use the fs.promises API and does not resolve paths from HOME or __dirname. Using an absolute or relative path in the args option is still supported. ### Features * **remote:** prepare gitlab remote for gitbeaker upgrade ([b26fb78](https://github.com/ssube/cautious-journey/commit/b26fb78ff72e02a02e7d91fef1cffe7918fe5639)) * switch output to es module, use c8 for coverage ([24d96a5](https://github.com/ssube/cautious-journey/commit/24d96a56d48e233d07a987d0968788dc5b6e170f)) * **config:** load and validate config directly, without js-config lib ([c32ac31](https://github.com/ssube/cautious-journey/commit/c32ac312df44b3e1488a7fecc90a0a0273d6ed60)) ### Bug Fixes * **config:** switch args to an async call, options map ([7311407](https://github.com/ssube/cautious-journey/commit/7311407d9ed1935ca645546db07da906b02a58cd)) * add istanbul schema for c8 ([f51590e](https://github.com/ssube/cautious-journey/commit/f51590e71d013e83862d81fb72396901b605e4e5)) * improve error handling for TS 4.5 ([6c93fa9](https://github.com/ssube/cautious-journey/commit/6c93fa9d617ef494bf508e78044268a375b7c3c5)) * swap out deprecated helper ([f007787](https://github.com/ssube/cautious-journey/commit/f00778709c5812992ba16f0146098af129f292ca)) * **build:** handle image build errors in script ([b23eb38](https://github.com/ssube/cautious-journey/commit/b23eb389bacffcdd30a4be771f4b084a854dfb40)) * **build:** set image build root path ([2cd1e5a](https://github.com/ssube/cautious-journey/commit/2cd1e5a0fe0b51b335d8af3453202396587f8299)) * **build:** update docker build vars ([12f63b5](https://github.com/ssube/cautious-journey/commit/12f63b538fcee2975407fa0a193d2a29da6a8725)) * **build:** update package version ([c487efb](https://github.com/ssube/cautious-journey/commit/c487efb5ed7929491edbe729e3af9d3a03973903)) * **build:** use sanitized git tag or ref for image tag ([6ebad3c](https://github.com/ssube/cautious-journey/commit/6ebad3c08afccf4ef108519198f6967c635d5836)) * **image:** use correct package manager in stretch image ([190784b](https://github.com/ssube/cautious-journey/commit/190784bfd5075f3cb7e2128d0bee36307cda5814)) * **module:** be selective about gitlab client options ([be153a8](https://github.com/ssube/cautious-journey/commit/be153a8149f49edc7a6f8367766295426594d416)) * **remote:** remove fake typeguard around gitlab responses ([f2475c7](https://github.com/ssube/cautious-journey/commit/f2475c72f918208f37123a79b14ce5a30d94fc27)) * **remote/github:** extract label name when listing issues ([d777147](https://github.com/ssube/cautious-journey/commit/d7771474a36c85acffe8162a9a9fcb6383cea278)) * **sync:** better logging for existing/updated labels ([6c9916d](https://github.com/ssube/cautious-journey/commit/6c9916d96ff948ff3f9e59fd8a55e17b1a1f0076)) * **sync:** log errors during issue and project sync ([#554](https://github.com/ssube/cautious-journey/issues/554)) ([4e6c007](https://github.com/ssube/cautious-journey/commit/4e6c0071ecb65c0a6272bd9d55d6e3e5e19bf8eb)) * update prng typedef ([4342faf](https://github.com/ssube/cautious-journey/commit/4342faf467d8b975cd1fdd3d32101f323cc9ef3e)) ## 0.2.0 (2021-07-10) ### ⚠ BREAKING CHANGES * includes all breaking changes from js-yaml v4 and readonly include options from js-yaml-schema. This is breaking because documents may parse differently, but the API of this library has not changed. ### Features * **build:** enable terser ([6413dde](https://github.com/ssube/cautious-journey/commit/6413dde2568e82153c58d082b458053f1cffad70)) * add initial labels to project ([1f3cbac](https://github.com/ssube/cautious-journey/commit/1f3cbac59894241c30b6605c7b0b802643413cd8)) * **build:** add package binary, switch to cjs for cli ([71d534d](https://github.com/ssube/cautious-journey/commit/71d534d80f99cd4e7262cf770d4e2c5adff058dd)) * **build:** add vscode task to compile ([622617f](https://github.com/ssube/cautious-journey/commit/622617f76511af42e23912b006017975da42e28b)) * **config:** add project comment, state divider to config ([2feb5a3](https://github.com/ssube/cautious-journey/commit/2feb5a3c60867f01ec1793cc088264c28f50f96f)) * **config:** validate using json schema, compare issue labels for update ([272a566](https://github.com/ssube/cautious-journey/commit/272a566acb5cd19a11a1593b828e69163a39159a)) * **graph:** cluster flags ([97d2ec5](https://github.com/ssube/cautious-journey/commit/97d2ec5720e8f76871e66d0a4e6b076e06be4355)) * **main:** capture command as mode ([8dd63f7](https://github.com/ssube/cautious-journey/commit/8dd63f770a3a8f998ab5a0faf68ba5308d1228f2)) * **main:** get config name from args ([e6857d7](https://github.com/ssube/cautious-journey/commit/e6857d7c738b66ee402ddb0b7d7c90232b39a578)) * **main:** load config from hard-coded file ([63878d3](https://github.com/ssube/cautious-journey/commit/63878d37a927d01742ab8459a5f57f20b90d2484)) * **main:** seed random generator with project name ([50cf48f](https://github.com/ssube/cautious-journey/commit/50cf48fdcf0d2bad743479ac818c9dc6e5f8b888)) * **remote:** implement issue, label list methods for Gitlab ([9f85e22](https://github.com/ssube/cautious-journey/commit/9f85e22196b8a552dae3078579a0bf95a0a0feab)) * **remote:** implement issue, label update methods for gitlab, add dryrun support ([e3351fe](https://github.com/ssube/cautious-journey/commit/e3351fe344897909e71c6b7ac5ad6c6d2e352f4a)) * add graphviz output mode ([ddc1d6b](https://github.com/ssube/cautious-journey/commit/ddc1d6b9c89e744ceca17af322a9a3da1ce05e16)) * create remote via DI container ([a38c130](https://github.com/ssube/cautious-journey/commit/a38c130e7369ca3b9b5237d64b2c39d674bfb26d)) * **logger:** add bunyan without DI ([25b375d](https://github.com/ssube/cautious-journey/commit/25b375d6ac6f359da22f0f82e342b65d123fa377)) * **main:** add project option, use to filter project sync ([e4ab01a](https://github.com/ssube/cautious-journey/commit/e4ab01ad10ff6b13b5605fa9747affdbd2f24745)) * **main:** wire up sync command stubs ([d510a3a](https://github.com/ssube/cautious-journey/commit/d510a3afb3ec8c1111f5ee1d12734d78c9b160ca)) * **remote:** sketch out interface, stub github/gitlab remotes ([7af3f35](https://github.com/ssube/cautious-journey/commit/7af3f35baf4e0e51cbe19ece68c115c0cf58b623)) * **remote/github:** add dry run option ([4460c98](https://github.com/ssube/cautious-journey/commit/4460c98e9b53726716dd1ac4308cd801f7027fb8)) * **remote/github:** add token auth based on config ([d121275](https://github.com/ssube/cautious-journey/commit/d121275e11177ae610f5a67000ff1f33fe24d583)) * **remote/github:** implement label create, delete ([abd7ac5](https://github.com/ssube/cautious-journey/commit/abd7ac5295dcc5091175b9a3e6448375cd113ca7)) * **remote/github:** wire up auth, issue list ([903eba9](https://github.com/ssube/cautious-journey/commit/903eba9a0c52c78f38559367aeb01885fac73fdc)) * **remote/github:** wire up label list endpoint ([fa81e86](https://github.com/ssube/cautious-journey/commit/fa81e86084e2c08cb8a1fc11e4a76fd344867a7e)) * **resolve:** add checks for label rules to states logic ([8aaa397](https://github.com/ssube/cautious-journey/commit/8aaa3976d86dc0114245f03494bb93ebb593e957)) * **resolve:** adds missing tests for requires rule ([54c6f4a](https://github.com/ssube/cautious-journey/commit/54c6f4a6fc5dc6ce45c20d6965dba22a7d42375f)) * **resolve:** comment & formatting fixes ([32c3fa9](https://github.com/ssube/cautious-journey/commit/32c3fa9f59cfbb6763f19816715fc4342adf3a7d)) * **resolve:** implement flag rules for issue labels ([bba4f52](https://github.com/ssube/cautious-journey/commit/bba4f5206a1656e76be4f90455ecfc9376a4b21e)) * **resolve:** implement state becomes logic ([b18d6f3](https://github.com/ssube/cautious-journey/commit/b18d6f340e72f93c62e4f4c9a5d6b136e3048029)) * **resolve:** record label changes made during resolution ([9bd41aa](https://github.com/ssube/cautious-journey/commit/9bd41aacac7a3ab13f869fb233b645f9b4d613fa)) * **sync:** basic label sync logic ([28c9ee8](https://github.com/ssube/cautious-journey/commit/28c9ee8865cca81bc6dedb145eabb66e8dc07751)) * **sync:** check actual difference between labels ([d651c34](https://github.com/ssube/cautious-journey/commit/d651c347c515f0a1e2f1a3d58c3860b4bdec7433)) * **sync:** leave comment with changes ([8edcd03](https://github.com/ssube/cautious-journey/commit/8edcd03873ea1d9d02cb9137bc1cb6b9f9ac477d)) * **sync:** select label color from flag or state, value, and project ([365a23c](https://github.com/ssube/cautious-journey/commit/365a23c85c1418b27dc9641337136a086a7a9a19)) * **sync:** update label color, desc ([c7581df](https://github.com/ssube/cautious-journey/commit/c7581df13abd11a7163531673f423067113de5f5)) * **sync:** use config labels per project ([41be935](https://github.com/ssube/cautious-journey/commit/41be935a2f5d0188fade8dbe7385f53d031521ce)) * add issue, label sync stubs, remote options to config, flatten resolver inputs ([0d34158](https://github.com/ssube/cautious-journey/commit/0d341587e2d902d74d8344000dd80583021d43f7)) * add main function, arg parsing for CLI ([1f641fc](https://github.com/ssube/cautious-journey/commit/1f641fc7ada79a040a9f02235df8231929186f02)) * initial project structure from template ([3442b8f](https://github.com/ssube/cautious-journey/commit/3442b8f0527678ada73b61cbb2c8c28ba854fa61)) * sketch out config, label interfaces ([efb294e](https://github.com/ssube/cautious-journey/commit/efb294e1cc499c6d6521ea043cad21e10025fafa)) * support multiple projects in one config ([0edbdea](https://github.com/ssube/cautious-journey/commit/0edbdea7d1b032c7842adf1d7a3c639d6c197281)) * **test:** add example data-driven tests ([c5dc410](https://github.com/ssube/cautious-journey/commit/c5dc410dad14ba284a07e4f56759957961303ca2)) ### Bug Fixes * **build:** add cc config ([6cb6d18](https://github.com/ssube/cautious-journey/commit/6cb6d1894740e81f1447ab25359f72521921f8ae)) * **build:** build images from cached version ([579b66f](https://github.com/ssube/cautious-journey/commit/579b66f169f5aeae5b1c7d04f7460b1a6189437c)) * **build:** configure markdownlint ([6bf84c4](https://github.com/ssube/cautious-journey/commit/6bf84c47a9b2947ce59185fb1c392a21ed551578)) * **build:** copy template renovate config ([e623a28](https://github.com/ssube/cautious-journey/commit/e623a28fdbec8598503ca5a8172a633ceb2437d8)) * **build:** filter scripts, tests out of coverage report ([65cf8e7](https://github.com/ssube/cautious-journey/commit/65cf8e78d41956b30da210228b6d6bd35b7cdd52)) * **build:** install build deps ([fbd294d](https://github.com/ssube/cautious-journey/commit/fbd294d2c7f124d7f7d2446d9ffd0da9e95bec32)) * **build:** install packages from nexus ([544ff83](https://github.com/ssube/cautious-journey/commit/544ff8359f80eb21d0bbe58e6464ab556aaaf560)) * **build:** isolate rollup entrypoint ([4570a2c](https://github.com/ssube/cautious-journey/commit/4570a2c2c829ddd66f4134eb041613e2c9d3f979)) * **build:** publish to npm central ([51ba7ba](https://github.com/ssube/cautious-journey/commit/51ba7bae5222bf78f7b430bf0947cf4fdaf7adfa)) * **build:** remove lingering deploy jobs ([fe160fa](https://github.com/ssube/cautious-journey/commit/fe160fa53e2c8ec5bd1b89699d96d1e068bc6de3)) * **build:** remove tslint packages ([cd8d376](https://github.com/ssube/cautious-journey/commit/cd8d37691447e4d80a3ab248db44bfd12e0f942a)) * **build:** use library node as base image ([17eed58](https://github.com/ssube/cautious-journey/commit/17eed587a9ae5104ae21f753ed6313b2c5b5bcb2)) * reduce renovate noise, automerge test deps ([8dddf2e](https://github.com/ssube/cautious-journey/commit/8dddf2e5c1db777cc0de457c6a4b938828a1e6ba)) * **build:** include yargs in bundle ([4e83723](https://github.com/ssube/cautious-journey/commit/4e83723a2cfdd2709b47d7d658978b67ebdb7049)) * **build:** prepend index with hashbang ([fa573d2](https://github.com/ssube/cautious-journey/commit/fa573d25a0782f70717bf2a395f05789839d50e2)) * **build:** pull images from nexus ([50c6d4b](https://github.com/ssube/cautious-journey/commit/50c6d4b2fbcedd1ec098ead0de965a50858ed06b)) * **build:** update eslint for typescript-eslint 4 rules ([fb496f5](https://github.com/ssube/cautious-journey/commit/fb496f56f6487ea80f466ec39d5064fbe8bbd8af)) * **config:** describe CLI options ([5947139](https://github.com/ssube/cautious-journey/commit/59471392743683fabd0d41c0b1ce175621226b3b)) * **config:** group gitbeaker updates ([5dab083](https://github.com/ssube/cautious-journey/commit/5dab0837c028299cc458038e8c5766c26e547522)) * **config:** match command names and docs, cover parts of sync ([505636f](https://github.com/ssube/cautious-journey/commit/505636f3dc9ece69dc4e617506b727b199b4f67b)) * **config:** restore yargs exit behavior for now ([b3669da](https://github.com/ssube/cautious-journey/commit/b3669da93041f8788011173500088960373c090a)) * **config:** switch to js-config fully ([98391a9](https://github.com/ssube/cautious-journey/commit/98391a9a4774f491180f4fe0eeb89007ae771bf4)) * **config:** use extended schema with js-config ([512112f](https://github.com/ssube/cautious-journey/commit/512112f4fbadda8deb06cbf96673c80aa6a6a0f6)) * **config:** validate color values ([e6faf1a](https://github.com/ssube/cautious-journey/commit/e6faf1ac69ec3a4d89e23514779625e7000566d1)) * **config:** validate remote options ([3935172](https://github.com/ssube/cautious-journey/commit/39351721269517acc80b366c19bc9a8db58e3bf1)) * **config:** validate state changes ([9a69044](https://github.com/ssube/cautious-journey/commit/9a69044e1882c2d7dc04452125ff42b2cb04f721)) * **docs:** 22 typos ([ec1f336](https://github.com/ssube/cautious-journey/commit/ec1f3361cd358145aedb072132204224f338b2ca)) * **docs:** add checking out project ([2bdd9d4](https://github.com/ssube/cautious-journey/commit/2bdd9d4b616bc1b24db5be7fbe649b8146c98cac)) * **docs:** add codeclimate badge ([086307e](https://github.com/ssube/cautious-journey/commit/086307ee77590c1161504471fa97dbeb5e0deff8)) * **docs:** add developer guide with setup ([89325d8](https://github.com/ssube/cautious-journey/commit/89325d8ad2aec57c035a987d18ad8260083b4e2f)) * **docs:** add example config ([af41614](https://github.com/ssube/cautious-journey/commit/af416147b941ac5e07a4971147644de104593b53)) * **docs:** add merging changes to workflow.md ([76cd161](https://github.com/ssube/cautious-journey/commit/76cd16164a07fc477bc2ccf1af26e937ec44b9aa)) * **docs:** add readme, basic run targets ([5868383](https://github.com/ssube/cautious-journey/commit/586838360b81672ef92007947df986da4df37b4b)) * **docs:** add skeleton architecture doc ([a50f36b](https://github.com/ssube/cautious-journey/commit/a50f36b6c3f31d710a025bf2b26c9226a2119889)) * **docs:** begin fleshing out getting-started guide ([cbf5c51](https://github.com/ssube/cautious-journey/commit/cbf5c5195f3b7513df509fb753ac98b79f122845)) * **docs:** describe running, CLI options ([ceafdba](https://github.com/ssube/cautious-journey/commit/ceafdbab8a43ffae860ad381a4289f78b30e1db9)) * **docs:** describe state changes, values, and remote options ([432ef13](https://github.com/ssube/cautious-journey/commit/432ef13bb6c8880ce0303e050edcda82c2dbb4eb)) * **docs:** explain config structure, auth methods ([b7b3c5f](https://github.com/ssube/cautious-journey/commit/b7b3c5f00a2540eaf396a3179ee73ea7922f6e90)) * **docs:** generating and viewing graphs ([72f48af](https://github.com/ssube/cautious-journey/commit/72f48af1368ed321f749ab382e369de0200cea3b)) * **docs:** note gitlab support ([df3b1eb](https://github.com/ssube/cautious-journey/commit/df3b1eb5fbba14a8d2fa7d419b0c68a1a53c049d)) * **docs:** remove references to remote option ([1b9eccb](https://github.com/ssube/cautious-journey/commit/1b9eccbdf775cc557b9c553314eff96a21b6fa4f)) * **docs:** start workflow guide, add ToC to guides ([f00dcb9](https://github.com/ssube/cautious-journey/commit/f00dcb9ca7f8dde2e36f45addfb98377ff74ed75)) * **docs:** typo ([03f297d](https://github.com/ssube/cautious-journey/commit/03f297d8ab2b8f4671664238037536b63d9a7805)) * **docs:** update remote names for DI ([d78e5df](https://github.com/ssube/cautious-journey/commit/d78e5df26da9479571cd7368efd52818e63bcef9)) * **graph:** merge edges between the same pair of nodes ([80caa7a](https://github.com/ssube/cautious-journey/commit/80caa7a5792d7f6be3f241d1bd2eb51021c0ba71)) * **graph:** use label colors for nodes ([2eba08e](https://github.com/ssube/cautious-journey/commit/2eba08e11b4ef290aa7dce38bf7cbf77f2a93baf)) * **main:** log env and version on startup ([c1394f3](https://github.com/ssube/cautious-journey/commit/c1394f307f472284921f1b5c3ae45be963e1ac06)) * **remote:** usage of internal gitbeaker types ([1e2b2a0](https://github.com/ssube/cautious-journey/commit/1e2b2a093bd7a1152cebd6cb9745f26d76be3423)) * use commonjs version of yargs to detect named exports ([2411adf](https://github.com/ssube/cautious-journey/commit/2411adf90b3f3ff289037856b86820de957d66b1)) * **build:** install deps into image ([d2c8ecf](https://github.com/ssube/cautious-journey/commit/d2c8ecfabed666483532bb0943f09f2287368f25)) * **docs:** add logo to readme ([07e97e8](https://github.com/ssube/cautious-journey/commit/07e97e8fe1e38f973c4d012bb0d85360e5833244)) * **docs:** add test coverage to workflow.md ([52b225c](https://github.com/ssube/cautious-journey/commit/52b225c511425d3dedd62b0936f8bd6577c6265a)) * **docs:** replace broken david-dm, fossa badges ([d0fb19f](https://github.com/ssube/cautious-journey/commit/d0fb19f8aaa4264ce9eda7d5ed1d3cc9113ce228)) * **labels:** copy before priority sort ([20d1175](https://github.com/ssube/cautious-journey/commit/20d11756ca3c07d03ceafe234d19ce3473c04e88)) * **remote:** return created comment for gitlab, cover remaining endpoints ([040ad3c](https://github.com/ssube/cautious-journey/commit/040ad3c5005082a068d502678faaebd35853a377)) * **remote/github:** do not create octokit client for dry run ([b1adb11](https://github.com/ssube/cautious-journey/commit/b1adb116c68cb0e92a2c00c24d9173d8df677ebb)) * **remote/github:** selectively disable requests for dry run ([b562f80](https://github.com/ssube/cautious-journey/commit/b562f803cd2387b4b643c6cfc13de738cb780afe)) * **remote/github:** use data type for auth method ([39a7091](https://github.com/ssube/cautious-journey/commit/39a7091ac3806b5be3740439dff454657ae9f37f)) * **resolve:** check combined state/value rules ([06cb70d](https://github.com/ssube/cautious-journey/commit/06cb70d5a142454008ffa12412a0bb15d0d0b382)) * **resolve:** continue handling state values after removal ([3a3facb](https://github.com/ssube/cautious-journey/commit/3a3facb282496c58c2db251dd3a5e8dac6789d98)) * **resolve:** moves labels rule check to broader scope ([65b0de5](https://github.com/ssube/cautious-journey/commit/65b0de5cee0f02fed1e3d607cb32adc05d0b150b)) * **resolve:** record correct name when becomes rule removes label ([0cd176d](https://github.com/ssube/cautious-journey/commit/0cd176d789f66c9561c56f75352558d6f93b7492)) * **resolve:** resolve branch conflicts ([445a0ab](https://github.com/ssube/cautious-journey/commit/445a0abc9781be703e788db2a3788c7b52571281)) * **resolve:** sort output labels ([1ddb341](https://github.com/ssube/cautious-journey/commit/1ddb3411108fb93abe596b8dfecf830950b8f5e5)) * **resolve:** split up the resolve labels ([804c3bb](https://github.com/ssube/cautious-journey/commit/804c3bb13365d7be71c0c1c17dd96dc72aab13cb)) * **sync:** handle negative random indices ([686cb83](https://github.com/ssube/cautious-journey/commit/686cb834bc5c5b9a588e1723ca9352c83cd740ed)) * **sync:** wire up basic issue logic ([b2fac34](https://github.com/ssube/cautious-journey/commit/b2fac3494b55652c720ad1955a11433e07f7794f)) * **test:** add cases for state changes ([2e816f7](https://github.com/ssube/cautious-journey/commit/2e816f7c750c97d7830888d6d65b58d1b4067a25)) * **test:** begin covering github auth ([c16c10e](https://github.com/ssube/cautious-journey/commit/c16c10e140ac467bc85df5fec8bac60b09a5b161)) * **test:** begin covering main ([9364266](https://github.com/ssube/cautious-journey/commit/9364266c86e994e3eeafb91b8a6967339554135b)) * **test:** cover config loading, graph styles ([0ea5791](https://github.com/ssube/cautious-journey/commit/0ea5791a8f9d67e2d82e24b68b27938112e90c02)) * **test:** cover config validation, more github endpoints ([4fea5c8](https://github.com/ssube/cautious-journey/commit/4fea5c8b949a591e774b2a6f3e1b2669f47a1dd5)) * **test:** cover dependent flags ([0735bf3](https://github.com/ssube/cautious-journey/commit/0735bf3a50368800fd6152771eda13c82dd6c668)) * **test:** cover dot graph helpers ([ccb4a7c](https://github.com/ssube/cautious-journey/commit/ccb4a7cfcb12b3c816121eb4be507cc4d6a42318)) * **test:** cover label color selection and update ([6229e2b](https://github.com/ssube/cautious-journey/commit/6229e2b46f9eb5b2c2bfdac76fe7bcd40a4a4308)) * **test:** cover merge edges helper ([6ce4ca0](https://github.com/ssube/cautious-journey/commit/6ce4ca09b49797d5f59136bddd6b645fc35d91f2)) * **test:** cover more remote endpoints ([9e769e3](https://github.com/ssube/cautious-journey/commit/9e769e33552843ffb692b496a754c15b69ef2085)) * **test:** cover state subgraph ([12144ca](https://github.com/ssube/cautious-journey/commit/12144cae49d7d58287bc48a5bb1e68e47dd53570)) * **test:** cover subgraphs ([d0f3452](https://github.com/ssube/cautious-journey/commit/d0f34521f0551743180a89eb0c2c69fadecc8805)) * **test:** use container for remotes ([545e5b9](https://github.com/ssube/cautious-journey/commit/545e5b979d354f794c371bd656ba72fa062ed0ae)) * remote ctor takes options, stub tests for main ([c2d54aa](https://github.com/ssube/cautious-journey/commit/c2d54aa195d477f7005ee58979c0d1b0074bb240)) * remove changeset trait from state label, test colorize logic ([4aeb324](https://github.com/ssube/cautious-journey/commit/4aeb3243f7ccb026cf78027d90fa90a925e8156e)) ### update * js-yaml and js-yaml-schema ([c2dbfff](https://github.com/ssube/cautious-journey/commit/c2dbfff72b6777d43ac85e87a6db074e4910cd66)) ## 0.2.0 (2021-07-10) ### ⚠ BREAKING CHANGES * includes all breaking changes from js-yaml v4 and readonly include options from js-yaml-schema. This is breaking because documents may parse differently, but the API of this library has not changed. ### Features * **build:** enable terser ([6413dde](https://github.com/ssube/cautious-journey/commit/6413dde2568e82153c58d082b458053f1cffad70)) * add initial labels to project ([1f3cbac](https://github.com/ssube/cautious-journey/commit/1f3cbac59894241c30b6605c7b0b802643413cd8)) * **build:** add package binary, switch to cjs for cli ([71d534d](https://github.com/ssube/cautious-journey/commit/71d534d80f99cd4e7262cf770d4e2c5adff058dd)) * **build:** add vscode task to compile ([622617f](https://github.com/ssube/cautious-journey/commit/622617f76511af42e23912b006017975da42e28b)) * **config:** add project comment, state divider to config ([2feb5a3](https://github.com/ssube/cautious-journey/commit/2feb5a3c60867f01ec1793cc088264c28f50f96f)) * **config:** validate using json schema, compare issue labels for update ([272a566](https://github.com/ssube/cautious-journey/commit/272a566acb5cd19a11a1593b828e69163a39159a)) * **graph:** cluster flags ([97d2ec5](https://github.com/ssube/cautious-journey/commit/97d2ec5720e8f76871e66d0a4e6b076e06be4355)) * **main:** capture command as mode ([8dd63f7](https://github.com/ssube/cautious-journey/commit/8dd63f770a3a8f998ab5a0faf68ba5308d1228f2)) * **main:** get config name from args ([e6857d7](https://github.com/ssube/cautious-journey/commit/e6857d7c738b66ee402ddb0b7d7c90232b39a578)) * **main:** load config from hard-coded file ([63878d3](https://github.com/ssube/cautious-journey/commit/63878d37a927d01742ab8459a5f57f20b90d2484)) * **main:** seed random generator with project name ([50cf48f](https://github.com/ssube/cautious-journey/commit/50cf48fdcf0d2bad743479ac818c9dc6e5f8b888)) * **remote:** implement issue, label list methods for Gitlab ([9f85e22](https://github.com/ssube/cautious-journey/commit/9f85e22196b8a552dae3078579a0bf95a0a0feab)) * **remote:** implement issue, label update methods for gitlab, add dryrun support ([e3351fe](https://github.com/ssube/cautious-journey/commit/e3351fe344897909e71c6b7ac5ad6c6d2e352f4a)) * add graphviz output mode ([ddc1d6b](https://github.com/ssube/cautious-journey/commit/ddc1d6b9c89e744ceca17af322a9a3da1ce05e16)) * create remote via DI container ([a38c130](https://github.com/ssube/cautious-journey/commit/a38c130e7369ca3b9b5237d64b2c39d674bfb26d)) * **logger:** add bunyan without DI ([25b375d](https://github.com/ssube/cautious-journey/commit/25b375d6ac6f359da22f0f82e342b65d123fa377)) * **main:** add project option, use to filter project sync ([e4ab01a](https://github.com/ssube/cautious-journey/commit/e4ab01ad10ff6b13b5605fa9747affdbd2f24745)) * **main:** wire up sync command stubs ([d510a3a](https://github.com/ssube/cautious-journey/commit/d510a3afb3ec8c1111f5ee1d12734d78c9b160ca)) * **remote:** sketch out interface, stub github/gitlab remotes ([7af3f35](https://github.com/ssube/cautious-journey/commit/7af3f35baf4e0e51cbe19ece68c115c0cf58b623)) * **remote/github:** add dry run option ([4460c98](https://github.com/ssube/cautious-journey/commit/4460c98e9b53726716dd1ac4308cd801f7027fb8)) * **remote/github:** add token auth based on config ([d121275](https://github.com/ssube/cautious-journey/commit/d121275e11177ae610f5a67000ff1f33fe24d583)) * **remote/github:** implement label create, delete ([abd7ac5](https://github.com/ssube/cautious-journey/commit/abd7ac5295dcc5091175b9a3e6448375cd113ca7)) * **remote/github:** wire up auth, issue list ([903eba9](https://github.com/ssube/cautious-journey/commit/903eba9a0c52c78f38559367aeb01885fac73fdc)) * **remote/github:** wire up label list endpoint ([fa81e86](https://github.com/ssube/cautious-journey/commit/fa81e86084e2c08cb8a1fc11e4a76fd344867a7e)) * **resolve:** add checks for label rules to states logic ([8aaa397](https://github.com/ssube/cautious-journey/commit/8aaa3976d86dc0114245f03494bb93ebb593e957)) * **resolve:** adds missing tests for requires rule ([54c6f4a](https://github.com/ssube/cautious-journey/commit/54c6f4a6fc5dc6ce45c20d6965dba22a7d42375f)) * **resolve:** comment & formatting fixes ([32c3fa9](https://github.com/ssube/cautious-journey/commit/32c3fa9f59cfbb6763f19816715fc4342adf3a7d)) * **resolve:** implement flag rules for issue labels ([bba4f52](https://github.com/ssube/cautious-journey/commit/bba4f5206a1656e76be4f90455ecfc9376a4b21e)) * **resolve:** implement state becomes logic ([b18d6f3](https://github.com/ssube/cautious-journey/commit/b18d6f340e72f93c62e4f4c9a5d6b136e3048029)) * **resolve:** record label changes made during resolution ([9bd41aa](https://github.com/ssube/cautious-journey/commit/9bd41aacac7a3ab13f869fb233b645f9b4d613fa)) * **sync:** basic label sync logic ([28c9ee8](https://github.com/ssube/cautious-journey/commit/28c9ee8865cca81bc6dedb145eabb66e8dc07751)) * **sync:** check actual difference between labels ([d651c34](https://github.com/ssube/cautious-journey/commit/d651c347c515f0a1e2f1a3d58c3860b4bdec7433)) * **sync:** leave comment with changes ([8edcd03](https://github.com/ssube/cautious-journey/commit/8edcd03873ea1d9d02cb9137bc1cb6b9f9ac477d)) * **sync:** select label color from flag or state, value, and project ([365a23c](https://github.com/ssube/cautious-journey/commit/365a23c85c1418b27dc9641337136a086a7a9a19)) * **sync:** update label color, desc ([c7581df](https://github.com/ssube/cautious-journey/commit/c7581df13abd11a7163531673f423067113de5f5)) * **sync:** use config labels per project ([41be935](https://github.com/ssube/cautious-journey/commit/41be935a2f5d0188fade8dbe7385f53d031521ce)) * add issue, label sync stubs, remote options to config, flatten resolver inputs ([0d34158](https://github.com/ssube/cautious-journey/commit/0d341587e2d902d74d8344000dd80583021d43f7)) * add main function, arg parsing for CLI ([1f641fc](https://github.com/ssube/cautious-journey/commit/1f641fc7ada79a040a9f02235df8231929186f02)) * initial project structure from template ([3442b8f](https://github.com/ssube/cautious-journey/commit/3442b8f0527678ada73b61cbb2c8c28ba854fa61)) * sketch out config, label interfaces ([efb294e](https://github.com/ssube/cautious-journey/commit/efb294e1cc499c6d6521ea043cad21e10025fafa)) * support multiple projects in one config ([0edbdea](https://github.com/ssube/cautious-journey/commit/0edbdea7d1b032c7842adf1d7a3c639d6c197281)) * **test:** add example data-driven tests ([c5dc410](https://github.com/ssube/cautious-journey/commit/c5dc410dad14ba284a07e4f56759957961303ca2)) ### Bug Fixes * **build:** add cc config ([6cb6d18](https://github.com/ssube/cautious-journey/commit/6cb6d1894740e81f1447ab25359f72521921f8ae)) * **build:** build images from cached version ([579b66f](https://github.com/ssube/cautious-journey/commit/579b66f169f5aeae5b1c7d04f7460b1a6189437c)) * **build:** configure markdownlint ([6bf84c4](https://github.com/ssube/cautious-journey/commit/6bf84c47a9b2947ce59185fb1c392a21ed551578)) * **build:** copy template renovate config ([e623a28](https://github.com/ssube/cautious-journey/commit/e623a28fdbec8598503ca5a8172a633ceb2437d8)) * **build:** filter scripts, tests out of coverage report ([65cf8e7](https://github.com/ssube/cautious-journey/commit/65cf8e78d41956b30da210228b6d6bd35b7cdd52)) * **build:** install build deps ([fbd294d](https://github.com/ssube/cautious-journey/commit/fbd294d2c7f124d7f7d2446d9ffd0da9e95bec32)) * **build:** install packages from nexus ([544ff83](https://github.com/ssube/cautious-journey/commit/544ff8359f80eb21d0bbe58e6464ab556aaaf560)) * **build:** isolate rollup entrypoint ([4570a2c](https://github.com/ssube/cautious-journey/commit/4570a2c2c829ddd66f4134eb041613e2c9d3f979)) * **build:** publish to npm central ([51ba7ba](https://github.com/ssube/cautious-journey/commit/51ba7bae5222bf78f7b430bf0947cf4fdaf7adfa)) * **build:** remove lingering deploy jobs ([fe160fa](https://github.com/ssube/cautious-journey/commit/fe160fa53e2c8ec5bd1b89699d96d1e068bc6de3)) * **build:** remove tslint packages ([cd8d376](https://github.com/ssube/cautious-journey/commit/cd8d37691447e4d80a3ab248db44bfd12e0f942a)) * **build:** use library node as base image ([17eed58](https://github.com/ssube/cautious-journey/commit/17eed587a9ae5104ae21f753ed6313b2c5b5bcb2)) * reduce renovate noise, automerge test deps ([8dddf2e](https://github.com/ssube/cautious-journey/commit/8dddf2e5c1db777cc0de457c6a4b938828a1e6ba)) * **build:** include yargs in bundle ([4e83723](https://github.com/ssube/cautious-journey/commit/4e83723a2cfdd2709b47d7d658978b67ebdb7049)) * **build:** prepend index with hashbang ([fa573d2](https://github.com/ssube/cautious-journey/commit/fa573d25a0782f70717bf2a395f05789839d50e2)) * **build:** pull images from nexus ([50c6d4b](https://github.com/ssube/cautious-journey/commit/50c6d4b2fbcedd1ec098ead0de965a50858ed06b)) * **build:** update eslint for typescript-eslint 4 rules ([fb496f5](https://github.com/ssube/cautious-journey/commit/fb496f56f6487ea80f466ec39d5064fbe8bbd8af)) * **config:** describe CLI options ([5947139](https://github.com/ssube/cautious-journey/commit/59471392743683fabd0d41c0b1ce175621226b3b)) * **config:** group gitbeaker updates ([5dab083](https://github.com/ssube/cautious-journey/commit/5dab0837c028299cc458038e8c5766c26e547522)) * **config:** match command names and docs, cover parts of sync ([505636f](https://github.com/ssube/cautious-journey/commit/505636f3dc9ece69dc4e617506b727b199b4f67b)) * **config:** restore yargs exit behavior for now ([b3669da](https://github.com/ssube/cautious-journey/commit/b3669da93041f8788011173500088960373c090a)) * **config:** switch to js-config fully ([98391a9](https://github.com/ssube/cautious-journey/commit/98391a9a4774f491180f4fe0eeb89007ae771bf4)) * **config:** use extended schema with js-config ([512112f](https://github.com/ssube/cautious-journey/commit/512112f4fbadda8deb06cbf96673c80aa6a6a0f6)) * **config:** validate color values ([e6faf1a](https://github.com/ssube/cautious-journey/commit/e6faf1ac69ec3a4d89e23514779625e7000566d1)) * **config:** validate remote options ([3935172](https://github.com/ssube/cautious-journey/commit/39351721269517acc80b366c19bc9a8db58e3bf1)) * **config:** validate state changes ([9a69044](https://github.com/ssube/cautious-journey/commit/9a69044e1882c2d7dc04452125ff42b2cb04f721)) * **docs:** 22 typos ([ec1f336](https://github.com/ssube/cautious-journey/commit/ec1f3361cd358145aedb072132204224f338b2ca)) * **docs:** add checking out project ([2bdd9d4](https://github.com/ssube/cautious-journey/commit/2bdd9d4b616bc1b24db5be7fbe649b8146c98cac)) * **docs:** add codeclimate badge ([086307e](https://github.com/ssube/cautious-journey/commit/086307ee77590c1161504471fa97dbeb5e0deff8)) * **docs:** add developer guide with setup ([89325d8](https://github.com/ssube/cautious-journey/commit/89325d8ad2aec57c035a987d18ad8260083b4e2f)) * **docs:** add example config ([af41614](https://github.com/ssube/cautious-journey/commit/af416147b941ac5e07a4971147644de104593b53)) * **docs:** add merging changes to workflow.md ([76cd161](https://github.com/ssube/cautious-journey/commit/76cd16164a07fc477bc2ccf1af26e937ec44b9aa)) * **docs:** add readme, basic run targets ([5868383](https://github.com/ssube/cautious-journey/commit/586838360b81672ef92007947df986da4df37b4b)) * **docs:** add skeleton architecture doc ([a50f36b](https://github.com/ssube/cautious-journey/commit/a50f36b6c3f31d710a025bf2b26c9226a2119889)) * **docs:** begin fleshing out getting-started guide ([cbf5c51](https://github.com/ssube/cautious-journey/commit/cbf5c5195f3b7513df509fb753ac98b79f122845)) * **docs:** describe running, CLI options ([ceafdba](https://github.com/ssube/cautious-journey/commit/ceafdbab8a43ffae860ad381a4289f78b30e1db9)) * **docs:** describe state changes, values, and remote options ([432ef13](https://github.com/ssube/cautious-journey/commit/432ef13bb6c8880ce0303e050edcda82c2dbb4eb)) * **docs:** explain config structure, auth methods ([b7b3c5f](https://github.com/ssube/cautious-journey/commit/b7b3c5f00a2540eaf396a3179ee73ea7922f6e90)) * **docs:** generating and viewing graphs ([72f48af](https://github.com/ssube/cautious-journey/commit/72f48af1368ed321f749ab382e369de0200cea3b)) * **docs:** note gitlab support ([df3b1eb](https://github.com/ssube/cautious-journey/commit/df3b1eb5fbba14a8d2fa7d419b0c68a1a53c049d)) * **docs:** remove references to remote option ([1b9eccb](https://github.com/ssube/cautious-journey/commit/1b9eccbdf775cc557b9c553314eff96a21b6fa4f)) * **docs:** start workflow guide, add ToC to guides ([f00dcb9](https://github.com/ssube/cautious-journey/commit/f00dcb9ca7f8dde2e36f45addfb98377ff74ed75)) * **docs:** typo ([03f297d](https://github.com/ssube/cautious-journey/commit/03f297d8ab2b8f4671664238037536b63d9a7805)) * **docs:** update remote names for DI ([d78e5df](https://github.com/ssube/cautious-journey/commit/d78e5df26da9479571cd7368efd52818e63bcef9)) * **graph:** merge edges between the same pair of nodes ([80caa7a](https://github.com/ssube/cautious-journey/commit/80caa7a5792d7f6be3f241d1bd2eb51021c0ba71)) * **graph:** use label colors for nodes ([2eba08e](https://github.com/ssube/cautious-journey/commit/2eba08e11b4ef290aa7dce38bf7cbf77f2a93baf)) * **main:** log env and version on startup ([c1394f3](https://github.com/ssube/cautious-journey/commit/c1394f307f472284921f1b5c3ae45be963e1ac06)) * **remote:** usage of internal gitbeaker types ([1e2b2a0](https://github.com/ssube/cautious-journey/commit/1e2b2a093bd7a1152cebd6cb9745f26d76be3423)) * use commonjs version of yargs to detect named exports ([2411adf](https://github.com/ssube/cautious-journey/commit/2411adf90b3f3ff289037856b86820de957d66b1)) * **build:** install deps into image ([d2c8ecf](https://github.com/ssube/cautious-journey/commit/d2c8ecfabed666483532bb0943f09f2287368f25)) * **docs:** add logo to readme ([07e97e8](https://github.com/ssube/cautious-journey/commit/07e97e8fe1e38f973c4d012bb0d85360e5833244)) * **docs:** add test coverage to workflow.md ([52b225c](https://github.com/ssube/cautious-journey/commit/52b225c511425d3dedd62b0936f8bd6577c6265a)) * **docs:** replace broken david-dm, fossa badges ([d0fb19f](https://github.com/ssube/cautious-journey/commit/d0fb19f8aaa4264ce9eda7d5ed1d3cc9113ce228)) * **labels:** copy before priority sort ([20d1175](https://github.com/ssube/cautious-journey/commit/20d11756ca3c07d03ceafe234d19ce3473c04e88)) * **remote:** return created comment for gitlab, cover remaining endpoints ([040ad3c](https://github.com/ssube/cautious-journey/commit/040ad3c5005082a068d502678faaebd35853a377)) * **remote/github:** do not create octokit client for dry run ([b1adb11](https://github.com/ssube/cautious-journey/commit/b1adb116c68cb0e92a2c00c24d9173d8df677ebb)) * **remote/github:** selectively disable requests for dry run ([b562f80](https://github.com/ssube/cautious-journey/commit/b562f803cd2387b4b643c6cfc13de738cb780afe)) * **remote/github:** use data type for auth method ([39a7091](https://github.com/ssube/cautious-journey/commit/39a7091ac3806b5be3740439dff454657ae9f37f)) * **resolve:** check combined state/value rules ([06cb70d](https://github.com/ssube/cautious-journey/commit/06cb70d5a142454008ffa12412a0bb15d0d0b382)) * **resolve:** continue handling state values after removal ([3a3facb](https://github.com/ssube/cautious-journey/commit/3a3facb282496c58c2db251dd3a5e8dac6789d98)) * **resolve:** moves labels rule check to broader scope ([65b0de5](https://github.com/ssube/cautious-journey/commit/65b0de5cee0f02fed1e3d607cb32adc05d0b150b)) * **resolve:** record correct name when becomes rule removes label ([0cd176d](https://github.com/ssube/cautious-journey/commit/0cd176d789f66c9561c56f75352558d6f93b7492)) * **resolve:** resolve branch conflicts ([445a0ab](https://github.com/ssube/cautious-journey/commit/445a0abc9781be703e788db2a3788c7b52571281)) * **resolve:** sort output labels ([1ddb341](https://github.com/ssube/cautious-journey/commit/1ddb3411108fb93abe596b8dfecf830950b8f5e5)) * **resolve:** split up the resolve labels ([804c3bb](https://github.com/ssube/cautious-journey/commit/804c3bb13365d7be71c0c1c17dd96dc72aab13cb)) * **sync:** handle negative random indices ([686cb83](https://github.com/ssube/cautious-journey/commit/686cb834bc5c5b9a588e1723ca9352c83cd740ed)) * **sync:** wire up basic issue logic ([b2fac34](https://github.com/ssube/cautious-journey/commit/b2fac3494b55652c720ad1955a11433e07f7794f)) * **test:** add cases for state changes ([2e816f7](https://github.com/ssube/cautious-journey/commit/2e816f7c750c97d7830888d6d65b58d1b4067a25)) * **test:** begin covering github auth ([c16c10e](https://github.com/ssube/cautious-journey/commit/c16c10e140ac467bc85df5fec8bac60b09a5b161)) * **test:** begin covering main ([9364266](https://github.com/ssube/cautious-journey/commit/9364266c86e994e3eeafb91b8a6967339554135b)) * **test:** cover config loading, graph styles ([0ea5791](https://github.com/ssube/cautious-journey/commit/0ea5791a8f9d67e2d82e24b68b27938112e90c02)) * **test:** cover config validation, more github endpoints ([4fea5c8](https://github.com/ssube/cautious-journey/commit/4fea5c8b949a591e774b2a6f3e1b2669f47a1dd5)) * **test:** cover dependent flags ([0735bf3](https://github.com/ssube/cautious-journey/commit/0735bf3a50368800fd6152771eda13c82dd6c668)) * **test:** cover dot graph helpers ([ccb4a7c](https://github.com/ssube/cautious-journey/commit/ccb4a7cfcb12b3c816121eb4be507cc4d6a42318)) * **test:** cover label color selection and update ([6229e2b](https://github.com/ssube/cautious-journey/commit/6229e2b46f9eb5b2c2bfdac76fe7bcd40a4a4308)) * **test:** cover merge edges helper ([6ce4ca0](https://github.com/ssube/cautious-journey/commit/6ce4ca09b49797d5f59136bddd6b645fc35d91f2)) * **test:** cover more remote endpoints ([9e769e3](https://github.com/ssube/cautious-journey/commit/9e769e33552843ffb692b496a754c15b69ef2085)) * **test:** cover state subgraph ([12144ca](https://github.com/ssube/cautious-journey/commit/12144cae49d7d58287bc48a5bb1e68e47dd53570)) * **test:** cover subgraphs ([d0f3452](https://github.com/ssube/cautious-journey/commit/d0f34521f0551743180a89eb0c2c69fadecc8805)) * **test:** use container for remotes ([545e5b9](https://github.com/ssube/cautious-journey/commit/545e5b979d354f794c371bd656ba72fa062ed0ae)) * remote ctor takes options, stub tests for main ([c2d54aa](https://github.com/ssube/cautious-journey/commit/c2d54aa195d477f7005ee58979c0d1b0074bb240)) * remove changeset trait from state label, test colorize logic ([4aeb324](https://github.com/ssube/cautious-journey/commit/4aeb3243f7ccb026cf78027d90fa90a925e8156e)) ### update * js-yaml and js-yaml-schema ([c2dbfff](https://github.com/ssube/cautious-journey/commit/c2dbfff72b6777d43ac85e87a6db074e4910cd66))