2017-03-15 7 views
1

したがって、現在のプロジェクトでは、Stashサーバー上でプログラムによってリポジトリを構成するスクリプトを作成していますBitBucketサーバー)。これには、リポジトリごとにデフォルトのレビューアを設定することが含まれます。このためのREST APIはありますか?方法:[REST] REST APIを使用してプログラムでAtlassian Stash(Bitbucket Server)のリポジトリの既定のレビューアを取得および設定する

答えて

2

私たちが使用しているStashバージョン(4.8.x)とおそらく現在のバージョンでは、デフォルトのレビューア機能のためにno documented REST APIがあります。また、「ドキュメント化されていないAPI」とは、公式のREST APIのドキュメントだけでなく、ウェブ上のどこにでもあることを意味します。幸いにも、プラグインが使用する秘密のAPIがあります。

短い話ですが、ここでは必要なコールがあります。それらは、URL上のプレーンなGET、POST、DELETEです。

curl -X GET -u (username):(password) (base_url)/rest/default-reviewers/latest/projects/(project_name)/repos/(repo_name)/conditions 

なります:

には、以下のリンクでGETを実行します。


  • リポジトリのすべてのデフォルトのレビューを取得:私は簡潔にするための例のためにカールを使用します。 JSONリストになります。リストの各項目には、リスト内の項目のID(ユーザーIDとは異なる)と、デフォルトのレビューア規則に関する情報が含まれます。


    • デフォルトのレビューを追加:

    を示すヘッダとデータを次のようにPOSTを実行します。

    XXXXは、ユーザID(ユーザー名、ある
    curl -X POST -H 'Content-Type: application/json' -u (username):(password) (base_url)/rest/default-reviewers/latest/projects/(project_name)/repos/(repo_name)/condition --data-binary '{"sourceMatcher":{"id":"any","type":{"id":"ANY_REF"}},"targetMatcher":{"id":"refs/heads/master","type":{"id":"BRANCH"}},"reviewers":[{"id":XXXX}],"requiredApprovals":"0"}' 
    

    電子メールまたはフルネームは機能しません)。標準のREST APIを使用してユーザーのIDを取得できます。別名でGETを実行します。

を行います(BASE_URL)/rest/api/1.0/users?filter=(ユーザー名、電子メールやフルネームを)


  • デフォルトの口コミを削除します次のように削除します。

    curl -X DELETE -u (username):(password) (base_url)/rest/default-reviewers/latest/projects/(project_name)/repos/(repo_name)/condition/YYY 
    

    ここで、YYYはデフォルトのレビューアリスト(ユーザーIDではない)のエントリIDです。削除するユーザーのID、電子メール、ユーザー名、またはフルネームを知っている場合は、すべての既定のレビューア(上記参照)を取得し、必要なユーザーを見つけてから、そのユーザーのエントリIDを取得できますリストアイテム。


    もう一つ:あなたはPOSTを使用してプラグインのデフォルト・校閲を観察するとChromeインスペクタ(「ネットワーク」タブ)を使用してコマンドを削除することができますが、GETコマンドは、プラグインによって直接使用されていません(USER-私はこのGETコマンドがわかりにくいかもしれないからです)。

0

私はuser1942541の包括的な答えに追加するために、現在のところ、これが唯一の方法であることを確認することができます。私たちは、ある時点でデフォルトのレビューアのための適切な、文書化されたAPIを提供することを計画しています。アップデートはhttps://jira.atlassian.com/browse/BSERV-8988をご覧ください。