{"id":13603057,"url":"https://github.com/bitcrowd/tickety-tick","last_synced_at":"2025-04-11T13:32:38.534Z","repository":{"id":27005388,"uuid":"30469458","full_name":"bitcrowd/tickety-tick","owner":"bitcrowd","description":"A browser extension that helps you name branches and write better commit messages","archived":false,"fork":false,"pushed_at":"2025-02-18T00:36:40.000Z","size":7896,"stargazers_count":58,"open_issues_count":9,"forks_count":12,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-03T05:07:12.363Z","etag":null,"topics":["browser","chrome-extension","firefox-extension","git","github","gitlab","jira","notion","safari-extension","trello","webextension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"spatie/url","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitcrowd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-07T20:40:00.000Z","updated_at":"2025-02-03T12:05:57.000Z","dependencies_parsed_at":"2023-02-18T05:46:12.976Z","dependency_job_id":"4da99e82-71ba-49d1-8e27-eba7d107440f","html_url":"https://github.com/bitcrowd/tickety-tick","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcrowd%2Ftickety-tick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcrowd%2Ftickety-tick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcrowd%2Ftickety-tick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcrowd%2Ftickety-tick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitcrowd","download_url":"https://codeload.github.com/bitcrowd/tickety-tick/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248409832,"owners_count":21098770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","chrome-extension","firefox-extension","git","github","gitlab","jira","notion","safari-extension","trello","webextension"],"created_at":"2024-08-01T18:01:47.835Z","updated_at":"2025-04-11T13:32:38.522Z","avatar_url":"https://github.com/bitcrowd.png","language":"TypeScript","readme":"# ![ticket icon](./src/icons/icon-32.png) Tickety-Tick\n\n[![Build Status](https://circleci.com/gh/bitcrowd/tickety-tick.svg?style=svg)](https://circleci.com/gh/bitcrowd/tickety-tick)\n\n\u003e #### How do you name this branch? What is the message for that commit?\n\u003e\n\u003e A browser extension to generate these for you, based on the ticket you're working on.\n\n![Tickety-Tick's user interface](./screenshots/interface.png)\n\nAt [bitcrowd](https://bitcrowd.net/) we love conventions. One of them is how we name branches and commits. This makes it easy to relate a particular branch or commit to a certain ticket.\n\n**Branches** follow the format `type/id-title` by default, where:\n\n- `type` is usually one of:\n  - `feature` (default)\n  - `bug`\n  - `chore`\n  - …\n- `id` is the identifier of the ticket in your ticketing system\n- `title` is a lowercase, dasherized version of the ticket title\n\n**Commits** contain `[#id] title` by default.\n\nAdditionally, Tickety-Tick generates [**commands**](#generated-commands) to set up a branch with the proper name and to prepare the commit message for your source code management tool. Out of the box, it is set up to work with Git.\n\nIf you need your commit messages, branch names or commands to look different, you can [configure](#advanced-configuration) Tickety-Tick to use a custom format.\n\n## Demo\n\nHere is a short example for how a possible workflow with Tickety-Tick could look like:\n\nhttps://user-images.githubusercontent.com/3491815/165905554-5162a625-f2bd-4ea1-9bcd-5d712e31e33e.mp4\n\n## Supported ticket systems\n\nTickety-Tick helps you create branches and commits for a few ticket systems.\n\nCurrently, we support:\n\n- [GitHub](https://github.com/)\n- [GitLab](https://gitlab.com/)\n- [Jira](https://www.atlassian.com/software/jira)\n- [Linear](https://linear.app)\n- [Notion](https://www.notion.so/)\n- [Plane](https://plane.so/)\n- [Tara](https://app.tara.ai/)\n- [Trello](https://trello.com/)\n- [YouTrack](https://www.jetbrains.com/youtrack/)\n\nYour ticket system is missing? Go ahead and implement an adapter for it! We are always happy about contributions and here to support you 👋.\n\n## Installation\n\nTickety-Tick is available for every major browser:\n\n- [Chrome/Chromium](https://chrome.google.com/webstore/detail/ciakolhgmfijpjbpcofoalfjiladihbg)\n- [Firefox](https://addons.mozilla.org/firefox/addon/tickety-tick/)\n- [Opera](https://chrome.google.com/webstore/detail/ciakolhgmfijpjbpcofoalfjiladihbg)\n- [Safari](./SAFARI.md) - experimental 🧪\n\n### Manual Installation\n\nManually install the extension if you want to use an older version or a beta version.\n\n\u003cdetails\u003e\n\u003csummary\u003eClick here for instructions\u003c/summary\u003e\n\n#### Chrome\n\nDownload and unpack a `chrome.zip` file from the [releases](https://github.com/bitcrowd/tickety-tick/releases). Then navigate to the [chrome://extensions](//chrome://extensions) page, enable \"Developer mode\", press \"Load unpacked extension\" and point to the unpacked folder.\n\n#### Firefox\n\nDownload a `tickety_tick-\u003cversion\u003e.xpi` file from the [releases](https://github.com/bitcrowd/tickety-tick/releases) and open it in Firefox.\n\n#### Opera\n\nDownload and unpack a `chrome.zip` file from the [releases](https://github.com/bitcrowd/tickety-tick/releases). Then navigate to the [opera:extensions](opera:extensions) page, enable \"Developer mode\", press \"Load unpacked extension\" and point to the unpacked folder.\n\n\u003c/details\u003e\n\n## Keyboard Shortcuts\n\n| Shortcut                       | Description                       |\n| ------------------------------ | --------------------------------- |\n| \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003et\u003c/kbd\u003e | Open the extension's popup dialog |\n\n## Building\n\nIn order to build the extension from source, run:\n\n```shell\nyarn install\nyarn build\n```\n\nTo build an [un-optimized version for development or debugging](https://webpack.js.org/configuration/mode/), use:\n\n```shell\nyarn build --mode=development\n```\n\nTo only build for a specific browser, use:\n\n```shell\nyarn build:chrome\nyarn build:firefox\n```\n\n## Installing a custom-built version\n\n### Chrome\n\nNavigate to the [chrome://extensions](//chrome://extensions) page, enable \"Developer mode\" and press \"Load unpacked extension\". Point it to the `dist/chrome` directory. Done.\n\n### Firefox\n\nIf you just want to try out and debug the extension, go to [about:debugging#addons](//about:debugging#addons). Then press \"Load Temporary Add-On\" and select the built `manifest.json` from the `dist/firefox` extension directory.\n\n### Opera\n\nNavigate to the [opera://extensions](//opera://extensions) page, enable \"Developer mode\" and press \"Load unpacked extension\". Point it to the `dist/chrome` directory. Done.\n\n## Development\n\n### Developing Tickety-Tick\n\nFor development use `yarn watch:[browser]`. This will watch the files and rebuild the extension whenever source files change.\n\nTo test-drive a development version, you can use:\n\n```shell\nyarn open:chrome\nyarn open:firefox\n```\n\nYou can run both `watch:[browser]` and `open:[browser]` scripts in parallel to automatically rebuild and reload the extension as you make changes.\n\n#### Tips \u0026 Tricks 🎩\n\n- Debugging\n  - Firefox: use the developer tools to [debug the extension](https://extensionworkshop.com/documentation/develop/debugging/)\n  - Chrome: right-click `inspect` on the popup or the settings page to open a separate debugger\n\n### Running automated checks\n\nTo execute the automated source code checks, run:\n\n```shell\nyarn checks\n```\n\nOr, to run checks individually:\n\n```shell\nyarn stylelint\nyarn lint\nyarn test\n```\n\nHint: You can append `--watch` and other options supported by [Jest](https://jestjs.io/docs/en/cli) to the test command, e.g.:\n\n```shell\nyarn test --watch\n```\n\nThe lint commands accept options supported by [ESLint](https://eslint.org/docs/user-guide/command-line-interface) and [stylelint](https://stylelint.io/user-guide/usage/options), e.g.:\n\n```shell\nyarn lint --fix\nyarn stylelint --fix\n```\n\n### Generating coverage reports\n\nIn order to generate code coverage reports locally, just run:\n\n```shell\nyarn test --coverage\n```\n\nTo view an HTML version of the report:\n\n```shell\nopen coverage/lcov-report/index.html\n```\n\n### Releasing a new version\n\nOptionally check the extension configuration first _(a bug in Chrome [this issue](https://github.com/mozilla/web-ext/issues/3213) currently causes an error)_:\n\n```shell\nyarn lint:ext\n```\n\nPrepare the release by bumping the version and submitting the change as a pull request:\n\n```shell\nyarn prepare-release\n```\n\nOnce the version change is on the `main` branch, you can trigger the release process:\n\n```shell\nyarn release\n```\n\nYou will be prompted for Mozilla Add-Ons and Chrome Web Store API credentials. Alternatively, if you have [1Password CLI](https://1password.com/downloads/command-line/) installed and access to the `Tickety-Tick` vault, it will only ask you for access there.\n\n## Insights\n\n### Generated commands\n\nAs mentioned earlier, in addition to branch names and commit messages, Tickety-Tick generates commands to set up a branch with the proper name and to prepare the commit message.\n\nBy default, the code generated for copying will look like this:\n\n```shell\ngit checkout -b BRANCH-NAME \u0026\u0026 git commit --allow-empty -m COMMIT-MESSAGE\n```\n\nThese default generated commands make a few assumptions:\n\n1. _You're using Git (obviously)._\n\n   The branch names and commit messages Tickety-Tick generates may work with other version control systems, but the commands generated for copying specifically include Git.\n\n1. _You squash commits from feature branches (or you're okay with empty commits)._\n\n   When you work with feature branches and you squash them before merging, Git (and GitHub) allow you to combine the messages of the feature-branch commits. The empty commit provides a simple mechanism for storing the commit message title generated by Tickety-Tick when setting up the branch.\n\nThis approach works nicely with our Git workflow, for which the above assumptions are true. Yours may be different though, in which case you might want to [configure](#advanced-configuration) Tickety-Tick differently.\n\n### Advanced configuration\n\nIf you have different conventions regarding commit messages, branch names or you're just using a different source code management tool, Tickety-Tick allows you to customize the output format for all of these.\n\nYou can access the preferences page via the \"Settings\" link in the Tickety-Tick popup.\n\n![Firefox preferences](./screenshots/firefox-preferences.png)\n\n### Auto-formatting of commit messages\n\nTickety-Tick supports formatting generated commit messages according to [these recommendations](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) by [Tim Pope](https://github.com/tpope/). If you do not want this, you can disable this feature in the extension preferences (see above).\n","funding_links":[],"categories":["chrome-extension"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcrowd%2Ftickety-tick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitcrowd%2Ftickety-tick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitcrowd%2Ftickety-tick/lists"}