We need to integrate the project management tool Linear into our application to allow users to sync issues seamlessly between Linear and GitHub. This involves updating the settings page to enable users to connect their Linear accounts and manage issue synchronization.
Requirements
Add 'Connect to Linear' Button
On the settings page, add a button labeled "Connect to Linear".
This button should initiate the OAuth flow for Linear authentication.
Implement OAuth Flow with Linear
When the user clicks the "Connect to Linear" button, start the Linear OAuth authentication process.
Obtain the access token, refresh token, and expiration dates upon successful authentication.
Ensure secure storage and management of these tokens, including handling token refreshes as needed.
Redirect Back to Settings Page
After successful authentication, redirect the user back to the settings page.
Display a confirmation message indicating that the Linear account has been connected.
Allow Project and Board Selection
Provide an interface on the settings page for the user to select a Linear project from their account.
Once a project is selected, enable the user to choose a board within that project.
Ensure that the list of projects and boards is fetched dynamically from the user's Linear account.
Add 'Sync Issues' Button
After selecting a project and board, display a button labeled "Sync Issues".
When clicked, this button should manually trigger synchronization of issues from the selected Linear board to GitHub.
Implement Automated Issue Synchronization
Develop a feature that checks for new issues on the connected Linear board every hour on the hour.
Automatically create corresponding GitHub issues for any new Linear issues found.
Ensure that issues are appropriately mapped and that duplicates are not created.
Use Existing Workflow as Inspiration
Refer to the existing workflow for Dero as inspiration for this integration.
Adapt similar patterns and code structures where applicable to maintain consistency.
Expected Outcome
Users can connect their Linear accounts through the settings page using OAuth authentication.
Users can select a Linear project and board after authentication.
Issues from the selected Linear board can be synchronized to GitHub manually and automatically.
New issues created in Linear are automatically added as GitHub issues every hour, allowing Jacob to work on them.
The integration follows similar patterns to the existing workflow for Jira, ensuring consistency across the application.
Description
We need to integrate the project management tool Linear into our application to allow users to sync issues seamlessly between Linear and GitHub. This involves updating the settings page to enable users to connect their Linear accounts and manage issue synchronization.
Requirements
Add 'Connect to Linear' Button
Implement OAuth Flow with Linear
Redirect Back to Settings Page
Allow Project and Board Selection
Add 'Sync Issues' Button
Implement Automated Issue Synchronization
Use Existing Workflow as Inspiration
Expected Outcome