137 static bool DISABLE_RESET;
141 static bool FETCH_FROM_LOCAL_REPOS;
151 const std::shared_ptr<JamiAccount>& account,
153 const std::string& otherMember =
"");
162 static LIBJAMI_TEST_EXPORT std::pair<std::unique_ptr<ConversationRepository>, std::vector<ConversationCommit>>
163 cloneConversation(
const std::shared_ptr<JamiAccount>& account,
164 const std::string& deviceId,
165 const std::string& conversationId);
180 std::string addMember(
const std::string& uri);
189 bool fetch(
const std::string& remoteDeviceId);
197 std::vector<std::map<std::string, std::string>> mergeHistory(
198 const std::string& uri, std::function<
void(
const std::string&)>&& disconnectFromPeerCb = {});
206 std::string remoteHead(
const std::string& remoteDeviceId,
const std::string& branch =
"main")
const;
211 const std::string& id()
const;
219 std::string commitMessage(
const std::string& msg,
bool verifyDevice =
true);
221 std::vector<std::string> commitMessages(
const std::vector<std::string>& msgs);
229 std::string amend(
const std::string&
id,
const std::string& msg);
235 std::vector<ConversationCommit> log(
const LogOptions& options = {})
const;
236 void log(PreConditionCb&& preCondition,
237 std::function<
void(ConversationCommit&&)>&& emplaceCb,
238 PostConditionCb&& postCondition,
239 const std::string& from =
"",
240 bool logIfNotFound =
true)
const;
247 bool hasCommit(
const std::string& commitId)
const;
248 std::optional<ConversationCommit> getCommit(
const std::string& commitId)
const;
263 std::pair<bool, std::string> merge(
const std::string& merge_id,
bool force =
false);
272 std::string diffStats(
const std::string& newId,
const std::string& oldId =
"")
const;
279 static std::vector<std::string> changedFiles(std::string_view diffStats);
316 std::string voteKick(
const std::string& uri,
const std::string& type);
323 std::string voteUnban(
const std::string& uri,
const std::string_view type);
331 std::string resolveVote(
const std::string& uri,
const std::string_view type,
const std::string& voteType);
338 std::pair<std::vector<ConversationCommit>,
bool> validFetch(
const std::string& remoteDevice)
const;
344 std::pair<std::vector<ConversationCommit>,
bool> validClone()
const;
351 bool isValidUserAtCommit(
const std::string& userDevice,
352 const std::string& commitId,
354 const git_buf& sig_data)
const;
360 bool validCommits(
const std::vector<ConversationCommit>& commitsToValidate)
const;
366 void removeBranchWith(
const std::string& remoteDevice);
372 std::vector<std::string> getInitialMembers()
const;
378 std::vector<ConversationMember> members()
const;
385 std::map<std::string, std::vector<DeviceId>> devices(
bool ignoreExpired =
true)
const;
392 std::set<std::string> memberUris(std::string_view filter,
const std::set<MemberRole>& filteredRoles)
const;
397 void refreshMembers()
const;
406 void pinCertificates(
bool blocking =
false);
413 std::string uriFromDevice(
const std::string& deviceId)
const;
420 std::string updateInfos(
const std::map<std::string, std::string>& map);
426 std::map<std::string, std::string> infos()
const;
432 std::vector<std::map<std::string, std::string>> convCommitsToMap(
433 const std::vector<ConversationCommit>& commits)
const;
434 std::optional<std::map<std::string, std::string>> convCommitToMap(
const ConversationCommit& commit)
const;
439 std::string getHead()
const;
444 std::unique_ptr<Impl> pimpl_;