kotlin-dsl/GitHubIssues.xml (96 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<dsl-extension kind="projectFeature" type="IssueTracker" generateDslJar="true" applicable="params['type'] == 'GithubIssues'">
<class name="GitHubIssueTracker">
<description>
Project feature enabling integration with GitHub issue tracker
</description>
</class>
<init>
<param name="type" value="GithubIssues" />
<param name="secure:accessToken" value="" />
<param name="username" value="" />
<param name="secure:password" value="" />
</init>
<function name="githubIssues">
<description>
Adds a project features enabling integration with GitHub issue tracker
</description>
</function>
<params>
<param name="name" dslName="displayName" mandatory="true">
<description>
Issue tracker integration display name.
</description>
</param>
<param name="repository" dslName="repositoryURL" mandatory="true">
<description>
GitHub server URL.
</description>
</param>
<param name="authType" type="compound">
<option name="anonymous" value="anonymous" />
<option name="accessToken" value="accesstoken">
<param name="secure:accessToken" dslName="accessToken" mandatory="true" />
</option>
<option name="usernameAndPassword" value="loginpassword">
<description>
Authentication via login/password is no longer supported by GitHub.
We highly recommend that you authenticate with access tokens instead.
</description>
<param name="username" dslName="userName" mandatory="true"/>
<param name="secure:password" dslName="password" mandatory="true"/>
</option>
<option name="storedToken" value="storedToken">
<description>
Use GitHub App credentials
</description>
<param name="tokenId" dslName="tokenId" mandatory="true">
<description>
Internal ID of a token in TeamCity token storage
</description>
</param>
</option>
</param>
<param name="pattern" dslName="issuesPattern">
<description>
Issues ID pattern. Use regex syntax, e.g. '#(\d+)'.
</description>
</param>
</params>
<examples>
<example>
<description>
It is not recommended to store secure values such as tokens directly in the DSL code,
see [Managing Tokens](https://www.jetbrains.com/help/teamcity/storing-project-settings-in-version-control.html#Managing+Tokens)
section of our documentation.
</description>
<code>
githubIssues {
id = "<Connection ID>" // arbitrary ID, must be unique in the project
displayName = "<Connection display name>"
repositoryURL = "<GitHub repository URL>"
authType = accessToken {
accessToken = "credentialsJSON:*****"
}
issuesPattern = "<Issue id pattern>" // optional, assumed #(\d+) if omitted
}
</code>
</example>
<example>
<description>
Uses a GitHub App installation token stored in TeamCity.
</description>
<code>
githubIssues {
id = "<Connection ID>" // arbitrary ID, must be unique in the project
displayName = "<Connection display name>"
repositoryURL = "<GitHub repository URL>"
authType = storedToken {
tokenId = "tc_token_id:*****"
}
issuesPattern = "<Issue id pattern>" // optional, assumed #(\d+) if omitted
}
</code>
</example>
</examples>
</dsl-extension>