{"id":19691992,"url":"https://github.com/chrisyarbrough/codecksplasticintegration","last_synced_at":"2025-04-29T09:31:19.367Z","repository":{"id":154121812,"uuid":"455984916","full_name":"chrisyarbrough/CodecksPlasticIntegration","owner":"chrisyarbrough","description":"PlasticSCM/Unity DevOps extension to use the Codecks issue tracker","archived":false,"fork":false,"pushed_at":"2024-12-27T18:58:29.000Z","size":949,"stargazers_count":14,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T14:41:54.918Z","etag":null,"topics":["csharp","devops","game-development","gamedev","issue-tracker","plasticscm","unity","version-control"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisyarbrough.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-02-05T21:02:39.000Z","updated_at":"2025-02-09T20:01:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"e17ade11-dc5d-4209-b5e3-c53aa68a1c8d","html_url":"https://github.com/chrisyarbrough/CodecksPlasticIntegration","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyarbrough%2FCodecksPlasticIntegration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyarbrough%2FCodecksPlasticIntegration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyarbrough%2FCodecksPlasticIntegration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyarbrough%2FCodecksPlasticIntegration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyarbrough","download_url":"https://codeload.github.com/chrisyarbrough/CodecksPlasticIntegration/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251473250,"owners_count":21595027,"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":["csharp","devops","game-development","gamedev","issue-tracker","plasticscm","unity","version-control"],"created_at":"2024-11-11T19:12:02.542Z","updated_at":"2025-04-29T09:31:19.356Z","avatar_url":"https://github.com/chrisyarbrough.png","language":"C#","readme":"# Codecks Integration for PlasticSCM / Unity DevOps #\n\n![](Images/ExtensionPreview.png \"Extension Preview\")\n\nAdds support for the [Codecks](https://www.codecks.io/) issue tracker to [PlasticSCM](https://www.plasticscm.com/).\n\n- Create new branch from task (Codecks card)\n- Mark card as started when branch is created\n- Branch prefix is configurable in the extension settings\n- Open task externally (on Codecks website)\n\n\u003e _PlasticSCM_ was acquired by Unity in 2020 and is now called _Unity DevOps Version Control_.\n\u003e The features, including this extension, work mostly the same though.\n\nFor details about what a task and issue tracking extension can do, see\nthis [guide](https://docs.plasticscm.com/extensions/plastic-scm-version-control-task-and-issue-tracking-guide).\n\n## Getting Started - User Setup\n\n1) Install Unity DevOps Version Control (PlasticSCM).\n   The client can be downloaded [here](https://www.plasticscm.com/download).\n\n2) [Download](https://github.com/chrisyarbrough/CodecksPlasticIntegration/releases)\n   or build the CodecksExtension library (zip file with DLLs).\n\n3) Place the `codecks` folder (containing the plugin and its dependencies)\n   in the extensions directory of the PlasticSCM installation.\n   With the default installation, the path should look like this:\n\t- Windows: `C:\\Program Files\\PlasticSCM5\\client\\extensions\\codecks\\CodecksExtension.dll`\n\t- macOS: `/Applications/PlasticSCM.app/Contents/extensions/codecks/CodecksExtension.dll`\n\n   ![](Images/PlasticSCM_Configuration.png \"PlasticSCM Preferences Window\")\n\n4) Find the file `customextensions.conf`:\n\t- Windows: `C:\\Program Files\\PlasticSCM5\\client\\customextensions.conf`\n\t- macOS: `/Applications/PlasticSCM.app/Contents/MacOS/customextensions.conf`\n\n   Add the following line to the file:\n   \u003e Codecks=extensions/codecks/CodecksExtension.dll\n\n   You may need admin permissions to edit this file.\n\n5) Open the preferences in the PlasticSCM GUI and configure the Codecks extension with your personal settings.\n\n   ![](Images/PlasticSCM_Preferences.png \"PlasticSCM Preferences Window\")\n\n   Note that 'Account Name' is the subdomain of your organization used for the Codecks web frontend.\n\n   | Property       | Required | Description                                                                                                              |\n      |----------------|----------|--------------------------------------------------------------------------------------------------------------------------|\n   | E-Mail         | yes      | The mail of your Codecks user.                                                                                           |\n   | Password       | yes      | The password for the Codecks user. Used to fetch an authentication token.                                                |\n   | Branch Prefix  |          | When creating a branch from a task, the Codecks card id is always included. Use this property to add an optional prefix. |\n   | Account Name   | yes      | The subdomain of your Codecks organization.                                                                              |\n   | Project Filter |          | The name of a Codecks project to use as a filter or empty if all projects should be considered.                          |\n   | Deck Filter    |          | The title of a deck to use as a filter or empty if all decks should be considered.                                       |\n\n## Query Editing (Advanced)\n\nIn the Codecks extension directory, there's directory with json queries.\nThese queries are used to fetch cards from the Codecks API.\nIn case the API changes before this extension is updates, or if you have special requirements,\nyou might be able to adjust these queries for your use-case.\n\n---\n\n## Developer Setup\n\n### Building from Source\n\n**Prerequisites**\n\n- .NET 7.0 SDK\n- PlasticSCM (tested with 11.0.16.9080)\n\nOf course the plugin should work in other (if not all) versions of PlasticSCM, but this specific one is known to work.\n\nThe codecks extension depends on libraries provided by the PlasticSCM host, see the _Libraries_ directory.\n\nThe project solution includes a \"Start Host\" configuration which builds the extension and copies it directly to\nthe default PlasticSCM installation path and also launches the GUI client for interactive testing and debugging.\n\nTo allow this on your machine, either set the permissions of the\nPlasticSCM/extensions/codecks directory to allow writing.\nOr start your IDE with elevated privileges.\n(at your own risk)\n\nFor example on macOS:\n\n```zsh\nEXT_DIR=/Applications/PlasticSCM.app/Contents/extensions/codecks/\nsudo mkdir -p $EXT_DIR\nsudo chown -R username $EXT_DIR\n```\n\nOn macOS, you might also need to go to Settings -\u003e Privacy \u0026 Security -\u003e App Management -\u003e Allow your IDE to update\nother applications\n\nOn Windows, right-click the folder, select _properties_ and allow 'write' permissions for your user.\n\n## Testing\n\nTo run the regular unit tests:\n\n```bash\ndotnet test\n```\n\nTo run the (end-to-end) _CodecksServiceTests_ configure your dotnet user secrets like so:\n\n```bash\ndotnet user-secrets set \u003ckey\u003e \u003cvalue\u003e\n```\n\n| Key              | Value Description                                                   |\n|------------------|---------------------------------------------------------------------|\n| Codecks:Email    | Email address of your Codecks account.                              |\n| Codecks:Password | Password associated with the Codecks email.                         |\n| Codecks:Account  | Account name of your Codecks organization (not your personal name). |\n\n### Change Output Directory\n\nIf your PlasticSCM client is installed in a different location,\ncreate the file `User.Build.props` next to the CodecksExtension.csproj file.\nThen add this content with your custom path:\n\n```xml\n\n\u003cProject\u003e\n\t\u003cPropertyGroup\u003e\n\t\t\u003cMacOutputPath\u003e/Applications/PlasticSCM.app/Contents/extensions/codecks/\u003c/MacOutputPath\u003e\n\t\t\u003cWindowsOutputPath\u003eC:\\Program Files\\PlasticSCM5\\client\\extensions\\codecks\\\u003c/WindowsOutputPath\u003e\n\t\u003c/PropertyGroup\u003e\n\u003c/Project\u003e\n```\n\nThis file is ignored by git.\n\n## Additional Resources\n\nThe process for developing and configuring PlasticSCM extensions is documented\n[here](https://www.plasticscm.com/documentation/extensions/plastic-scm-version-control-task-and-issue-tracking-guide#WritingPlasticSCMcustomextensions).\n\nCodecks provides the [web API](https://manual.codecks.io/api/)\nwhich is used by the extension to fetch task information and post status updates.\nAs of August 2023, the API is still in beta, but it has been very stable since 2022.\n\n## Contributing\n\nIf you'd like to contribute or have any trouble using the extension, open a new issue to discuss it.\nIf you already have a working fix in place, please open a Pull Request, thank you!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisyarbrough%2Fcodecksplasticintegration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisyarbrough%2Fcodecksplasticintegration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisyarbrough%2Fcodecksplasticintegration/lists"}