Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Chrome Extension to Generate and Commit Devcontainer Files from GitHub Repositories #17

Open
nkkko opened this issue Sep 26, 2024 · 2 comments

Comments

@nkkko
Copy link
Member

nkkko commented Sep 26, 2024

Is your feature request related to a problem? Please describe.
Users often need a quick way to generate and commit a devcontainer.json file directly from a GitHub repository's interface. Manually generating and committing the file involves multiple steps and can be cumbersome.

Describe the solution you'd like

  • Develop a Chrome extension that integrates with the GitHub interface.
  • When the user is on a GitHub repository page, the extension should display a button.
  • Upon clicking the button, the extension will:
    1. Check if the user is authenticated with GitHub through the extension.
    2. If authenticated, generate a devcontainer.json file and create a pull request (PR) committing it to the repository.
    3. If not authenticated, allow the user to download the generated devcontainer.json as a raw file.

Describe alternatives you've considered

  • Providing a CLI tool for similar functionality, but this would not be as seamless or integrated as a browser extension.
  • Using a web-based service where users can enter repository URLs manually, but this adds steps and reduces convenience.

Additional context

  1. Chrome Extension Development:

    • Use the Chrome Extensions API to create the extension.
    • Implement content scripts to detect when the user is on a GitHub repository page.
  2. Authentication:

    • Use GitHub OAuth to handle authentication within the extension.
    • Store the authentication token securely and use it for API calls.
  3. GitHub API Integration:

    • Make API calls to generate the devcontainer.json and create a PR using the authenticated user's credentials.
    • If the user is not authenticated, fetch the devcontainer.json and allow them to download it.
  4. UI/UX:

    • Design a user-friendly button that appears on GitHub repository pages.
    • Provide clear feedback and instructions based on the user's authentication status.
  5. Dependencies:

    • Ensure the feature depends on the backend capability to fetch the generated devcontainer.json via URL hash.

Example Flow:

  • User visits a GitHub repository page.
  • Extension displays a "Generate Devcontainer" button.
  • On click, extension checks if the user is authenticated.
    • If yes, generate and commit the devcontainer.json via PR.
    • If no, provide the devcontainer.json file for download.
@nkkko
Copy link
Member Author

nkkko commented Oct 9, 2024

/bounty $50

Copy link

algora-pbc bot commented Oct 9, 2024

💎 $50 bounty • Daytona

Steps to solve:

  1. Start working: Comment /attempt #17 with your implementation plan
  2. Submit work: Create a pull request including /claim #17 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

If no one is assigned to the issue, feel free to tackle it, without confirmation from us, after registering your attempt. In the event that multiple PRs are made from different people, we will generally accept those with the cleanest code.

Please respect others by working on PRs that you are allowed to submit attempts to.

e.g. If you reached the limit of active attempts, please wait for the ability to do so before submitting a new PR.

If you can not submit an attempt, you will not receive your payout.

Thank you for contributing to daytonaio/devcontainer-generator!

Add a bountyShare on socials

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant