giget icon indicating copy to clipboard operation
giget copied to clipboard

Unable to fetch private Bitbucket repository

Open Jactami opened this issue 2 years ago • 5 comments

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:

  • .env-file:
GIGET_AUTH=XXXXXXXXXXXXXXXX`
  • nuxt.config.ts:
export default defineNuxtConfig({
 extends: [
   'bitbucket:user_name/project_name#branch_name', 
 ],
 // ...
})



Internally unjs/giget converts this to https://bitbucket.org/user_name/project_name/get/branch_name.tar.gz. If I try to execute this with npx, the fetch fails:

npx giget@latest https://bitbucket.org/user_name/project_name/get/branch_name.tar.gz --auth XXXXXXXXXXXXXXXX

In my opionion something like https://api.bitbucket.org/2.0/repositories/user_name/project_name/src/branch_name/ would be more correct.

I found an issue for private Github repos which seems pretty similar to my problem. The issue was fixed but is not published yet. Someone also already addressed the problem with private Bitbucket repositories. However the response was insufficient to me.

Am I missing something? Is this a known bug? If so, will it be fixed in a future release? Any help is appreciated.

Additional context

No response

Logs

No response

Jactami avatar Aug 31 '23 14:08 Jactami

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?

Vanger888 avatar Oct 27 '23 19:10 Vanger888

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

rtrap-rsi avatar Mar 08 '24 08:03 rtrap-rsi

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 :|

Tarabass avatar Mar 11 '24 08:03 Tarabass

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.

rtrap-rsi avatar Mar 11 '24 08:03 rtrap-rsi

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'
    ]
  ]
  ...
})

Tarabass avatar Mar 11 '24 08:03 Tarabass