Skip to main content

A tool to publish Business Central apps to Microsoft AppSource

Project description

BC2AppSource

A Python package for publishing Business Central apps to Microsoft AppSource.

Installation

pip install bc2appsource

Usage

Command Line Interface

# Publish an app to AppSource
bc2appsource publish \
  --app-file path/to/your/app.app \
  --tenant-id your-tenant-id \
  --client-id your-client-id \
  --client-secret your-client-secret \
  --product-name "Your Product Name"

# With library app file
bc2appsource publish \
  --app-file path/to/your/app.app \
  --library-app-file path/to/library.app \
  --tenant-id your-tenant-id \
  --client-id your-client-id \
  --client-secret your-client-secret \
  --product-name "Your Product Name"

Python API

from bc2appsource import AppSourcePublisher

publisher = AppSourcePublisher(
    tenant_id="your-tenant-id",
    client_id="your-client-id",
    client_secret="your-client-secret"
)

# Publish app
result = publisher.publish(
    app_file="path/to/your/app.app",
    product_name="Your Product Name",
    library_app_file="path/to/library.app",  # Optional
    auto_promote=True
)

if result.success:
    print(f"Submission ID: {result.submission_id}")
else:
    print(f"Error: {result.error}")

Authentication

You need to register an Azure AD application with the following permissions:

  • Microsoft Partner Center API access
  • Application permissions for submitting to AppSource

Environment Variables

You can also use environment variables instead of passing credentials:

export AZURE_TENANT_ID=your-tenant-id
export AZURE_CLIENT_ID=your-client-id
export AZURE_CLIENT_SECRET=your-client-secret

GitHub Actions

This package can be used in GitHub Actions workflows:

- name: Install bc2appsource
  run: pip install bc2appsource

- name: Publish to AppSource
  run: |
    bc2appsource publish \
      --app-file artifacts/*.app \
      --product-name "${{ github.event.repository.name }}"
  env:
    AZURE_TENANT_ID: ${{ secrets.APPSOURCE_TENANT_ID }}
    AZURE_CLIENT_ID: ${{ secrets.APPSOURCE_CLIENT_ID }}
    AZURE_CLIENT_SECRET: ${{ secrets.APPSOURCE_CLIENT_SECRET }}

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bc2appsource-0.1.2.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bc2appsource-0.1.2-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file bc2appsource-0.1.2.tar.gz.

File metadata

  • Download URL: bc2appsource-0.1.2.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bc2appsource-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f179391a12ed30441ebb63b0d658e98d29d3e613d66cb0ef86c88eeba1eb1709
MD5 e7d4a24d17023eaa682e62dbf807c823
BLAKE2b-256 f1317cb1763ccac2e0f1bc828492aee69919fb379d87df42e49d68b7a0ba530a

See more details on using hashes here.

Provenance

The following attestation bundles were made for bc2appsource-0.1.2.tar.gz:

Publisher: publish-to-pypi.yml on attieretief/bc2appsource

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bc2appsource-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: bc2appsource-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bc2appsource-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c50225fdb13e65f100f57a1d63dff7c39268be87ce93c577a87a9551050eeb32
MD5 bec7f703ba2ba7a5ecbf07fb092e6919
BLAKE2b-256 b09765746c0d7f3b4977c5b5efa7983f0d7b97f8185ce4ea64d5863a0bfcd756

See more details on using hashes here.

Provenance

The following attestation bundles were made for bc2appsource-0.1.2-py3-none-any.whl:

Publisher: publish-to-pypi.yml on attieretief/bc2appsource

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page