unjs / giget

✨ Download templates and git repositories with pleasure!
MIT License
446 stars 37 forks source link

Unable to fetch private Bitbucket repository #104

Open Jactami opened 1 year ago

Jactami commented 1 year ago

Environment

Node: v18.15.0 Nuxt: v3.7.0

Reproduction

Using nuxt:

  1. Create a private Bitbucket repository
  2. Initialize a new nuxt project
  3. Extend your project with the Bitbucket repository (see code below)

Using pure giget:

  1. Create a private Bitbucket repository
  2. Try to fetch the private repository

Either way the fetch will fail

Describe the bug

I am working on a Nuxt Layers project. Nuxt uses uses unjs/giget internally to fetch remote git repositories, but is unable to fetch private Bitbucket repositories. I already raised an issue at the Nuxt repository, but was forwarded to create an issue here.

nuxt setup:

Additional context

No response

Logs

No response

Vanger888 commented 10 months ago

I faced the same issue. Fetch error when try to extend Nuxt layer from private bitbucket repository. image

  extends: [
    ['bitbucket:{username}/{repository}#{branchName}',
      { giget: { auth: {validAcceccToken}} },
    ],
  ],

Found this in bitbucket community. Looks like they do not support yet to download archive via repository access tokens.

https://community.atlassian.com/t5/Bitbucket-questions/Bitbucket-API-Get-file-with-access-token/qaq-p/2252581

https://jira.atlassian.com/browse/BCLOUD-22436

Maybe there is some another workaround?

rtrap-rsi commented 6 months ago

Hello everybody, have someone found a solution/workaround for this problem?

Tarabass commented 6 months ago

I'm curious as well. We are in the Atlassian eco system and we are migrating to Nuxt 3. Not being able to extend from bitbucket private repo's is pretty much a show stopper for us :|

rtrap-rsi commented 6 months ago

For the moment I just clone the private repo locally and reference this in the extend config. Same for CI, a script do the same thing.

Tarabass commented 6 months ago

Sounds great. Our first solution was to go back to external libraries like you do with component libraries, but this doesn't feel good and is not future proof in a way that when it gets possible to extend from private bitbucket repo's.

How do you config this in nuxt config? In theory, I think extend can be overwritten in $development and $production. So this could work?

export default defineNuxtConfig({
  extends: [
    '@nuxt/examples-ui',
    './ui',
    './base'
  ],
  $production: {
    extends: [
      'repo/in/server/folder'
    ]
  },
  $development: [
    extends: [
      'repo/in/local/folder'
    ]
  ]
  ...
})