-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from ballerina-platform/apply-templates-15
Add Generated Connector Template (Standard)
- Loading branch information
Showing
22 changed files
with
1,061 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,118 @@ | ||
# module-ballerinax-openai.chat | ||
# Ballerina OpenAI Chat connector | ||
|
||
[![Build](https://github.com/ballerina-platform/module-ballerinax-openai.chat/actions/workflows/ci.yml/badge.svg)](https://github.com/ballerina-platform/module-ballerinax-openai.chat/actions/workflows/ci.yml) | ||
[![Trivy](https://github.com/ballerina-platform/module-ballerinax-openai.chat/actions/workflows/trivy-scan.yml/badge.svg)](https://github.com/ballerina-platform/module-ballerinax-openai.chat/actions/workflows/trivy-scan.yml) | ||
[![GraalVM Check](https://github.com/ballerina-platform/module-ballerinax-openai.chat/actions/workflows/build-with-bal-test-native.yml/badge.svg)](https://github.com/ballerina-platform/module-ballerinax-openai.chat/actions/workflows/build-with-bal-test-native.yml) | ||
[![GitHub Last Commit](https://img.shields.io/github/last-commit/ballerina-platform/module-ballerinax-openai.chat.svg)](https://github.com/ballerina-platform/module-ballerinax-openai.chat/commits/master) | ||
[![GitHub Issues](https://img.shields.io/github/issues/ballerina-platform/ballerina-library/module/openai.chat.svg?label=Open%20Issues)](https://github.com/ballerina-platform/ballerina-library/labels/module%openai.chat) | ||
|
||
## Overview | ||
|
||
[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) | ||
|
||
## Setup guide | ||
|
||
[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) | ||
|
||
## Quickstart | ||
|
||
[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) | ||
|
||
## Examples | ||
|
||
The `OpenAI Chat` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-openai.chat/tree/main/examples/), covering the following use cases: | ||
|
||
[//]: # (TODO: Add examples) | ||
|
||
## Build from the source | ||
|
||
### Setting up the prerequisites | ||
|
||
1. Download and install Java SE Development Kit (JDK) version 17. You can download it from either of the following sources: | ||
|
||
* [Oracle JDK](https://www.oracle.com/java/technologies/downloads/) | ||
* [OpenJDK](https://adoptium.net/) | ||
|
||
> **Note:** After installation, remember to set the `JAVA_HOME` environment variable to the directory where JDK was installed. | ||
2. Download and install [Ballerina Swan Lake](https://ballerina.io/). | ||
|
||
3. Download and install [Docker](https://www.docker.com/get-started). | ||
|
||
> **Note**: Ensure that the Docker daemon is running before executing any tests. | ||
4. Export Github Personal access token with read package permissions as follows, | ||
|
||
```bash | ||
export packageUser=<Username> | ||
export packagePAT=<Personal access token> | ||
``` | ||
|
||
### Build options | ||
|
||
Execute the commands below to build from the source. | ||
|
||
1. To build the package: | ||
|
||
```bash | ||
./gradlew clean build | ||
``` | ||
|
||
2. To run the tests: | ||
|
||
```bash | ||
./gradlew clean test | ||
``` | ||
|
||
3. To build the without the tests: | ||
|
||
```bash | ||
./gradlew clean build -x test | ||
``` | ||
|
||
4. To run tests against different environments: | ||
|
||
```bash | ||
./gradlew clean test -Pgroups=<Comma separated groups/test cases> | ||
``` | ||
|
||
5. To debug the package with a remote debugger: | ||
|
||
```bash | ||
./gradlew clean build -Pdebug=<port> | ||
``` | ||
|
||
6. To debug with the Ballerina language: | ||
|
||
```bash | ||
./gradlew clean build -PbalJavaDebug=<port> | ||
``` | ||
|
||
7. Publish the generated artifacts to the local Ballerina Central repository: | ||
|
||
```bash | ||
./gradlew clean build -PpublishToLocalCentral=true | ||
``` | ||
|
||
8. Publish the generated artifacts to the Ballerina Central repository: | ||
|
||
```bash | ||
./gradlew clean build -PpublishToCentral=true | ||
``` | ||
|
||
## Contribute to Ballerina | ||
|
||
As an open-source project, Ballerina welcomes contributions from the community. | ||
|
||
For more information, go to the [contribution guidelines](https://github.com/ballerina-platform/ballerina-lang/blob/master/CONTRIBUTING.md). | ||
|
||
## Code of conduct | ||
|
||
All the contributors are encouraged to read the [Ballerina Code of Conduct](https://ballerina.io/code-of-conduct). | ||
|
||
## Useful links | ||
|
||
* For more information go to the [`openai.chat` package](https://central.ballerina.io/ballerinax/openai.chat/latest). | ||
* For example demonstrations of the usage, go to [Ballerina By Examples](https://ballerina.io/learn/by-example/). | ||
* Chat live with us via our [Discord server](https://discord.gg/ballerinalang). | ||
* Post all technical questions on Stack Overflow with the [#ballerina](https://stackoverflow.com/questions/tagged/ballerina) tag. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[package] | ||
distribution = "2201.9.2" | ||
org = "ballerinax" | ||
name = "openai.chat" | ||
version = "2.0.1" | ||
license = ["Apache-2.0"] | ||
authors = ["Ballerina"] | ||
keywords = [] | ||
icon = "icon.png" | ||
repository = "https://github.com/ballerina-platform/module-ballerinax-openai.chat" | ||
|
||
[build-options] | ||
observabilityIncluded = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
## Overview | ||
|
||
[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) | ||
|
||
## Setup guide | ||
|
||
[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) | ||
|
||
## Quickstart | ||
|
||
[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) | ||
|
||
## Examples | ||
|
||
The `OpenAI Chat` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-openai.chat/tree/main/examples/), covering the following use cases: | ||
|
||
[//]: # (TODO: Add examples) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
## Overview | ||
|
||
[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) | ||
|
||
## Setup guide | ||
|
||
[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) | ||
|
||
## Quickstart | ||
|
||
[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) | ||
|
||
## Examples | ||
|
||
The `OpenAI Chat` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-openai.chat/tree/main/examples/), covering the following use cases: | ||
|
||
[//]: # (TODO: Add examples) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
/* | ||
* Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). | ||
* | ||
* WSO2 LLC. licenses this file to you under the Apache License, | ||
* Version 2.0 (the "License"); you may not use this file except | ||
* in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, | ||
* software distributed under the License is distributed on an | ||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
* KIND, either express or implied. See the License for the | ||
* specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
|
||
import org.apache.tools.ant.taskdefs.condition.Os | ||
|
||
plugins { | ||
id 'io.ballerina.plugin' | ||
} | ||
|
||
description = 'OpenAI Chat - Ballerina' | ||
|
||
def packageName = "openai.chat" | ||
def packageOrg = "ballerinax" | ||
def tomlVersion = stripBallerinaExtensionVersion("${project.version}") | ||
def ballerinaTomlFilePlaceHolder = new File("${project.rootDir}/build-config/resources/Ballerina.toml") | ||
def ballerinaTomlFile = new File("$project.projectDir/Ballerina.toml") | ||
|
||
def stripBallerinaExtensionVersion(String extVersion) { | ||
if (extVersion.matches(project.ext.timestampedVersionRegex)) { | ||
def splitVersion = extVersion.split('-') | ||
if (splitVersion.length > 3) { | ||
def strippedValues = splitVersion[0..-4] | ||
return strippedValues.join('-') | ||
} else { | ||
return extVersion | ||
} | ||
} else { | ||
return extVersion.replace("${project.ext.snapshotVersion}", "") | ||
} | ||
} | ||
|
||
ballerina { | ||
packageOrganization = packageOrg | ||
module = packageName | ||
testCoverageParam = "--code-coverage --coverage-format=xml" | ||
isConnector = true | ||
platform = "any" | ||
} | ||
|
||
task updateTomlFiles { | ||
doLast { | ||
def newBallerinaToml = ballerinaTomlFilePlaceHolder.text.replace("@project.version@", project.version) | ||
newBallerinaToml = newBallerinaToml.replace("@toml.version@", tomlVersion) | ||
ballerinaTomlFile.text = newBallerinaToml | ||
} | ||
} | ||
|
||
task commitTomlFiles { | ||
doLast { | ||
project.exec { | ||
ignoreExitValue true | ||
if (Os.isFamily(Os.FAMILY_WINDOWS)) { | ||
commandLine 'cmd', '/c', "git commit -m \"[Automated] Update the toml files\" Ballerina.toml Dependencies.toml" | ||
} else { | ||
commandLine 'sh', '-c', "git commit -m '[Automated] Update the toml files' Ballerina.toml Dependencies.toml" | ||
} | ||
} | ||
} | ||
} | ||
|
||
publishing { | ||
publications { | ||
maven(MavenPublication) { | ||
artifact source: createArtifactZip, extension: 'zip' | ||
} | ||
} | ||
repositories { | ||
maven { | ||
name = "GitHubPackages" | ||
url = uri("https://maven.pkg.github.com/ballerina-platform/module-${packageOrg}-${packageName}") | ||
credentials { | ||
username = System.getenv("publishUser") | ||
password = System.getenv("publishPAT") | ||
} | ||
} | ||
} | ||
} | ||
|
||
clean { | ||
delete 'build' | ||
} | ||
|
||
build.dependsOn "generatePomFileForMavenPublication" | ||
publishToMavenLocal.dependsOn build | ||
publish.dependsOn build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). | ||
// | ||
// WSO2 LLC. licenses this file to you under the Apache License, | ||
// Version 2.0 (the "License"); you may not use this file except | ||
// in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, | ||
// software distributed under the License is distributed on an | ||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
// KIND, either express or implied. See the License for the | ||
// specific language governing permissions and limitations | ||
// under the License. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[package] | ||
distribution = "2201.9.2" | ||
org = "ballerinax" | ||
name = "openai.chat" | ||
version = "@toml.version@" | ||
license = ["Apache-2.0"] | ||
authors = ["Ballerina"] | ||
keywords = [] # TODO: Add keywords | ||
icon = "icon.png" # TODO: Add icon | ||
repository = "https://github.com/ballerina-platform/module-ballerinax-openai.chat" | ||
|
||
[build-options] | ||
observabilityIncluded = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/* | ||
* Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). | ||
* | ||
* WSO2 LLC. licenses this file to you under the Apache License, | ||
* Version 2.0 (the "License"); you may not use this file except | ||
* in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, | ||
* software distributed under the License is distributed on an | ||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
* KIND, either express or implied. See the License for the | ||
* specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
|
||
plugins { | ||
id 'net.researchgate.release' | ||
} | ||
|
||
allprojects { | ||
group = project.group | ||
version = project.version | ||
|
||
apply plugin: 'maven-publish' | ||
|
||
repositories { | ||
mavenLocal() | ||
maven { | ||
url = 'https://maven.wso2.org/nexus/content/repositories/releases/' | ||
} | ||
|
||
maven { | ||
url = 'https://maven.wso2.org/nexus/content/groups/wso2-public/' | ||
} | ||
|
||
maven { | ||
url = 'https://repo.maven.apache.org/maven2' | ||
} | ||
|
||
maven { | ||
url = 'https://maven.pkg.github.com/ballerina-platform/*' | ||
credentials { | ||
username System.getenv("packageUser") | ||
password System.getenv("packagePAT") | ||
} | ||
} | ||
} | ||
|
||
ext { | ||
snapshotVersion = '-SNAPSHOT' | ||
timestampedVersionRegex = '.*-\\d{8}-\\d{6}-\\w.*\$' | ||
} | ||
} | ||
|
||
def moduleVersion = project.version.replace("-SNAPSHOT", "") | ||
|
||
task build { | ||
dependsOn(':openai.chat-ballerina:build') | ||
} | ||
|
||
release { | ||
buildTasks = ['build'] | ||
failOnSnapshotDependencies = true | ||
versionPropertyFile = 'gradle.properties' | ||
tagTemplate = 'v${version}' | ||
git { | ||
requireBranch = "release-${moduleVersion}" | ||
pushToRemote = 'origin' | ||
} | ||
} |
Oops, something went wrong.