Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,299,117
Community Members
 
Community Events
165
Community Groups

Cannot put aar to remote repository maven-publish

Edited
Joe I'm New Here Jun 14, 2022

I have try to publish AAR to a private remote repo [Bitbucket] with publish task, but keep getting 403 Forbidden, even though I set all the required credentials

- I'm making sure that credentials have a right permission to push

publishing {
    publications {
        release(MavenPublication) {
            groupId = LIBRARY_PACKAGE
            artifactId = LIBRARY_NAME
            version = LIBRARY_VERSION

            afterEvaluate {
                from components.release
            }
        }
    }

    repositories {
        maven {
            credentials {
                username = "xxxx"
                password = "xxxx"
            }

            name = "7-map-android"
            url = "https://api.bitbucket.org/2.0/repositories/{$OWNER_NAME}/{$REPO_NAME}/src/releases"
        }
    }
}

 

execute task:
./gradlew :module:publish
error:
* What went wrong:
Execution failed for task ':map:publishReleasePublicationTo7-map-androidRepository'.
> Failed to publish publication 'release' to repository '7-map-android'
   > Could not PUT 'https://api.bitbucket.org/2.0/repositories/{$OWNER_NAME}/{$REPO_NAME}/src/releases/net/appsynth/seven/map/0.6.0/map-0.6.0.aar'. Received status code 403 from server: Forbidden

 
Source:

https://developer.android.com/studio/publish-library/upload-library#create-pub

1 answer

0 votes
Ben Atlassian Team Jun 28, 2022

G'day Joe!

Welcome to the Bitbucket Cloud Community! :)

I am responding here as I have noticed that you are yet to receive a response from our community.

The "403 Forbidden" error usually relates to the permissions or to the authentication credentials that are being passed through to the API request.

Can I confirm if you are using an App Password in the credentials? API calls require you to use an App Password, and this App Password must be configured with the necessary permissions to make changes to your repository (in this case WRITE), we have a guide here explaining how to configure an App Password:

https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/

Once you have configured the App Password, you would use it in the same manner as you would have previously used your GIT username/password (which has been deprecated) ie

user = owner_name

password = AppPassword

Hope this helps.

Cheers!

- Ben (Bitbucket Cloud Support)

I received status code 405 from server: Method Not Allowed

Ben Atlassian Team Jun 29, 2022

Hey @Ped the 405 Error tells us that authentication has succeeded, however, either the URL or the request method is incorrect.

Are you able to try POST instead of PUT as the request method and see if this works?

Cheers!

- Ben (Bitbucket Cloud Support)

By default Maven uses the PUT method.
I didn't find a way to change the maven method.

Ben Atlassian Team Jun 30, 2022

Hi @Pedro Henrique Sousa Lopes ,

If the intention of the script is to update an existing repository (ie upload files to this repository), unfortunately only the POST method is accepted by the /2.0/repositories endpoint when uploading files to a repository.
I have tested this on my end and was able to upload a file successfully to my repository with the POST method in the following format:

curl -u {Username}:{AppPassword} -X POST https://api.bitbucket.org/2.0/repositories/{WorkspaceID}/{RepoSlug}/src -F uploadtest.txt=@uploadtest.txt

When I have tried using the PUT method with either an access token or an AppPassword, I receive either a 403 or 405 error (depending on the URL, ie with repo folder path /workspaceid/reposlug/src vs full file path /workspaceid/reposlug/src/filename.txt).

When checking our API Documentation for the /2.0/repositories endpoint, the PUT method is only accepted when updating the name of an existing repository or creating a new empty repository, this does not include uploading files to an existing repository.

The problem, therefore, appears to be with the API request method that the plugin uses rather than an issue with the endpoint itself. As we do not provide support for third-party plugins, I would suggest reaching out to the Gradle community if you are not able to get a response from our other Atlassian community members to see if there is a way of modifying the request method to POST instead:

https://discuss.gradle.org/

Hope this helps to steer you in the right direction.

Cheers!

- Ben (Bitbucket Cloud Support)

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

Git push size limits are coming to Bitbucket Cloud starting April 4th, 2022

Beginning on April 4th, we will be implementing push limits. This means that your push cannot be completed if it is over 3.5 GB. If you do attempt to complete a push that is over 3.5 GB, it will fail...

2,237 views 2 9
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you