我正在使用以下位置的Atlassian SDK:https://bitbucket.org/farmas/atlassian.net-sdk
现在,我只是尝试连接到我的JIRA,只是删除一些基本信息,比如我的任务。快速谷歌我发现了以下示例:https://www.codeproject.com/Tips/762516/Connecting-to-Jira-using-Csharp
在上面的链接中,他使用以下行连接到JIRA:
Jira jiraConn = new Jira("http://yourjiraurl.com/", jUserID, jPassword);
但是当我尝试同样的路线时:
Jira jira = new Jira(url, "admin", "password");
我收到以下错误:
无法从'string'转换为'Atlassian.Jira.ServiceLocator'
无法从'string'转换为'Atlassian.Jira.JiraCredentials'
无法从'string'转换为'Atlassian.Jira.JiraCache'
我环顾四周试图找到一些关于此的文档,但我找不到与3个错误中的任何一个有关的内容或者预期的语法类型。我会更多地调查bitbucket,但我的工作防火墙已将其阻止,原因不明。
有没有人有过打击这些错误的经验?
答案 0 :(得分:4)
由于Jira的原型是:
Jira(ServiceLocator services, JiraCredentials credentials = null, JiraCache cache = null)
然后你得到的错误是正确的(字符串不是JiraCredentials)。 因此,您需要创建一些凭据,或者您可以使用其他功能:
public static Jira CreateRestClient(string url, string username = null, string password = null, JiraRestClientSettings settings = null)
所以,比如:
Jira jira = Jira.CreateRestClient(url, "admin", "password");
答案 1 :(得分:0)
不是C#...但这是您与Atlassian通信的方式。本示例来自Google表格(只需更改URL和端点)。这些年来,我也通过VBA做了很多工作。似乎最近,必须对用户名/密码进行编码。我不记得以前的版本是这样
function showAtlassian() {
var html = HtmlService.createHtmlOutputFromFile('atlassianform')
.setWidth(200)
.setHeight(200);
SpreadsheetApp.getUi().showModalDialog(html, 'Atlassian Login');
}
function processAtlassian(myForm) {
var username = myForm.un;
var userpw = myForm.pw;
var myencoded = Utilities.base64Encode(username+":"+userpw);
var headers = {"Authorization" : "Basic " + myencoded};
var options = {
'method': 'get',
"contentType" : "application/json",
"headers": headers,
'muteHttpExceptions': false
}
var ui = SpreadsheetApp.getUi(); // Same variations.
url = 'https://---your domain---/wiki/rest/api/user/current';
try {
var response = UrlFetchApp.fetch(url, options);
var data = JSON.parse(response)
var result = ui.alert( 'got valid connection userkey ' + data.userKey );
} catch(error) {
var result = ui.alert( 'invalid user or password: url: '+ url +' err: ' + error.toString());
getatlassian();
}
}
function getatlassian() {
var ui = SpreadsheetApp.getUi();
showAtlassian()
}